ASTOperator class
Пакет: com.hypixel.hytale.server.npc.util.expression.compile.ast
Файл: com/hypixel/hytale/server/npc/util/expression/compile/ast/ASTOperator.java
extends: AST
Поля (2)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
List<AST> |
arguments |
|
ParseException |
var3 |
Методы (3)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
public |
void |
addArgumentvoid addArgument(@Nonnull AST var1) |
static |
void |
fromParsedOperatorvoid fromParsedOperator(@Nonnull Parser.ParsedToken var0, @Nonnull CompileContext var1) |
abstract |
|
super super(var1, var2, var3) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.npc.util.expression.compile.ast;
class="kw">import com.hypixel.hytale.server.npc.util.expression.ExecutionContext;
class="kw">import com.hypixel.hytale.server.npc.util.expression.Scope;
class="kw">import com.hypixel.hytale.server.npc.util.expression.ValueType;
class="kw">import com.hypixel.hytale.server.npc.util.expression.compile.CompileContext;
class="kw">import com.hypixel.hytale.server.npc.util.expression.compile.Parser;
class="kw">import com.hypixel.hytale.server.npc.util.expression.compile.Token;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import java.text.ParseException;
class="kw">import java.util.List;
class="kw">import java.util.NoSuchElementException;
class="kw">import javax.annotation.Nonnull;
class="kw">public class="kw">abstract class ASTOperator class="kw">extends AST {
class="kw">private class="kw">final List<AST> arguments = new ObjectArrayList();
class="kw">public ASTOperator(@Nonnull ValueType var1, @Nonnull Token var2, int var3) {
super(var1, var2, var3);
}
class="kw">public void addArgument(@Nonnull AST var1) {
this.arguments.add(var1);
var1.setParent(this);
}
@Nonnull
class="kw">public List<AST> getArguments() {
class="kw">return this.arguments;
}
@Override
class="kw">public ValueType genCode(@Nonnull List<ExecutionContext.Instruction> var1, Scope var2) {
this.arguments.forEach(var2x -> var2x.genCode(var1, var2));
class="kw">return super.genCode(var1, var2);
}
class="kw">public class="kw">static void fromParsedOperator(@Nonnull Parser.ParsedToken var0, @Nonnull CompileContext var1) class="kw">throws ParseException {
try {
if (var0.token.isUnary()) {
ASTOperatorUnary.fromUnaryOperator(var0, var1);
} else {
ASTOperatorBinary.fromBinaryOperator(var0, var1);
}
} catch (NoSuchElementException var4) {
ParseException var3 = new ParseException("Not enough operands for operator '" + var0.tokenString, var0.tokenPosition);
var3.initCause(var4);
throw var3;
}
}
}