From 6856d2116bc7c03c5f9f04b574bad1384e1f8c68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=CC=88rg=20Prante?= Date: Wed, 23 Nov 2016 23:51:10 +0100 Subject: [PATCH] gradle Java build, README, travis yml --- .travis.yml | 12 +++++++ README.adoc | 42 +++++++++++++++++++++++ build.gradle | 17 +++++---- src/test/java/org/xbib/jacc/JaccTest.java | 1 - 4 files changed, 64 insertions(+), 8 deletions(-) create mode 100644 .travis.yml create mode 100644 README.adoc diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..0699641 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,12 @@ +language: java +sudo: required +jdk: + - oraclejdk8 +cache: + directories: + - $HOME/.m2 +after_success: + - ./gradlew sonarqube -Dsonar.host.url=https://sonarqube.com -Dsonar.login=$SONAR_TOKEN +env: + global: + secure: n1Ai4q/yMLn/Pg5pA4lTavoJoe7mQYB1PSKnZAqwbgyla94ySzK6iyBCBiNs/foMPisB/x+DHvmUXTsjvquw9Ay48ZITCV3xhcWzD0eZM2TMoG19CpRAEe8L8LNuYiti9k89ijDdUGZ5ifsvQNTGNHksouayAuApC3PrTUejJfR6SYrp1ZsQTbsMlr+4XU3p7QknK5rGgOwATIMP28F+bVnB05WJtlJA3b0SeucCurn3wJ4FGBQXRYmdlT7bQhNE4QgZM1VzcUFD/K0TBxzzq/otb/lNRSifyoekktDmJwQnaT9uQ4R8R6KdQ2Kb38Rvgjur+TKm5i1G8qS2+6LnIxQJG1aw3JvKK6W0wWCgnAVVRrXaCLday9NuY59tuh1mfjQ10UcsMNKcTdcKEMrLow506wSETcXc7L/LEnneWQyJJeV4vhPqR7KJfsBbeqgz3yIfsCn1GZVWFlfegzYCN52YTl0Y0uRD2Z+TnzQu+Bf4DzaWXLge1rz31xkhyeNNspub4h024+XqBjcMm6M9mlMzmmK8t2DIwPy/BlQbFBUyhrxziuR/5/2NEDPyHltvWkRb4AUIa25WJqkV0gTBegbMadZ9DyOo6Ea7aoVFBae2WGR08F1kzABsWrd1S7UJmWxW35iyMEtoAIayXphIK98qO5aCutwZ+3iOQazxbAs= diff --git a/README.adoc b/README.adoc new file mode 100644 index 0000000..27708ae --- /dev/null +++ b/README.adoc @@ -0,0 +1,42 @@ +# 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 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://github.com/jprante/gradle-plugin-jacc \ No newline at end of file diff --git a/build.gradle b/build.gradle index 3f6ef05..299a224 100644 --- a/build.gradle +++ b/build.gradle @@ -3,9 +3,9 @@ plugins { } ext { - user = 'jprante' + user = 'xbib' name = 'jacc' - description = 'Java implementation of Yet Another Compiler-Compiler' + description = 'A Java implementation of yacc (yet another compiler-compiler)' scmUrl = 'https://github.com/' + user + '/' + name scmConnection = 'scm:git:git://github.com/' + user + '/' + name + '.git' scmDeveloperConnection = 'scm:git:git://github.com/' + user + '/' + name + '.git' @@ -22,14 +22,11 @@ apply plugin: 'pmd' apply plugin: 'checkstyle' apply plugin: 'jacoco' -sourceCompatibility = 1.8 -targetCompatibility = 1.8 +sourceCompatibility = JavaVersion.VERSION_1_8 +targetCompatibility = JavaVersion.VERSION_1_8 repositories { mavenCentral() - maven { - url "http://xbib.org/repository" - } } configurations { @@ -41,6 +38,12 @@ dependencies { wagon 'org.apache.maven.wagon:wagon-ssh-external:2.10' } + +[compileJava, compileTestJava]*.options*.encoding = 'UTF-8' +tasks.withType(JavaCompile) { + options.compilerArgs << "-Xlint:all" << "-profile" << "compact1" +} + test { testLogging { showStandardStreams = false diff --git a/src/test/java/org/xbib/jacc/JaccTest.java b/src/test/java/org/xbib/jacc/JaccTest.java index a566260..4fbc31b 100644 --- a/src/test/java/org/xbib/jacc/JaccTest.java +++ b/src/test/java/org/xbib/jacc/JaccTest.java @@ -1,6 +1,5 @@ package org.xbib.jacc; -import org.junit.Ignore; import org.junit.Test; import org.xbib.jacc.helper.StreamMatcher;