AST class
Пакет: com.hypixel.hytale.server.npc.util.expression.compile.ast
Файл: com/hypixel/hytale/server/npc/util/expression/compile/ast/AST.java
Методы (13)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
throw new |
IllegalStateExceptionthrow new IllegalStateException("AST: Cannot be returned as operand") |
abstract |
throw new |
IllegalStateExceptionthrow new IllegalStateException("AST: Cannot return string") |
abstract |
throw new |
IllegalStateExceptionthrow new IllegalStateException("AST: Cannot return boolean") |
abstract |
throw new |
IllegalStateExceptionthrow new IllegalStateException("AST: Cannot return number") |
public |
ExecutionContext.Operand |
asOperandExecutionContext.Operand asOperand() |
public |
ValueType |
genCodeValueType genCode(@Nonnull List<ExecutionContext.Instruction> var1, Scope var2) |
public |
boolean |
getBooleanboolean getBoolean() |
public |
double |
getNumberdouble getNumber() |
public |
AST |
getParentAST getParent() |
public |
String |
getStringString getString() |
public |
int |
getTokenPositionint getTokenPosition() |
abstract abstract |
boolean |
isConstantboolean isConstant() |
public |
void |
setParentvoid setParent(AST var1) |
Исходный код
Показать/скрыть
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.Token;
class="kw">import java.util.List;
class="kw">import java.util.Objects;
class="kw">import java.util.function.Function;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class="kw">abstract class AST {
@Nonnull
class="kw">private class="kw">final ValueType valueType;
@Nonnull
class="kw">private class="kw">final Token token;
class="kw">private class="kw">final int tokenPosition;
class="kw">private AST parent;
@Nullable
class="kw">protected Function<Scope, ExecutionContext.Instruction> codeGen;
class="kw">public AST(@Nonnull ValueType var1, @Nonnull Token var2, int var3) {
Objects.requireNonNull(var1, "ValueType can't be null");
Objects.requireNonNull(var2, "Token can't be null");
this.valueType = var1;
this.token = var2;
this.tokenPosition = var3;
this.codeGen = null;
}
class="kw">public AST getParent() {
class="kw">return this.parent;
}
class="kw">public void setParent(AST var1) {
this.parent = var1;
}
@Nonnull
class="kw">public ValueType getValueType() {
class="kw">return this.valueType;
}
@Nonnull
class="kw">public Token getToken() {
class="kw">return this.token;
}
class="kw">public int getTokenPosition() {
class="kw">return this.tokenPosition;
}
@Nullable
class="kw">public Function<Scope, ExecutionContext.Instruction> getCodeGen() {
class="kw">return this.codeGen;
}
class="kw">public class="kw">abstract boolean isConstant();
class="kw">public ExecutionContext.Operand asOperand() {
throw new IllegalStateException("AST: Cannot be returned as operand");
}
class="kw">public String getString() {
throw new IllegalStateException("AST: Cannot class="kw">return string");
}
class="kw">public boolean getBoolean() {
throw new IllegalStateException("AST: Cannot class="kw">return boolean");
}
class="kw">public double getNumber() {
throw new IllegalStateException("AST: Cannot class="kw">return number");
}
@Nonnull
class="kw">public ValueType returnType() {
class="kw">return this.getValueType();
}
class="kw">public ValueType genCode(@Nonnull List<ExecutionContext.Instruction> var1, Scope var2) {
Objects.requireNonNull(this.getCodeGen(), "Missing CodeGen in AST");
var1.add(this.getCodeGen().apply(var2));
class="kw">return this.getValueType();
}
}