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