[antlr-interest] Another parsing question
Carter Cheng
carter_cheng at yahoo.com
Tue Aug 5 20:09:08 PDT 2008
Thanks this seems to work.
--- On Mon, 8/4/08, Johannes Luber <jaluber at gmx.de> wrote:
> From: Johannes Luber <jaluber at gmx.de>
> Subject: Re: [antlr-interest] Another parsing question
> To: carter_cheng at yahoo.com
> Cc: antlr-interest at antlr.org
> Date: Monday, August 4, 2008, 3:12 PM
> 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