gradle Java build, README, travis yml

This commit is contained in:
Jörg Prante 2016-11-23 23:51:10 +01:00
parent a00c9708a8
commit 6856d2116b
4 changed files with 64 additions and 8 deletions

12
.travis.yml Normal file
View file

@ -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=

42
README.adoc Normal file
View file

@ -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 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

View file

@ -3,9 +3,9 @@ plugins {
} }
ext { ext {
user = 'jprante' user = 'xbib'
name = 'jacc' 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 scmUrl = 'https://github.com/' + user + '/' + name
scmConnection = 'scm:git:git://github.com/' + user + '/' + name + '.git' scmConnection = 'scm:git:git://github.com/' + user + '/' + name + '.git'
scmDeveloperConnection = '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: 'checkstyle'
apply plugin: 'jacoco' apply plugin: 'jacoco'
sourceCompatibility = 1.8 sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = 1.8 targetCompatibility = JavaVersion.VERSION_1_8
repositories { repositories {
mavenCentral() mavenCentral()
maven {
url "http://xbib.org/repository"
}
} }
configurations { configurations {
@ -41,6 +38,12 @@ dependencies {
wagon 'org.apache.maven.wagon:wagon-ssh-external:2.10' 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 { test {
testLogging { testLogging {
showStandardStreams = false showStandardStreams = false

View file

@ -1,6 +1,5 @@
package org.xbib.jacc; package org.xbib.jacc;
import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;
import org.xbib.jacc.helper.StreamMatcher; import org.xbib.jacc.helper.StreamMatcher;