[antlr-interest] Another parsing question
Johannes Luber
jaluber at gmx.de
Mon Aug 4 15:12:38 PDT 2008
Carter Cheng schrieb:
> The difficulty is with the language I am working with in the first case it should be two tokens ']' ')' but the second case it should be one token '])' without intervening whitespace between the ']' and ')'.
>
> The only way I can see of solving this problem is to make white space explicit in the grammar. I.e. litter my rules with whitespace tokens and omit a whitespace token in the case when i expect a '])'. Is this the correct way to do this with ANTLRv3?
>
> Regards,
>
> Carter.
You can check manually, if the indizes of the two tokens differ by only
one. In that case no whitespace/comment/etc. is between them.
$RBRACKET.index == $RPAREN.index -1 should work (replace the token names
with the ones, you used).
Johannes
>
>
> --- On Mon, 8/4/08, Gavin Lambert <antlr at mirality.co.nz> wrote:
>
>> From: Gavin Lambert <antlr at mirality.co.nz>
>> Subject: Re: [antlr-interest] Another parsing question
>> To: carter_cheng at yahoo.com, antlr-interest at antlr.org
>> Date: Monday, August 4, 2008, 2:45 PM
>> At 08:45 5/08/2008, Carter Cheng wrote:
>> >Thanks everyone for the help thus far. This is likely
>> another
>> >beginners question concerning the behavior of the
>> lexer/parser
>> >interactions in ANTLRv3. The question I have is are
>> the tokens
>> >requested by the parser context dependent? i.e. is a
>> different
>> >(N)DFA constructed depending on which tokens the
>> parser expects
>> to
>> >see in the stream or is there only 1 N(DFA) with a
>> series of
>> stop
>> >states.
>>
>> Lexing is all done up front with no input from the parser
>> at all.
>>
>> >(a[1]); // lookup the index 1 in the variable array a
>> >
>> >([ 1 : 2 ]); // construct a mapping value with key :
>> value in
>> this
>> >case 1 : 2
>> >
>> >The question I have is how can ANTLRv3 know whether ])
>> is a
>> single
>> >token or two tokens?
>>
>> Depends on how you've defined the lexer rules :) But
>> normally
>> you'd want to define it as two tokens.
>
>
>
>
More information about the antlr-interest
mailing list