Root: (elements+=Element)* ; Element : Enum | Expression ; Enum: 'enum' name=ID '{' (element+=EnumElement)* '}' ; EnumElement: name = ID ; Expression: a=[Attribute| ENUMTERMINALRULE] ; Attribute: Enum | EnumElement ; ENUMTERMINALRULE: ID"."ID;
enum greeting{ hello goodMorning } enum who { you me i } greeting.goodMorning who.me who.hello //error