"Ellery Newcomer" <ellery-newco...@utulsa.edu> wrote in message news:hbaom1$138...@digitalmars.com... > > But what I'm wondering about LALR is will it have to back up if it > chooses wrong, or can it sail on through in one parse attempt. I bet it > can. > > And how about actual ambiguity? How well does GOLD handle that?
I already answered regarding the parsing stage, but I should point out that the lexing can still backtrack (I don't know if that's obvious or not). For instance, if you have the terminals: FooKeyword = 'foo' StuffKeyword = 'fooAAAB' and input string: fooAAAC Then the lexer will get to the A's, try to match StuffKeyword, then get to the C, realize StuffKeyword doesn't match after all, so it'll then accept the FooKeyword, and continue on again from the first A. That's probably obvious to language and regex experts, but I actually learned that by accident. Someone found a bug in my Goldie GOLD engine when using their grammar, and I tracked it down to that kind of scenario and realized I was supposed to backtrack, if possible, upon a lex error instead of just noting the error and moving on. A better foundation in the theory probably would have helped me with that :) Anyway, I find this stuff neat :)