Expression class
Expresión que se puede analizar o evaluar para generar un valor. Esto proporciona un contenedor abierto que admite una serie de funciones integradas y también se puede extender en tiempo de ejecución. También admite la validación de la corrección de una expresión y evaluación que debe ser libre de excepciones.
Constructores
Expression(string, Expression |
constructor de expresión. |
Propiedades
children | Expresiones secundarias. |
evaluator | Evaluador de expresiones. |
functions | Diccionario de función => ExpressionEvaluator. Se trata de todas las funciones disponibles, puede agregarle funciones personalizadas, pero no puede reemplazar las funciones integradas. Si borra el diccionario, se restablecerá a las funciones integradas. |
return |
Resultado esperado de evaluar la expresión. |
type | Tipo de expresión. |
Métodos
and |
Construya y valide una expresión And. |
deep |
Realice una igualdad profunda entre expresiones. |
equals |
Construya y valide una expresión Equals. |
lamba |
Construir una expresión a partir de evaluateExpressionDelegate |
lambda((arg0: any) => any) | Construya una expresión a partir de una expresión de lamba sobre el estado. Las excepciones se detectarán y se mostrarán como una cadena de error. |
lookup(string) | Busque una función ExpressionEvaluator por nombre. |
make |
Realice una expresión y validela. |
not |
Construya y valide una expresión Not. |
or |
Construya y valide una expresión Or. |
parse(string, Evaluator |
Analice una cadena de expresión en un objeto Expresión. |
references() | Devuelve las rutas de acceso de referencia estáticas a la memoria. Devuelve todas las rutas de acceso estáticas a la memoria. Si hay un índice de elemento calculado, la ruta de acceso se termina allí, pero también puede obtener otras rutas de acceso de la parte calculada. |
reference |
Función walking para identificar referencias de memoria estáticas en una expresión. |
set |
Construya y valide una expresión set a property expression en una expresión de valor. |
to |
Devuelve una cadena que representa el objeto expresión de |
try |
Evalúe la expresión. |
validate() | Valide la expresión inmediata. |
validate |
Valide recursivamente el árbol de expresiones. |
Detalles del constructor
Expression(string, ExpressionEvaluator, Expression[])
constructor de expresión.
new Expression(type: string, evaluator: ExpressionEvaluator, children: Expression[])
Parámetros
- type
-
string
Tipo de expresión de ExpressionType
- evaluator
- ExpressionEvaluator
Información sobre cómo validar y evaluar la expresión.
- children
Expresiones secundarias.
Detalles de las propiedades
children
evaluator
functions
Diccionario de función => ExpressionEvaluator. Se trata de todas las funciones disponibles, puede agregarle funciones personalizadas, pero no puede reemplazar las funciones integradas. Si borra el diccionario, se restablecerá a las funciones integradas.
static functions: FunctionTable = new FunctionTable()
Valor de propiedad
returnType
Resultado esperado de evaluar la expresión.
ReturnType returnType
Valor de propiedad
Resultado esperado de evaluar la expresión.
type
Tipo de expresión.
string type
Valor de propiedad
string
Tipo de la expresión.
Detalles del método
andExpression(Expression[])
Construya y valide una expresión And.
static function andExpression(children: Expression[]): Expression
Parámetros
- children
Cláusulas secundarias.
Devoluciones
Nueva expresión.
deepEquals(Expression)
Realice una igualdad profunda entre expresiones.
function deepEquals(other: Expression): boolean
Parámetros
- other
- Expression
Otra expresión.
Devoluciones
boolean
True si las expresiones son iguales.
equalsExpression(Expression[])
Construya y valide una expresión Equals.
static function equalsExpression(children: Expression[]): Expression
Parámetros
- children
Cláusulas secundarias.
Devoluciones
Nueva expresión.
lambaExpression(EvaluateExpressionDelegate)
Construir una expresión a partir de evaluateExpressionDelegate
static function lambaExpression(func: EvaluateExpressionDelegate): Expression
Parámetros
Función a partir de la que se va a crear una expresión.
Devoluciones
Nueva expresión.
lambda((arg0: any) => any)
Construya una expresión a partir de una expresión de lamba sobre el estado. Las excepciones se detectarán y se mostrarán como una cadena de error.
static function lambda(func: (arg0: any) => any): Expression
Parámetros
- func
-
(arg0: any) => any
expresión ambda que se va a evaluar.
Devoluciones
Nueva expresión.
lookup(string)
Busque una función ExpressionEvaluator por nombre.
static function lookup(functionName: string): ExpressionEvaluator
Parámetros
- functionName
-
string
Nombre de la función que se va a buscar.
Devoluciones
Un ExpressionEvaluator correspondiente al nombre de la función.
makeExpression(string, ExpressionEvaluator, Expression[])
Realice una expresión y validela.
static function makeExpression(type: string, evaluator: ExpressionEvaluator, children: Expression[]): Expression
Parámetros
- type
-
string
Tipo de expresión de ExpressionType.
- evaluator
- ExpressionEvaluator
Información sobre cómo validar y evaluar la expresión.
- children
Expresiones secundarias.
Devoluciones
Nueva expresión.
notExpression(Expression)
Construya y valide una expresión Not.
static function notExpression(child: Expression): Expression
Parámetros
- child
- Expression
Cláusulas secundarias.
Devoluciones
Nueva expresión.
orExpression(Expression[])
Construya y valide una expresión Or.
static function orExpression(children: Expression[]): Expression
Parámetros
- children
Cláusulas secundarias.
Devoluciones
Nueva expresión.
parse(string, EvaluatorLookup)
Analice una cadena de expresión en un objeto Expresión.
static function parse(expression: string, lookup?: EvaluatorLookup): Expression
Parámetros
- expression
-
string
Cadena de expresión.
- lookup
- EvaluatorLookup
Opcional. búsqueda de función evaluadorlookup al analizar la expresión. El valor predeterminado es expression.lookup que usa tabla Expression.functions.
Devoluciones
Objeto de expresión.
references()
Devuelve las rutas de acceso de referencia estáticas a la memoria. Devuelve todas las rutas de acceso estáticas a la memoria. Si hay un índice de elemento calculado, la ruta de acceso se termina allí, pero también puede obtener otras rutas de acceso de la parte calculada.
function references(): string[]
Devoluciones
string[]
Lista de las rutas de acceso de referencia estáticas.
referenceWalk(Expression, (arg0: Expression) => boolean)
Función walking para identificar referencias de memoria estáticas en una expresión.
function referenceWalk(expression: Expression, extension?: (arg0: Expression) => boolean): { path: string, refs: Set<string> }
Parámetros
- expression
- Expression
Expresión que se va a analizar.
- extension
-
(arg0: Expression) => boolean
Si está presente, se llama para invalidar la búsqueda de elementos como la expansión de plantillas.
Devoluciones
{ path: string, refs: Set<string> }
Ruta de acceso de descriptor de acceso de la expresión.
setPathToValue(Expression, any)
Construya y valide una expresión set a property expression en una expresión de valor.
static function setPathToValue(property: Expression, value: any): Expression
Parámetros
- property
- Expression
expresión de propiedad.
- value
-
any
expresión value.
Devoluciones
Nueva expresión.
toString()
Devuelve una cadena que representa el objeto expresión de
function toString(): string
Devoluciones
string
Cadena que representa el objeto Expression actual.
tryEvaluate(MemoryInterface | any, Options)
Evalúe la expresión.
function tryEvaluate(state: MemoryInterface | any, options: Options): ValueWithError
Parámetros
- state
-
MemoryInterface | any
Estado global en el que se evaluarán las expresiones de descriptor de acceso. Puede ser Dictionary; de lo contrario, la reflexión se usa para tener acceso a la propiedad y, a continuación, al indexador.
- options
- Options
Opciones usadas en la evaluación.
Devoluciones
Valor calculado y una cadena de error. Si la cadena no es null, se produjo un error de evaluación.
validate()
Valide la expresión inmediata.
function validate()
validateTree()
Valide recursivamente el árbol de expresiones.
function validateTree()