grammar Lisp; options{ output=AST; } tokens { Num; } lisp : sExp ; sExp : NUM -> ^(Num NUM) | PAL -> | '(' sExp* ')' -> sExp* ; NUM : ('0'..'9')+ ; PAL : ('a'..'z')+ ; WS : (' ' | '\t' | '\n' | '\r') { skip(); }; COMMENT : '/*' (options {greedy=false;}:.)* '*/' { skip(); };