Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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
     ;

...