No description
Find a file
2023-05-24 14:11:26 +02:00
config/checkstyle initial commit 2016-10-22 23:50:38 +02:00
gradle update to Gradle 8.1.1 2023-05-24 14:11:26 +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.adoc gradle Java build, README, travis yml 2016-11-23 23:51:10 +01:00
settings.gradle update to Gradle 8.1.1 2023-05-24 14:11:26 +02:00

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# xbib Jacc

image:https://api.travis-ci.org/xbib/jacc.svg[title="Build status", link="https://travis-ci.org/xbib/jacc/"]
image:https://img.shields.io/sonar/http/nemo.sonarqube.com/org.xbib%3Ajacc/coverage.svg?style=flat-square[title="Coverage", link="https://sonarqube.com/dashboard/index?id=org.xbib%3Ajacc"]
image:https://maven-badges.herokuapp.com/maven-central/org.xbib/jacc/badge.svg[title="Maven Central", link="http://search.maven.org/#search%7Cga%7C1%7Cxbib%20jacc"]
image:https://img.shields.io/badge/License-BSD%203--Clause-blue.svg[title="BSD 3-clause License", link="https://opensource.org/licenses/BSD-3-Clause"]
image:https://img.shields.io/twitter/url/https/twitter.com/xbib.svg?style=social&label=Follow%20%40xbib[title="Twitter", link="https://twitter.com/xbib"]
image:https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif[title="PayPal", link="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=GVHFQYZ9WZ8HG"]

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://github.com/jprante/gradle-plugin-jacc