[antlr-interest] Re: A question about extracting comments
Fan Yang
yhhf_dy at yahoo.com
Fri Oct 11 10:06:49 PDT 2002
Hi,
Thank you very much for your response.
I have already tried to use k=4 for 4 characters look ahead. But it
didn't work; it still gave me the following warning.
warning: lexical nondeterminism between rules COMMENT and IDENT upon
MyVB.g:0: k==1:'r'
MyVB.g:0: k==2:'0'..'9','_','a'..'z'
MyVB.g:0: k==3:<end-of-token>,'0'..'9','_','a'..'z'
MyVB.g:0: k==4:<end-of-token>,'0'..'9','_','a'..'z'
Is it possible to put "rem" into literal table(I know it's possible
for parser not for lexer)? because I have given the options
{testLiterals=true;} for IDENT. or someway else?
>But are you sure "rem " it's what you really want? What about "rem"
>followed by a tab?
By the way, you are right about production for "rem". it must change
to something like following rule:
COMMENT
: ("rem " | '\'')
(~('\n'|'\r'))* ('\n'|'\r'('\n')?)
{$setType(ANTLR_USE_NAMESPACE(antlr)Token::SKIP); newline();}
;
Thanks,
fan
--- In antlr-interest at y..., Bogdan Mitu <bogdan_mt at y...> wrote:
> Hi,
>
> If you use k=4, you will probably get rid of the nondeterminism,
since "rem
> " contains a space, while IDENT doesn't.
>
> But are you sure "rem " it's what you really want? What about "rem"
followed
> by a tab?
>
> Regards,
> Bogdan
>
>
> --- Fan Yang <yhhf_dy at y...> wrote:
> > Hi everybody,
> >
> > I'm new to Antlr. I want to develop a parser for a language. In
the
> > language it uses REM and ' as keywords for comment. I wrote the
> > following grammar to deal with comments. for ' kind of comments
is
> > ok. But it is obviously that "rem " is nondeterminism upon IDENT.
But
> > I don't know how to remove it. Would you please help me erase the
> > nondeterminism error.
> >
> > thanks a lot.
> >
> > COMMENT
> > : "rem "
> > | '\'' (~('\n'|'\r'))* ('\n'|'\r'('\n')?)
> > {$setType(ANTLR_USE_NAMESPACE(antlr)Token::SKIP); newline();}
> > ;
> >
> > IDENT
> > options {testLiterals=true;}
> > :('a'..'z'|'_') ('a'..'z'|'_'|'0'..'9')*
> > ;
> >
> > WS_
> > :(' '
> > | '\t'
> > ){ _ttype = ANTLR_USE_NAMESPACE(antlr)Token.SKIP; }
> > ;
> >
> >
> >
> >
> >
> > Your use of Yahoo! Groups is subject to
http://docs.yahoo.com/info/terms/
> >
> >
> >
>
>
> __________________________________________________
> Do you Yahoo!?
> Faith Hill - Exclusive Performances, Videos & More
> http://faith.yahoo.com
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
More information about the antlr-interest
mailing list