Skip to content

Commit fed5243

Browse files
committed
antlr4: Fixed more bugs
1 parent 68021d1 commit fed5243

File tree

1 file changed

+8
-15
lines changed

1 file changed

+8
-15
lines changed

src/main/antlr4/PiccodeScript.g4

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -46,24 +46,15 @@ func_args: '(' arg_list? ')' ;
4646

4747
arg_list: arg (',' arg)* ;
4848

49-
arg: ID (ASSIGN literal_expr)? ; // only allow literals in default values
50-
51-
52-
literal_expr :
53-
NUMBER
54-
| STRING
55-
|array
56-
| tuple
57-
| object
58-
;
49+
arg: (USE?) ID (ASSIGN expr)? ; // only allow literals in default values
5950

6051
expr_stmt: expr;
6152
// parser rules
6253
expr
63-
: expr CC expr
64-
| expr LPAREN call_expr_list? RPAREN
54+
: expr LPAREN call_expr_list? RPAREN
6555
| var_decl
6656
| closure_decl
57+
| expr CC expr
6758
| expr DOT expr
6859
| expr MUL expr
6960
| expr DIV expr
@@ -86,9 +77,9 @@ expr
8677
| expr BAND expr
8778
| expr COLON expr
8879
| LPAREN expr? RPAREN
89-
| unary
9080
| if_expr
9181
| when_expr
82+
| unary
9283
| do_expr
9384
| array
9485
| tuple
@@ -102,12 +93,12 @@ closure_decl: BOR arg_list? BOR ARROW expr;
10293
unary:
10394
EXCLAIM expr
10495
| SUB expr
105-
| RETURN expr
96+
| RETURN_TOK expr
10697
| TILDE expr
10798
| BAND expr;
10899

109100
if_expr:
110-
IF expr LBRACE expr RBRACE (ELSE LBRACE expr RBRACE)?;
101+
IF expr expr (ELSE expr)?;
111102

112103
when_expr:
113104
WHEN expr LBRACE when_cases else_case? RBRACE;
@@ -182,6 +173,8 @@ IF: 'if';
182173
ELSE: 'else';
183174
MODULE: 'module';
184175
DO: 'do';
176+
USE: 'use';
177+
RETURN_TOK: 'return';
185178

186179
NUMBER
187180
: HEX_LITERAL

0 commit comments

Comments
 (0)