SmaCC Download

SmaCC is available for free use under the MIT license. However, we request that if you create a parser for some widely available language, you make it available for others to use.

Description Date
Dolphin packages July 28, 2015
VisualWorks parcels July 28, 2015
VASmalltalk applications July 28, 2015

For Pharo, you can load SmaCC using:

Metacello new
   baseline: 'SmaCC';
   repository: 'github://j-brant/SmaCC/src';
   load

These files contain several packages. Not all packages are available for all Smalltalks.

Package Description
SmaCC Namespace The SmaCC namespace and is only available for VisualWorks.
SmaCC Runtime The runtime part of SmaCC. All parsers created with SmaCC will need this package.
SmaCC GLR Runtime The runtime for GLR parsers created with SmaCC. All GLR parsers created with SmaCC need this package.
SmaCC Development Code to create new parsers. It is only needed if you are creating new parsers.
SmaCC Development UI GUI front end to the SmaCC Development package.
SmaCC Source Editing A special string implementation that is used by the SmaCC Rewrite Engine when transforming code.
SmaCC Rewrite Engine Code to transform ASTs parsed by SmaCC.
SmaCC Rewrite Engine UI GUI front end to the SmaCC Rewrite Engine. Currently, this package is only available for Dolphin.
SmaCC Server Session An abstract Dolphin session manager that is used by the SmaCC Rewrite Server and SmaCC Rewrite Server Worker packages.
SmaCC Rewrite Server A simple server that can be used to run multiple rewriters across several images. On Dolphin, this package requires Udo Schneider's NotifyView and Ian Bartholomew's MultipleFileOpenDialog packages.
SmaCC Rewrite Server Worker The worker threads that connect to the SmaCC Rewrite Server and use the SmaCC Rewrite Engine package.
SmaCC Tests Tests for the SmaCC Runtime, SmaCC GLR Runtime, and SmaCC Development packages.
SmaCC Rewrite Engine Tests Tests for the SmaCC Rewrite Engine package.
SmaCC Smalltalk Parser An example Smalltalk parser that parses the VisualWorks syntax. It cannot parse some VisualWorks specific syntax (e.g., qualified references) in a non-VW image as we use some VW specific methods.
SmaCC C Parser A simple C grammar - it does not handle any preprocessor definitions so its usefulness is severely limited.
SmaCC CSharp C# grammar that has been annotated to generate ASTs so you can use it to transform code using the SmaCC Rewrite Engine.
SmaCC Java Java grammar that has been annotated to generate ASTs.
SmaCC JavaScript JavaScript grammar that has been annotated to generate ASTs.
SmaCC CSV Parser A CSV file parser.
SmaCC Debugging Support Custom debugger and inspector for Pharo.
SmaCC Generic Smalltalk Parser A generic Smalltalk parser that generates SmaCC ASTs instead of using the AST nodes from the Refactoring Browser like the SmaCC Smalltalk Parser uses.
SmaCC Line Parser A simple text file parser that separates the lines. It can handle all of the standard line ending conventions.
SmaCC Swift A start of a Swift parser. The grammar needs to be updated for the latest Swift release and to fully annotate the nodes to generate ASTs.
SmaCC Parse Tree Comparison Command line program to compare two files to see if their ASTs are equal. Return 0 if equal, and non 0 if they are not equal of some problem occurred.
SmaCC Rewrite Engine Command Line Command line program that executes a rewriter transformation file.