SableCC is an object-oriented framework that generates compilers (and interpreters) in the Java programming language. SableCC framework is based on two fundamental design decisions.
Firstly, the framework uses object-oriented techniques to automatically build a strictly typed abstract syntax tree. Secondly, the framework generates tree-walker classes using an extended version of the visitor design pattern which enables the implementation of actions on the nodes of the abstract syntax tree using inheritance.
These two design decisions lead to a tool that supports a shorter development cycle for constructing compilers.
Here are some key features of "SableCC":
· Deterministic Finite Automaton (DFA) based lexers with full Unicode support and lexical states.
· Extended Backus-Naur Form grammar syntax. (Supports the *, ? and + operators).
· LALR(1) based parsers.
· Automatic generation of strictly-typed abstract syntax trees.
· Automatic generation of tree-walker classes.
What's New in 3.2 Stable Release:
· SableCC now generates generic Java code.
What's New in 4 Alpha 4 Development Release:
· This alpha version brings an improved and complete grammar.
· It also adds documentation comments and JUnit tests.
What's New in This Release: [ read full changelog ]
· This release adds an invalid token to lexer exceptions, allows for custom push back buffers, and divides the parser method into smaller methods.