Jim Idle wrote: > Why don't you just remove the header before sending it to the lexer?
Yes, that is a good idea, too. I thought it should be possible to get this done with ANTLR > Or write a function/method to do input.consume() until you find 'P' then > check for 'Page', stop consuming if found, carry on consuming if not. Trigger > the method as appropriate in action code for tokens or at lexer start up. > Do you have any simple example or hint how to do that? > I would remove the 'literals' from your parser and make real lexer rules. Yes, that is what I have done in my real grammar, this one here was just an example. Thanks a lot - Fridi > Remember that the lexer runs, then the parser runs, you cannot direct the > lexer from the parser. > > Jim > > >> -----Original Message----- >> From: [email protected] [mailto:antlr-interest- >> [email protected]] On Behalf Of fridi >> Sent: Friday, January 08, 2010 7:15 AM >> To: [email protected] >> Subject: [antlr-interest] Match anything until a specific phrase >> >> Hello all, >> maybe someone can help me to get this done with ANTLR 3.2 >> >> My file has a header starting with 'test', some comments and then >> several blocks named 'Page 1', 'Page 2' etc. with integers, i.e. >> >> test This is a comment and >> we are not interested in. >> Today is friday. >> >> Page 1: >> 123 >> 456 >> 789 >> >> >> I want to have a rule that consumes everything of the header until the >> word 'Page'. >> 'Page' should not be consumed by the header, it be consumed by another >> rule. >> >> So I tried the following: >> >> grammar TestNot; >> >> options { >> language = Java; >> } >> >> rule : >> file; >> >> file : >> header PAGE INT ':' INT+ EOF; >> >> header : >> 'test' ~PAGE; >> >> PAGE : >> 'Page'; >> >> INT : >> DIGIT+; >> >> fragment >> DIGIT : >> '0'..'9'; >> >> >> Any idea? Thanks in advance. >> >> >> 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.
