[orx-expression-evaluator-typed] Add list and lambda support
This commit is contained in:
@@ -25,18 +25,24 @@ DIVISION : '/' ;
|
||||
ASSIGN : '=' ;
|
||||
LPAREN : '(' ;
|
||||
RPAREN : ')' ;
|
||||
LBRACKET : '[' ;
|
||||
RBRACKET : ']' ;
|
||||
LCURLY : '{' ;
|
||||
RCURLY : '}' ;
|
||||
|
||||
QUESTION_MARK : '?' ;
|
||||
COLON : ':' ;
|
||||
|
||||
ARROW : '->' ;
|
||||
|
||||
COMMA : ',' ;
|
||||
DOT : '.' ;
|
||||
|
||||
EQ : '==' ;
|
||||
LT : '<' ;
|
||||
LTEQ : '<=' ;
|
||||
GT : '>=' ;
|
||||
GTEQ : '>' ;
|
||||
GT : '>' ;
|
||||
GTEQ : '>=' ;
|
||||
|
||||
AND : '&&' ;
|
||||
OR : '||' ;
|
||||
|
||||
@@ -10,8 +10,13 @@ line : statement (NEWLINE | EOF) ;
|
||||
statement :
|
||||
expression # expressionStatement ;
|
||||
|
||||
lambda: LCURLY (ID ( COMMA ID )* ARROW )? expression RCURLY # functionLiteral;
|
||||
|
||||
expression : INTLIT # intLiteral
|
||||
| DECLIT # decimalLiteral
|
||||
| LBRACKET (expression ( COMMA expression )*)? RBRACKET # listLiteral
|
||||
| expression DOT ID lambda # memberFunctionCall0LambdaExpression
|
||||
| lambda # lambdaExpression
|
||||
| expression DOT ID LPAREN RPAREN # memberFunctionCall0Expression
|
||||
| expression DOT ID LPAREN expression RPAREN # memberFunctionCall1Expression
|
||||
| expression DOT ID LPAREN expression COMMA expression RPAREN # memberFunctionCall2Expression
|
||||
|
||||
Reference in New Issue
Block a user