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