Package xyz.cofe.cxel.eval
Class Eval
java.lang.Object
xyz.cofe.cxel.eval.Eval
public class Eval
extends java.lang.Object
Непосредственная интерпретация AST.
Интерпретация AST узлов напряму зависит от контекста (EvalContext).
-
Field Summary
Fields Modifier and Type Field Description protected EvalContextcontextконтекст интерпретации -
Constructor Summary
Constructors Constructor Description Eval()Конструктор по умолчаниюEval(EvalContext ctx)Конструктор -
Method Summary
Modifier and Type Method Description protected java.lang.Objectcall(CallAST ast)Интерпретация вызова методаEvalconfigure(java.util.function.Consumer<Eval> conf)Конфигурация экземпляраEvalContextcontext()Возвращает контекс интерпретацииjava.lang.Objecteval(AST ast)Интерпретация ast дереваprotected java.lang.Objectindex(IndexAST ast)Интерпретация доступа к элементу массива / списка.protected java.lang.Objectlist(ListAST listAst)Интерпретация создания спискаprotected java.lang.Objectmap(MapAST mast)Интерпретация создания картыprotected java.lang.Objectoperator(BinaryOpAST op)Интерпретация бинарного оператораprotected java.lang.Objectoperator(UnaryOpAST op)Интерпретация унарного оператораprotected java.lang.Objectparenthes(ParenthesAST ast)protected java.lang.Objectproperty(PropertyAST ast)Интерпретация чтения свойства объектаprotected java.lang.Objectvariable(VarRefAST ast)Интерпретация чтения переменной
-
Field Details
-
context
контекст интерпретации
-
-
Constructor Details
-
Method Details
-
configure
Конфигурация экземпляра- Parameters:
conf- конфигурация- Returns:
- self ссылка
-
context
Возвращает контекс интерпретации- Returns:
- контекст интерпретации
-
eval
Интерпретация ast дерева- Parameters:
ast- дерево- Returns:
- результат
-
parenthes
-
operator
Интерпретация унарного оператора- Parameters:
op- AST узел- Returns:
- результат интерпретации, см
EvalContext.call(java.lang.String, java.util.List<java.lang.Object>)
-
operator
Интерпретация бинарного оператора- Parameters:
op- AST узел,- Returns:
- результат интерпретации, см
EvalContext.call(java.lang.String, java.util.List<java.lang.Object>)
-
variable
Интерпретация чтения переменной- Parameters:
ast- AST узел- Returns:
- значение переменной, см
EvalContext.read(java.lang.String)
-
property
Интерпретация чтения свойства объекта- Parameters:
ast- AST узел- Returns:
- значение свойства, см
EvalContext.get(java.lang.Object, java.lang.String)
-
call
Интерпретация вызова метода- Parameters:
ast- AST узел- Returns:
- результат вызова, см
EvalContext.call(java.lang.String, java.util.List<java.lang.Object>)
-
index
Интерпретация доступа к элементу массива / списка.- Parameters:
ast- AST узел доступа к элементу- Returns:
- значение см
EvalContext.getAt(java.lang.Object, java.lang.Object)
-
list
Интерпретация создания списка- Parameters:
listAst- констукция списка- Returns:
- список
-
map
Интерпретация создания карты- Parameters:
mast- конструкция карты- Returns:
- карта
-