> Why does this not do what I want and how can I fix it? You should merge rules FOO and BAR, e.g. FOO : ("foo" "::") => "foo" { $setType( FOO_1 ); } | ("foo" '(') => "foo" { $setType( FOO_2 ); } | BAR { $setType( BAR ); } ; private BAR : ('a'..'z')+ ; Silvain Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/