You need gated predicate. Read the getting stared articles in the wiki. Jim
On Jan 15, 2010, at 10:56, Юрушкин Михаил <[email protected]> wrote: > I have the following term > > LINE_COMMENT > : ({blabla}? ('c' | 'C' | '*') | '!' ) ~('\n')* > { > $channel = HIDDEN; > } > ; > > but it only pasts the following code at the end: > > > switch (alt31) > { > case 1: > { > if ( !((blabla)) ) > { > CONSTRUCTEX(); > EXCEPTION->type = > ANTLR3_FAILED_PREDICATE_EXCEPTION; > EXCEPTION->message = (void *)"blabla"; > EXCEPTION->ruleName = (void > *)"LINE_COMMENT"; > } > > > if "blabla" is false, an error is occured... but it's not right. > > Юрушкин Михаил <[email protected]> писал(а) в > своём письме Fri, 15 Jan 2010 21:27:22 +0300: > >> Excuse me, but how can I specify this condition (is it a first >> symbol and >> symbol='c')? >> Could you send me a piece of lexer grammar? >> >> >> Jim Idle <[email protected]> писал(а) в своём >> письме Fri, 15 Jan 2010 >> 21:20:46 +0300: >> >>> I think Fortran comments that start with C have to have the C in >>> character position 0 (or 1 in Fortran I guess ;-). So your comment >>> rule >>> can be predicated by checking for line position 0 in ANTLR terms. >>> >>> Jim >>> >>>> -----Original Message----- >>>> From: [email protected] [mailto:antlr-interest- >>>> [email protected]] On Behalf Of Þðóøêèí Ìèõàèë >>>> Sent: Friday, January 15, 2010 9:51 AM >>>> To: [email protected] >>>> Subject: [antlr-interest] Fortran lexer problem >>>> >>>> Good day, >>>> >>>> I want to add comments of Fortran 77: >>>> >>>> "c xxxxx"; >>>> First symbol in column is 'c' - it means that the following line >>>> is a >>>> line >>>> of comment. >>>> >>>> but I also have NAME token, that will conflict with such COMMENT >>>> rule. >>>> ('c' can be a name). >>>> >>>> Is it possible to select rule by my own predicate? Are there any >>>> other >>>> more clear solvings of >>>> this problem? >>>> >>>> >>>> -- >>>> Best regards, >>>> Michael >>>> >>>> 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 >>> >>> __________ Information from ESET Smart Security, version of virus >>> signature database 4775 (20100115) __________ >>> >>> The message was checked by ESET Smart Security. >>> >>> http://www.esetnod32.ru >>> >>> >>> >> >> > > > -- > Best regards, > Michael 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.
