I’m learning ANTLR by modifying the C grammar and trying something interests myself. The C grammar I started with is from: http://www.antlr.org/grammar/1153358328744/C.g
Now I want to transform postfix_expression to its corresponding AST but haven’t known anything related to the transformation of the form xx (aa|bb|cc)* yy
...
unary_expression
: postfix_expression
| unary_operator^ unary_expression
;
postfix_expression
: primary_expression
( '[' expression ']'
| '(' ')'
| '(' argument_expression_list ')'
| '.' ID
)*
;
unary_operator
: '+'
| '-'
| '~'
| '!'
;
...
Can you help me with this problem? You may just add some ^ and/or ! notations to the postfix_expression part in the grammar.
Id’d go for something like this:
which will parse the input:
into the following AST:
making it easy to evaluate the expression left to right.