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();
   }
}