Instead of cntlStatement : CNTL (statement)+ DSLASH (JCLNAME)? ( ENDCNTL ) ; How about cntlStatement : CNTL DSLASH (JCLNAME)? ( operation DSLASH (JCLNAME)? )+ ENDCNTL ; Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/