Michael... I feel pity for you if have to parse F77. You're going to run into a few problems harder to solve/avoid than this. So if you're just going to discard comments anyway... I suggest you prefilter your input with a tool like 'sed' to strip fixed format comments. Then you can get on with quirky things like Fortran edit descriptors. :)
Kyle Sent from my Verizon Wireless BlackBerry -----Original Message----- From: Юрушкин Михаил <yurush...@rambler.ru> Date: Fri, 15 Jan 2010 21:56:21 To: Юрушкин Михаил<yurush...@rambler.ru>; Jim Idle<j...@temporal-wave.com>; antlr-interest@antlr.org<antlr-interest@antlr.org> Subject: Re: [antlr-interest] Fortran lexer problem 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. Юрушкин Михаил <yurush...@rambler.ru> писал(а) в своём письме 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 <j...@temporal-wave.com> писал(а) в своём письме 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: antlr-interest-boun...@antlr.org [mailto:antlr-interest- >>> boun...@antlr.org] On Behalf Of Þðóøêèí Ìèõàèë >>> Sent: Friday, January 15, 2010 9:51 AM >>> To: antlr-interest@antlr.org >>> 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 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 il-antlr-inter...@googlegroups.com. To unsubscribe from this group, send email to il-antlr-interest+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/il-antlr-interest?hl=en.