b066987e71 | ||
---|---|---|
doc | ||
lib | ||
src/pp | ||
util | ||
.gitignore | ||
README.md | ||
build.xml |
README.md
Prerequisites
Boppi requires JDK 1.8 or higher and Ant. Both must be available in the environment. Ant may be provided by your Java IDE, may be installed via a package manager or may be downloaded from the website. See (https://ant.apache.org/manual/index.html) for manual installation instructions.
Installation
Run ant build
to perform a basic build of the project: it initialises output directories, generates ANTLR files and compiles all java files. To skip ANTLR file generation, run ant do-init
and ant do-build
separately.
Run ant build-all
to do the above and generate javadoc documentation, run JUnit tests and produce a runnable JAR file.
To see all possible targets, run ant -verbose -projecthelp
.
Troubleshooting
If the generated ANTLR files end up in the wrong directory, please uncomment occurences of
in the Ant file.
Command line use
After building a JAR file, a command boppi
becomes available in the dist/
folder. This command can be used to compile and run files or perform an interactive session. See boppi --help
and boppi interactive --help
for more information.
Directory structure
bin
contains compiled java code and required text files (afterant do-build
)dist
contains a runnable JAR, script files and a copy of the libraries required to run the JAR (generated byant do-build-jar
)doc
contains both the assignment description and a report of the project and attached example filesdoc/javadoc
contains javadoc documentation of the project (generated byant do-javadoc
)doc/junit
contains a report of JUnit tests (generated byant do-junit
andant do-junit-report
)
lib
contains Java libraries required for the project, excluding those in the JDK 1.8src
src/pp/iloc
contains java code for a slightly modified ILOC virtual machinesrc/pp/s1184725/boppi
contains java code for the Boppi language
util
contains Pygments lexers for both ILOC and Boppi and scripts to run the Boppi command line interface (used for the JAR build).