This Java program is a compiler for miniJava, a subset of Java. The compiler performs syntactic analysis, abstract syntax tree construction, identification checking, type checking, and code generation for any given miniJava source code.
A showcase of the compiler execution can be found here: https://minijava-compiler.herokuapp.com/
You may take a look at the miniJava grammar provided on the webpage to have a perspective of what programs are valid/invalid for miniJava.
The miniJava compiler program was imported from a private repository and then modified to showcase it's process in a webpage.