config/checkstyle | ||
gradle | ||
src | ||
.gitignore | ||
.travis.yml | ||
build.gradle | ||
gradle.properties | ||
gradlew | ||
gradlew.bat | ||
LICENSE-jacc.txt | ||
README.md | ||
settings.gradle |
xbib Jacc
This is xbib Jacc, a derived work of Mark P. Jones' jacc project at http://web.cecs.pdx.edu/~mpj/jacc/
jacc is a parser generator for Java that is closely modeled on Johnson’s classic yacc parser generator for C.
What makes jacc different from other tools?
-
Close syntactic compatibility with Johnson’s classic yacc parser gen- erator for C (in so far as is possible given that the two tools target different languages)
-
Semantic compatibility with yacc—jacc generates bottom-up/shift-reduce parsers for LALR(1) grammars with disambiguating rules
-
A pure Java implementation that is portable and runs on many Java development platforms
-
Modest additions to help users understand and debug generated parsers, including: a feature for tracing parser behavior on sample inputs and tests for LR(0) and SLR(1) conflicts
-
A mechanism for generating syntax error messages from examples based on ideas described by Jeffery
-
Generated parsers that use the technique described by Bhamidipaty and Proebsting for creating very fast yacc-compatible parsers by generating code instead of encoding the specifics of a particular parser in a set of tables as the classic yacc implementations normally do
xbib Jacc has the following extra features and modifications:
-
build system is Gradle
-
Java 8+ (compiles under JRE profile
compact1
) -
removed HTML output
-
added logging
-
lots of fixes to conform to sonarqube rules
-
junit tests
There is a Gradle plugin for jacc available at https://xbib.org/joerg/gradle-plugins/gradle-plugin-jacc