No description
Find a file
2023-05-24 16:36:47 +02:00
config/checkstyle initial commit 2016-10-22 23:50:38 +02:00
gradle fix forgejo, rename adoc to md 2023-05-24 16:36:47 +02:00
src update to Gradle 8.1.1 2023-05-24 14:11:26 +02:00
.gitignore initial commit 2016-10-22 23:50:38 +02:00
.travis.yml update to Gradle 4.6 2020-05-13 15:54:26 +02:00
build.gradle update to Gradle 8.1.1 2023-05-24 14:11:26 +02:00
gradle.properties update to Gradle 8.1.1 2023-05-24 14:11:26 +02:00
gradlew update to Gradle 8.1.1 2023-05-24 14:11:26 +02:00
gradlew.bat update to Gradle 8.1.1 2023-05-24 14:11:26 +02:00
LICENSE-jacc.txt initial commit 2016-10-22 23:50:38 +02:00
README.md fix forgejo, rename adoc to md 2023-05-24 16:36:47 +02:00
settings.gradle update to Gradle 8.1.1 2023-05-24 14:11:26 +02:00

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 Johnsons classic yacc parser generator for C.

What makes jacc different from other tools?

  • Close syntactic compatibility with Johnsons 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