[antlr-interest] Fortran lexer problem
Jim Idle
jimi at temporal-wave.com
Sat Jan 16 19:14:21 PST 2010
You need gated predicate. Read the getting stared articles in the wiki.
Jim
On Jan 15, 2010, at 10:56, Юрушкин Михаил
<yurushkin at rambler.ru> 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.
>
> Юрушкин Михаил <yurushkin at 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 <jimi at 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-bounces at antlr.org [mailto:antlr-interest-
>>>> bounces at antlr.org] On Behalf Of Þðóøêèí Ìèõàèë
>>>> Sent: Friday, January 15, 2010 9:51 AM
>>>> To: antlr-interest at 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
More information about the antlr-interest
mailing list