jacc/README.adoc

42 lines
No EOL
2.4 KiB
Text
Raw Blame History

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