Wisent is an LALR(1) parser generator with pluggable front- and backends. It generates object-oriented code with clean namespace separation. A yacc-like frontend is currently accompanied by a C++ and a Java backend. The tool itself is implemented in C++.
- independent (source)
- GNU make, POSIX shell (distributed build scripts)
GNU General Public License (GPL)
Building wisent requires the lexer tool flex
.
- Clone repository:
git clone https://github.com/preusser/wisent.git
- Change into directory 'wisent':
cd wisent
- Build the parser generator:
make wisent
- Test the provided Java example (see also examples/Calc.howto):
cd examples
../wisent -bjava Calc
javac Calc.java
java Calc
Please, refer to the technical report TUD-FI04-11.
Besides the shipped examples, the parser for the wisent grammar itself in implemented by a wisent grammar. Other use examples can be found in the following projects:
Project | Grammar |
---|---|
Q2D | Boolean Expression Parser |
Q27 | Range Specification Parser |
QBM | QDL Circuit Description Parser |