[type]
Parser

[grammar]
grammar T;
s : e {<writeln("$e.v")>};
e returns [int v, <StringList()> ignored]
  : a=e '*' b=e {$v = $a.v * $b.v;}
  | a=e '+' b=e {$v = $a.v + $b.v;}
  | INT {$v = $INT.int;}
  | '(' x=e ')' {$v = $x.v;}
  ;
INT : '0'..'9'+ ;
WS : (' '|'\n') -> skip ;

[start]
s

[input]
(1+2)*3

[output]
"""9
"""

