Class ExpressionCreator
java.lang.Object
org.ek9lang.compiler.phase7.ExpressionCreator
- All Implemented Interfaces:
Function<EK9Parser.ExpressionContext,
INode>
public final class ExpressionCreator
extends Object
implements Function<EK9Parser.ExpressionContext,INode>
Creates an Expression node from the AST passed in.
This is the backbone of the language really.
expression : expression op=(INC | DEC | BANG) | op=SUB expression | expression op=QUESTION | op=TOJSON expression | op=DOLLAR expression | op=PROMOTE expression | op=LENGTH OF? expression | op=PREFIX expression | op=SUFFIX expression | op=HASHCODE expression | op=ABS OF? expression | op=SQRT OF? expression | <assoc=right> left=expression coalescing=(CHECK | ELVIS) right=expression | primary | call | objectAccessExpression | list | dict | expression IS? neg=NOT? op=EMPTY | op=(NOT | TILDE) expression | left=expression op=CARET right=expression | left=expression op=(DIV | MUL | MOD | REM ) NL? right=expression | left=expression op=(ADD | SUB) NL? right=expression | left=expression op=(SHFTL | SHFTR) right=expression | left=expression op=(CMP | FUZ) NL? right=expression | left=expression op=(LE | GE | GT | LT) NL? right=expression | left=expression op=(EQUAL | NOTEQUAL | NOTEQUAL2) NL? right=expression | <assoc=right> left=expression coalescing_equality=(COALESCE_LE | COALESCE_GE | COALESCE_GT | COALESCE_LT) right=expression | left=expression neg=NOT? op=MATCHES right=expression | left=expression neg=NOT? op=CONTAINS right=expression | left=expression IS? neg=NOT? IN right=expression | left=expression op=(AND | XOR | OR) NL? right=expression | expression IS? neg=NOT? IN range | <assoc=right> control=expression LEFT_ARROW ternaryPart ternary=(COLON|ELSE) ternaryPart ;
-
Constructor Details
-
ExpressionCreator
-
-
Method Details
-
apply
- Specified by:
apply
in interfaceFunction<EK9Parser.ExpressionContext,
INode>
-