Interface definition in interface/interface/interface.yaml. Use https://editor.swagger.io for syntax highlighting and codegen.
The server implementation is divided into 5 projects. All projects are maven projects. The scope of each project is as follows:
Contains the interface definition. The interface definition (interface/interface/interface.yaml) is used to generate several java classes, which are then used to implement the server.
Contains the antlr4 grammar file (latexmath.g4). This is used to generate the parser.
Implementation of the term rewrite system used for symbolic checks. Also contains the numerical implementation and several utility classes. Has the grammar project as dependency.
Contains all the server specific implementation. Has the interface and term projects as dependency.
Takes the server from the base project and packages it with some xml descriptor files in a war container, which can be deployed in a tomcat server. The war file can be found in deploy-debug/target/MathParserDev.war after compilation.
The server can be run in a tomcat (download here) by downloading the .war file from releases and copying it into the /webapps/ subfolder of the tomcat root directory. The server can be started by running /bin/startup.[bat|sh]. It will run on port 8080 by default, this can be changed in /conf/server.xml. An installed JRE/JDK is required to run the server. Tomcat uses the JAVA_HOME environment variable, so make sure thats set to the correct location.
If you want to build the server, you need an installed maven and an installed JDK (JRE isn´t enough), for example OpenJdk 11 or AdoptOpenJDK 11. The projects use Java 11. Then just run mvn clean install
in the root directory of this project. After all submodules are built, the compiled .war can be found in deploy-debug/target/MathParserDev.war
.