Just wanted to echo the note of thanks for writing the wiki article. :-) J
On 10/5/2010 8:43 AM, Jim Idle wrote: > Please read the article in the wiki on error recovery methods. You can see > there how to keep a parse loop going instead of it breaking out. You can > also see a real world example if you download the source code for the JavaFX > compiler, as I wrote the error recovery article after writing that parser. > > http://www.antlr.org/wiki/display/ANTLR3/Custom+Syntax+Error+Recovery > > Jim > >> -----Original Message----- >> From: [email protected] [mailto:antlr-interest- >> [email protected]] On Behalf Of Edson Tirelli >> Sent: Monday, October 04, 2010 3:27 PM >> To: [email protected] >> Subject: [antlr-interest] How to force error recovery? >> >> Hi all, >> >> Look at this simple grammar: >> >> grammar testGrammar; >> options { >> output=AST; >> } >> >> compilationUnit >> : statement* EOF >> ; >> >> statement >> : A^ >> | B^ C >> ; >> >> A : 'a'; >> >> B : 'b'; >> >> C : 'c'; >> >> WS : ( ' ' >> | '\t' >> | '\r' >> | '\n' >> ) {$channel=HIDDEN;} >> ; >> >> >> Using the above grammar, it will successfully parse an input like: >> >> a b c a >> >> Now, if the input is: >> >> a c a >> >> The generated parser will parse "a", and will fail at "c", as it is > not a valid >> statement. Reading the error recovery chapter on the ANTLR book, I would >> imagine ANTLR would delete/skip the "c" token and try to recover, >> successfully parsing the second "a", as that is a valid statement again. > But it is >> not working like this. It is aborting the parsing with an error at "c". >> >> Question: how do I force it to recover from the error and continue > parsing? >> >> The actual scenario is that the parser I am working on is used by an > IDE >> environment (eclipse), so we need it to continue parsing and presenting > the >> users with all the errors found in the file, not just the first one. The > error >> recovery seems to work on some rules, but not on the top rule >> (compilationUnit). >> >> Thanks, >> Edson >> >> -- >> Edson Tirelli >> JBoss Drools Core Development >> JBoss by Red Hat @ www.jboss.com >> >> List: http://www.antlr.org/mailman/listinfo/antlr-interest >> Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your- >> email-address > > > List: http://www.antlr.org/mailman/listinfo/antlr-interest > Unsubscribe: > http://www.antlr.org/mailman/options/antlr-interest/your-email-address > List: http://www.antlr.org/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address -- You received this message because you are subscribed to the Google Groups "il-antlr-interest" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/il-antlr-interest?hl=en.
