...
Code Block |
---|
grammar Ollie; option { multipassoutput=truevisitor; } // inventing an option here stat : lhs=ID '=' e=expr ';' -> visitStat; expr : left=mexpr (op='+' right=mexpr -> visitAdd)* ; mexpr : left=atom (op='*' right=atom -> visitMult)* ; atom : INT -> visitInt | ID -> visitID | array=ID '[' index=expr ']' -> visitArrayIndex ; |
...