63 lines
1.6 KiB
Text
63 lines
1.6 KiB
Text
root => root_expr*
|
|
root_expr => function
|
|
root_expr => expr
|
|
function => FUNCTION IDENT params block
|
|
params => IDENT
|
|
params => OP CP
|
|
params => OP params_impl
|
|
params_impl => IDENT COMMA params_impl
|
|
params_impl => IDENT CP
|
|
block => expr*
|
|
expr => if_expr
|
|
if_expr => IF math_expr block ELSE if_expr
|
|
if_expr => IF math_expr block ELSE block
|
|
if_expr => IF math_expr block
|
|
expr => DO block WHILE math_expr
|
|
expr => WHILE math_expr block
|
|
expr => LET IDENT EQ math_expr END
|
|
expr => LET IDENT END
|
|
expr => IDENT EQ math_expr END
|
|
expr => block
|
|
expr => RETURN math_expr END
|
|
expr => BREAK
|
|
expr => CONTINUE
|
|
expr => math_expr END
|
|
math_expr => (math_expr_and OR)* math_expr_and
|
|
math_expr_and => math_expr_and AND math_expr_and
|
|
math_expr_and => math_expr_compare
|
|
math_expr_compare => math_expr_compare <COMPARE> math_expr_compare
|
|
|
|
power_term => power_term POWER power_term
|
|
power_term => power_term BIT_AND power_term
|
|
power_term => power_term BIT_OR power_term
|
|
power_term => power_term SHIFT_LEFT power_term
|
|
power_term => power_term SHIFT_RIGHT power_term
|
|
power_term => term
|
|
term => value
|
|
term => tuple
|
|
term => list
|
|
term => table
|
|
term => IDENT
|
|
value => INT DIVIDE INT
|
|
value => INT
|
|
value => FLOAT
|
|
value => COMPLEX
|
|
value => STRING
|
|
value => REGEX
|
|
value => TRUE
|
|
value => FALSE
|
|
tuple => OP CP
|
|
tuple => OP tuple_impl
|
|
tuple_impl => math_expr COMMA tuple_impl
|
|
tuple_impl => math_expr CP
|
|
list => LBRK RBRK
|
|
list => LBRK list_impl
|
|
list_impl => math_expr COMMA tuple_impl
|
|
list_impl => math_expr RBRK
|
|
table => LBRC RBRC
|
|
table => LBRC table_impl
|
|
table_impl => table_key EQ math_expr COMMA table_impl
|
|
table_impl => table_key EQ math_expr RBRC
|
|
table_key => LBRK math_expr RBRK
|
|
table_key => IDENT
|
|
table_key => STRING
|