SmaCC (Smalltalk Compiler-Compiler) is a freely available parser generator for Smalltalk. It is a replacement for the T-Gen parser generator. T-Gen has several limitations that make it difficult to produce parsers. SmaCC overcomes T-Gen's limitations. For example, SmaCC can generate parsers for ambiguous grammars and grammars with overlapping tokens. Both of these are not possible using T-Gen. In addition to handling more grammars than T-Gen, SmaCC has a smaller runtime than T-Gen and is faster than T-Gen.
The product of this tool are two classes - a scanner and a parser class. They contain the source code (rules) as strings on the class side which allows to regenerate them even if one hasn't got the original source code.
The tool comes with an easy to use GUI and an excellent tutorial.
Sample classes for parsing C, Java and Smalltalk are included.