Is there any good reason why rules of the form: x = y | z y = (a)? b (c|d)? ... z = (a)? e (c|d)? ... should give me parser nondeterminism warnings? Or is it somewhere else in my rules? I think I am using plenty of lookahead (3) Jim. Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/