Parsing Smalltalk with SmaCC

Lukas Renggli renggli at
Thu Jun 28 10:13:43 UTC 2007

> Just try to install SmaCCDev-lr.17 in a squeak-dev image (that
> already contains SmaCC-lr.13). Open the SmaCC window, load StScanner
> and StParser. And try to test: 1 + 2.
> A message not understood: StScanner>>id is raised.
> any idea ?

I published SmaCCDev-lr.18 that fixes the issue you describe. Please
note that the parser takes a full method by example (to parse
expressions you have to use the utility methods on the class side), so
I typed "foo ^ 1 + 2" instead.

We should test and benchmark the SmaCC parser (for example on all the
methods of the image) to see if it generates the same trees as the one
from the RB and compare the speed.

> By the way, I was surprise to see that RBParser is not SmaCC-based...

RB is much older than SmaCC. I guess RB was one of the rasons that
SmaCC was developed, but it never got adapted to use the new parser.
The hand written RB parser is also adaptive, this means it changes its
behavior depending on the platform and the context (Smalltalk, Rewrite
Engine). That's difficult to do with SmaCC.


Lukas Renggli

More information about the Squeak-dev mailing list