[antlr-interest] howto ignore unknown tokenstreams/recordsets
Oliver Kowalke
oliver.kowalke at gmx.de
Mon Jan 17 04:32:58 PST 2005
Hi,
I'm writing a parser which parses a dokument (datasets separated by
semicolon).
How can I ignore unknown datasets (in my example recordsets X and Y)?
with best regards
Oliver
document structure:
A 1 2;
B 2;
X 1 2;
C "xyz";
Y "ijk";
D "uvw" 123;
The parser grammar looks like this:
...
class MyLexer extends Lexer;
options
{ k=2; }
tokens
{
A="A";
B="B";
C="C";
D="D";
}
INT : ( '0'..'9' )+;
STRING : '"'!
( ~( '\'' | '"' | '\n' | '\r' ) )*
( '"'!
| // nothing -- write error message
)
;
EODS : ';';
DELIM : ( ' '
| '\t'
| ( "\r\n"
| '\r'
| '\n'
)
{ newline(); }
)
{ $setType( antlr::Token::SKIP ); }
;
class MyParser extends Parser;
options { k=2; }
start_rule : sec_1_rule sec_2_rule EOF;
sec_1_rule : ( a_rule | b_rule )*;
sec_2_rule : ( c_rule | d_rule )*;
a_rule : A INT INT EODS;
b_rule : B INT EODS;
c_rule : C STRING EODS;
d_rule : D STRING INT EODS;
--
10 GB Mailbox, 100 FreeSMS http://www.gmx.net/de/go/topmail
+++ GMX - die erste Adresse für Mail, Message, More +++
More information about the antlr-interest
mailing list