boppi/README.md

2.1 KiB

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

<arg value="-o" /> <arg value="${g4.iloc}" /> 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 (after ant do-build)
  • dist contains a runnable JAR, script files and a copy of the libraries required to run the JAR (generated by ant do-build-jar)
  • doc contains both the assignment description and a report of the project and attached example files
    • doc/javadoc contains javadoc documentation of the project (generated by ant do-javadoc)
    • doc/junit contains a report of JUnit tests (generated by ant do-junit and ant do-junit-report)
  • lib contains Java libraries required for the project, excluding those in the JDK 1.8
  • src
    • src/pp/iloc contains java code for a slightly modified ILOC virtual machine
    • src/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).