OperatorBinary class
Пакет: com.hypixel.hytale.server.npc.util.expression.compile
Файл: com/hypixel/hytale/server/npc/util/expression/compile/OperatorBinary.java
Поля (1)
| Модификаторы | Тип | Имя |
|---|---|---|
private |
Token |
token |
Методы (4)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
for for(OperatorBinary var6 : operators) |
public |
Function<Scope, ExecutionContext.Instruction> |
getCodeGenFunction<Scope, ExecutionContext.Instruction> getCodeGen() |
public |
ValueType |
getResultTypeValueType getResultType() |
|
|
if if(var6.token == var0 && var6.lhs == var1 && var6.rhs == var2) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.npc.util.expression.compile;
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 java.util.function.Function;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class OperatorBinary {
class="kw">private Token token;
class="kw">private ValueType lhs;
class="kw">private ValueType rhs;
class="kw">private ValueType result;
class="kw">private Function<Scope, ExecutionContext.Instruction> codeGen;
@Nonnull
class="kw">private class="kw">static OperatorBinary[] operators = new OperatorBinary[]{
of(Token.EXPONENTIATION, ValueType.NUMBER, ValueType.NUMBER, ValueType.NUMBER, var0 -> ExecutionContext.EXPONENTIATION),
of(Token.REMAINDER, ValueType.NUMBER, ValueType.NUMBER, ValueType.NUMBER, var0 -> ExecutionContext.REMAINDER),
of(Token.DIVIDE, ValueType.NUMBER, ValueType.NUMBER, ValueType.NUMBER, var0 -> ExecutionContext.DIVIDE),
of(Token.MULTIPLY, ValueType.NUMBER, ValueType.NUMBER, ValueType.NUMBER, var0 -> ExecutionContext.MULTIPLY),
of(Token.MINUS, ValueType.NUMBER, ValueType.NUMBER, ValueType.NUMBER, var0 -> ExecutionContext.MINUS),
of(Token.PLUS, ValueType.NUMBER, ValueType.NUMBER, ValueType.NUMBER, var0 -> ExecutionContext.PLUS),
of(Token.GREATER_EQUAL, ValueType.NUMBER, ValueType.NUMBER, ValueType.BOOLEAN, var0 -> ExecutionContext.GREATER_EQUAL),
of(Token.GREATER, ValueType.NUMBER, ValueType.NUMBER, ValueType.BOOLEAN, var0 -> ExecutionContext.GREATER),
of(Token.LESS_EQUAL, ValueType.NUMBER, ValueType.NUMBER, ValueType.BOOLEAN, var0 -> ExecutionContext.LESS_EQUAL),
of(Token.LESS, ValueType.NUMBER, ValueType.NUMBER, ValueType.BOOLEAN, var0 -> ExecutionContext.LESS),
of(Token.NOT_EQUAL, ValueType.NUMBER, ValueType.NUMBER, ValueType.BOOLEAN, var0 -> ExecutionContext.NOT_EQUAL),
of(Token.EQUAL, ValueType.NUMBER, ValueType.NUMBER, ValueType.BOOLEAN, var0 -> ExecutionContext.EQUAL),
of(Token.NOT_EQUAL, ValueType.BOOLEAN, ValueType.BOOLEAN, ValueType.BOOLEAN, var0 -> ExecutionContext.NOT_EQUAL_BOOL),
of(Token.EQUAL, ValueType.BOOLEAN, ValueType.BOOLEAN, ValueType.BOOLEAN, var0 -> ExecutionContext.EQUAL_BOOL),
of(Token.BITWISE_AND, ValueType.NUMBER, ValueType.NUMBER, ValueType.NUMBER, var0 -> ExecutionContext.BITWISE_AND),
of(Token.BITWISE_XOR, ValueType.NUMBER, ValueType.NUMBER, ValueType.NUMBER, var0 -> ExecutionContext.BITWISE_XOR),
of(Token.BITWISE_OR, ValueType.NUMBER, ValueType.NUMBER, ValueType.NUMBER, var0 -> ExecutionContext.BITWISE_OR),
of(Token.LOGICAL_AND, ValueType.BOOLEAN, ValueType.BOOLEAN, ValueType.BOOLEAN, var0 -> ExecutionContext.LOGICAL_AND),
of(Token.LOGICAL_OR, ValueType.BOOLEAN, ValueType.BOOLEAN, ValueType.BOOLEAN, var0 -> ExecutionContext.LOGICAL_OR)
};
class="kw">private OperatorBinary(Token var1, ValueType var2, ValueType var3, ValueType var4, Function<Scope, ExecutionContext.Instruction> var5) {
this.token = var1;
this.lhs = var2;
this.rhs = var3;
this.result = var4;
this.codeGen = var5;
}
class="kw">public ValueType getResultType() {
class="kw">return this.result;
}
class="kw">public Function<Scope, ExecutionContext.Instruction> getCodeGen() {
class="kw">return this.codeGen;
}
@Nonnull
class="kw">private class="kw">static OperatorBinary of(Token var0, ValueType var1, ValueType var2, ValueType var3, Function<Scope, ExecutionContext.Instruction> var4) {
class="kw">return new OperatorBinary(var0, var1, var2, var3, var4);
}
@Nullable
class="kw">public class="kw">static OperatorBinary findOperator(Token var0, ValueType var1, ValueType var2) {
for (OperatorBinary var6 : operators) {
if (var6.token == var0 && var6.lhs == var1 && var6.rhs == var2) {
class="kw">return var6;
}
}
class="kw">return null;
}
}