37 lines
453 B
Plaintext
37 lines
453 B
Plaintext
syntax_ids:
|
|
add_expr
|
|
sub_expr
|
|
mul_expr
|
|
div_expr
|
|
number_expr
|
|
group_expr
|
|
term
|
|
expr
|
|
|
|
rules:
|
|
|
|
expr
|
|
: expr plus term
|
|
=> new_node add_expr $0 $1 $2
|
|
: expr minus term
|
|
=> new_node sub_expr $0 $1 $2
|
|
: term
|
|
=> new_node expr $0
|
|
;
|
|
|
|
term
|
|
: term multiply factor
|
|
=> new_node mul_expr $0 $1 $2
|
|
: term divide factor
|
|
=> new_node div_expr $0 $1 $2
|
|
: factor
|
|
=> new_node term $0
|
|
;
|
|
|
|
factor
|
|
: number
|
|
=> new_node number_expr $0
|
|
: lparen expr rparen
|
|
=> new_node group_expr $1
|
|
;
|