Expression class

Пакет: com.hypixel.hytale.server.npc.util.expression

Файл: com/hypixel/hytale/server/npc/util/expression/Expression.java

Поля (3)

МодификаторыТипИмя
final Lexer<Token> lexer
List var3
CompileContext var3

Методы (3)

МодификаторыВозвратСигнатура
public ValueType compileValueType compile(@Nonnull String var1, Scope var2, @Nonnull List<ExecutionContext.Instruction> var3, boolean var4)
public ValueType compileValueType compile(@Nonnull String var1, Scope var2, @Nonnull List<ExecutionContext.Instruction> var3)
static ValueType compileStaticValueType compileStatic(@Nonnull String var0, Scope var1, @Nonnull List<ExecutionContext.Instruction> var2)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.npc.util.expression;

class="kw">import com.hypixel.hytale.server.npc.util.expression.compile.CompileContext;
class="kw">import com.hypixel.hytale.server.npc.util.expression.compile.Lexer;
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.util.Arrays;
class="kw">import java.util.List;
class="kw">import javax.annotation.Nonnull;

class="kw">public class Expression {
   class="kw">private class="kw">static class="kw">final Lexer<Token> lexer = new Lexer<>(
      Token.END, Token.IDENTIFIER, Token.STRING, Token.NUMBER, Arrays.stream(Token.values()).filter(var0 -> var0.get() != null)
   );
   @Nonnull
   class="kw">private class="kw">final ExecutionContext executionContext;
   @Nonnull
   class="kw">private class="kw">final CompileContext compileContext = new CompileContext();

   class="kw">public Expression() {
      this.executionContext = this.compileContext.getExecutionContext();
   }

   class="kw">public ValueType compile(@Nonnull String var1, Scope var2, @Nonnull List<ExecutionContext.Instruction> var3, boolean var4) {
      this.compileContext.compile(var1, var2, var4);
      var3.clear();
      var3.addAll(this.compileContext.getInstructions());
      class="kw">return this.compileContext.getResultType();
   }

   class="kw">public ValueType compile(@Nonnull String var1, Scope var2, @Nonnull List<ExecutionContext.Instruction> var3) {
      class="kw">return this.compile(var1, var2, var3, false);
   }

   @Nonnull
   class="kw">public ExecutionContext execute(@Nonnull List<ExecutionContext.Instruction> var1, Scope var2) {
      this.executionContext.execute(var1, var2);
      class="kw">return this.executionContext;
   }

   @Nonnull
   class="kw">public ExecutionContext execute(@Nonnull ExecutionContext.Instruction[] var1, Scope var2) {
      this.executionContext.execute(var1, var2);
      class="kw">return this.executionContext;
   }

   @Nonnull
   class="kw">public ExecutionContext evaluate(@Nonnull String var1, Scope var2) {
      List var3 = new ObjectArrayList();
      this.compile(var1, var2, var3, true);
      class="kw">return this.execute(var3, var2);
   }

   class="kw">public class="kw">static ValueType compileStatic(@Nonnull String var0, Scope var1, @Nonnull List<ExecutionContext.Instruction> var2) {
      CompileContext var3 = new CompileContext();
      var3.compile(var0, var1, false);
      var2.clear();
      var2.addAll(var3.getInstructions());
      class="kw">return var3.getResultType();
   }

   @Nonnull
   class="kw">public class="kw">static Lexer<Token> getLexerInstance() {
      class="kw">return lexer;
   }
}