[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: SableCC-2.6 bug?
Hi!
So how would one express something like a URL (RFC 1738) using SableCC?
Tnks!
Amancio
> Amancio Hasty wrote:
> >
> > ...
> > It appears that SableCC gets confused if the production rule
> > includes a token who is a proper subset of another token in the
> > rule.
>
> SableCC is behaving properly. Let me restate that SableCC lexers match
> the longest token, and then, if there are two tokens that can be
> matched, it chooses the first listed token in the Tokens section.
>
> This means, concretely, that "aaa" is matched as a TAlpa, because "aaa"
> could be both a TAlpa or a TLetter. But TAlpa is listed before TLetter,
> so TLetter is matched.
>
> It is important to see that the lexer operates independently from the
> parser. This means that the lexer won't look at the grammar and see that
> a TLetter is expected and try to match it.
>
> It is also important to note that TLetter will never be matched, because
> TAlpa completely hides it.
>
> Have fun!
>
> Etienne