A declarative specification of Java 8's syntax in Spoofax.
The maven artifacts for this project are supplied on our artifact server, see the instructions on our website. To use the java-front plugin in Eclipse you also need to install the plugin through the update site hosted on our buildfarm.
Each directory contains specifications for a section of the Java language:
- arrays - Syntax for array initializers
- classes - Class, method, constructor, field and enum declarations
- expressions - All expressions
- interfaces - Interface, abstract method, constant and annotation declarations
- lexical - Lexical syntax for identifiers, comments, layout, etc.
- literals - Boolean, numerical, string, and null literals
- names - References to definitions of names
- packages - Compilation unit, package, and import declarations
- statements - All statements
- types - Primitive and reference types
The project also contains tests with java files from the Spoofax codebase, and succeeding tests from the Java language specification.
Development (-SNAPSHOT
) versions on the master
branch are automatically deployed by the buildfarm.
To deploy a release version of java-front, merge master
into release
and use the set_release_version.sh
script to update to the release version and latest released Spoofax version. Now commit and push this version change to the release
branch, and tag it with a version tag such as v0.2.0
. Remember to use git push --tags
to push the tag. The buildfarm will build and deploy the release version when it receives the new tag.
Once a release is done master
should be updated to a new development version. Never merge release
into master
, then the version numbers won't match the helper script. For updating the development version you can use the update_develop_version.sh
script. It needs the current version (without -SNAPSHOT
), a new version (without -SNAPSHOT
) and the latest Spoofax nightly version (without -SNAPSHOT
).