The Summit-AST library defines an abstract syntax tree (AST) data structure to represent Salesforce Apex source code, and it provides the translation of a parse tree into its AST representation.
This is not an official Google product.
This is built on top of the apex-parser Apex parser, which is a compiled ANTLR4 grammar.
All dependencies are downloaded and managed through the build system.
This software is built using bazel.
$ bazel build ...
$ bazel test ...
It is tested and working with the version listed in the .bazelversion
file.
If you use Bazelisk to use Bazel, it will download the correct version. Bazelisk can be installed (e.g. for amd64) via:
$ wget https://github.com/bazelbuild/bazelisk/releases/latest/download/bazelisk-linux-amd64
$ chmod a+x bazelisk-linux-amd64
$ ln -s bazelisk-linux-amd64 bazel
The primary output is an in-memory AST data structure. The library is intended to be integrated into other development tools.
There is a small SummitTool
demonstration executable, which parses Apex source
files, builds the AST, and prints basic information. It can be executed by
running:
$ bazel run :SummitTool -- [-json] [files | directories ...]
Any directories will be recursively walked. The tool attempts to compile any
files with the extension .cls
or .trigger
.
If the optional argument -json
is given, then the AST is serialized additionally
as json into a file. The file name will be the original Apex source file with
the extension .json
added.