[antlr-interest] Newbie trying to tame lexer

forumer at smartmobili.com forumer at smartmobili.com
Sat Aug 18 06:08:55 PDT 2012


Thanks a lot, I just see your answer now and I am trying it.
It seems to work except for javadoc comment :

/**
public class FooBar extends Bar {

}
*/

I get a new FailedPredicateException(input, "BLOCK_COMMENT", 
"input.LA(1) != '*' && input.LA(2) != '/'");







Le 05.08.2012 19:53, Bart Kiers a écrit :
> Try something like this:
>
>> BLOCK_COMMENT
>>
>>  : /* ({input.LA(1) != * && input.LA(2) != /}?=> . )* 
>>
>>    ( */ 
>>
>>    | EOF {System.err.println("Oi, wrong BLOCK_COMMENT!");}
>>
>>    )
>>
>>  ;
>
> Note that the predicate, `{input.LA(1) != * && input.LA(2) != /}?=>`,
> contains target-specific code (Java, in my example).
>
> Regards,
>
> Bart.
>
> On Sat, Aug 4, 2012 at 10:34 PM,  wrote:
>
>> Le 04.08.2012 20:20, Bart Kiers a écrit :
>>
>>> Hi forumer,
>>>
>>> Youd normally create a single rule for a block comment, like
>>> this:
>>>
>>> BLOCK_COMMENT
>>>  : /* .* */
>>>  ;
>> Yes I know but I need a parser that can accept invalid multiline
>> comments, ex
>>
>> /*
>> * I am an invalid multiline comment
>>
>> With the traditional approach I will get a match exception and I
>> dont want that.
>> So is it possible ?
>
>
>
> Links:
> ------
> [1] mailto:forumer at smartmobili.com


More information about the antlr-interest mailing list