[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Bug in SableCC 2.17.2?

Xuan Baldauf wrote:
> Where can I find documentation about the grammar definition file
> format (except the thesis and the example grammars)?

This is probably not what you want, but the grammar itself is described
as a SableCC grammar in one of the examples.  The best reference (with
explanations) are chapters 5 & 6 in the thesis...  And there's always
this list to ask for clarifications;-)

> Are there any difference between a "set of alternatives of characters"
> and a "set of characters" in using them? (Does the former have
> advantages that the latter cannot have and vice versa?)

The advantage of using set of characters is the "-" operator that is not
available to "regular expressions".  This will eventually change in
SableCC 3.x.  The other advantage is the availability of "ranges" e.g.
['a'..'z'] which would be otherwise quite annoying to write 'a' | 'b' |
'c' | etc.

> With the current syntax, I have to write this (which is ugly):
> separators  =
> [
>   [
>     [
>       [
>         [
>           '(' +

This will also change in SableCC 3.x... (The difference between sets and
reg.exp. will disappear along the "+" operator.  You'll simply write:

xxx = (['a' .. 'z'] | ['A' .. 'Z'] | ['0' .. 10]) - ('3' | 'b' | 'F');

And even:

identifier = (['a' .. 'z'] (['a' .. 'z'] | ['0' .. '9'])*) - 'hello';

Neat, isn't it?  Yep, I'll have to do the dirty work to make this

But, this is not for tommorrow...  I'm just letting you (and myself)
dream a little:)

Have fun!
P.S. Big thanks to Mariusz for the quick modifications.  I like youe
"magic" debugging property a lot.
Etienne M. Gagnon                                    egagnon@j-meg.com
SableVM:                                       http://www.sablevm.org/
SableCC:                                       http://www.sablecc.org/