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
--
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.