grammar regions; @header{ // package regionsparser; } start : region EOF; region returns [Region r]: UNITCIRCLE { r = new UnitCircle(); } | UNION LPAR r1=region COMMA r2=region RPAR { r = new UnionRegion(r1,r2); } | SCALE LPAR n=INT COMMA r1=region RPAR { r = new ScaleRegion(n.getText(),r1); zzz = } ; UNION : 'union' ; SCALE : 'scale' ; UNITCIRCLE : 'unitcircle' ; LPAR : '('; RPAR : ')'; COMMA : ','; INT : '0'..'9'+ ;