Accessing the GIT Repository¶
We use the revision control system git to develop Joern. If you want to participate in development or test the development version, you can clone the git repository by issuing the following command:
git clone https://github.com/fabsx00/joern.git
Optionally, change to the branch of interest. For example, to test the development version, issue the following:
git checkout dev
If you want to report issues or suggest new features, please do so via https://github.com/fabsx00/joern . For fixes, please fork the repository and issue a pull request or alternatively send a diff to the developers by mail.
Modifying Grammar Definitions¶
When building Joern, pre-generated versions of the parsers will be used by default. This is fine in most cases, however, if you want to make changes to the grammar definition files, you will need to regenerate parsers using the antlr4 tool. For this purpose, it is highly recommended to use the optimized version of ANTLR4 to gain maximum performance.
To build the optimized version of ANTLR4, do the following:
git clone https://github.com/sharwell/antlr4/ cd antlr4 mvn -N install mvn -DskipTests=true -Dgpg.skip=true -Psonatype-oss-release -Djava6.home=$PATH_TO_JRE install
If the last step gives you an error, try building without
mvn -DskipTests=true -Dgpg.skip=true -Djava6.home=$PATH_TO_JRE install
Next, copy the antlr4 tool and runtime to the following locations:
cp tool/target/antlr4-$VERSION-complete.jar $JOERN/ cp runtime/Java/target/antlr4-runtime-$VERSION-SNAPSHOT.jar $JOERN/lib
where $JOERN is the directory containing the $JOERN installation.
Parsers can then be regenerated by executing the script