Skip to content

ASD APP B_compiler assignment for first semester 20/21

Notifications You must be signed in to change notification settings

NiekDorrepaal/icss2021

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Readme for ICSSTool

This file contains notes and issues for the ICSSTool. For assignment instructions, see ASSIGNMENT.md This tutorial is tested with Java version 13 (OpenJDK), IntelliJ and Maven. To enable instructors to assess your work you will need to keep your solution OpenJDK 13 compliant. Oracle or other distributions of the Java SDK/Runtime are not allowed.

Running ICSSTool

ICSSTool is a pom.xml based, Maven-runnable application. You can compile the application with the following command:

mvn compile

then run it with either

mvn exec:java or mvn javfx:run

Maven will automatically generate/update the parser from the supplied g4 file.

You can also run the application from an IDE, e.g. IntellIJ. To do so, import ICSSTool as Maven project. When you make changes to the .g4 file make sure you run mvn generate-sources prior to compiling. Most IDE's do not update the ANLTR parser automatically.

Since Java is modular, JavaFX is not bundled by default. Depending on your IDE you may need to download JavaFX and add it to your module path. See also: https://openjfx.io/openjfx-docs/

Known issues

  • Packaging works, but running the JAR standalone can be troublesome because of the JavaFX and ANLTR-runtime dependencies. You can uncomment the maven-shade-plugin in pom.xml to create a (huge) fat JAR. It removes module encapsulation which will trigger a warning.
  • ICSSTool comes with tests to verify the AST based on sample input files. These are not true unit tests; they are included to help you verify your use of the AST.

About

ASD APP B_compiler assignment for first semester 20/21

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 98.5%
  • ANTLR 1.4%
  • CSS 0.1%