Skip to content

joernio/astgen-monorepo

Repository files navigation

Joern AST Generators

A monorepo containing language-specific AST generation tools for the Joern code analysis platform. Each tool is self-contained with its own build system, tests, dependencies, and CI/CD workflows, and is independently versioned and released.

Available Tools

Language Directory Parser / Backend Status Latest Release
ABAP abap-astgen/ @abaplint/core Active Release
C# / .NET dotnet-astgen/ Roslyn Active Release
Go go-astgen/ Go standard library Active Release
JavaScript / TS javascript-astgen/ Babel + tsc Active Release
Ruby ruby-astgen/ parser gem Active Release
Rust rust-astgen/ rust-analyzer Active Release
Swift swift-astgen/ SwiftSyntax Active Release

Testing framework

astgen-regression/ is a config-driven regression testing framework shared by the tools above. It clones real-world codebases at specific versions, builds the generator from base and PR branches using git worktrees, compares outputs, and produces Markdown reports. See the framework README for setup and usage.

Repository Structure

Each language tool is self-contained with its own:

  • build system and dependencies
  • tests and documentation
  • CI/CD workflows
  • independent versioning and releases

Releases

Each tool uses prefixed tags of the form {lang}-astgen/v{version}, for example:

  • javascript-astgen/v3.43.0
  • rust-astgen/v0.3.0

See the Releases page for downloadable binaries.

Creating a release

Via git tag (recommended)

  1. Update the version in the language-specific files (e.g. package.json, Cargo.toml).
  2. Commit the version change.
  3. Create and push a prefixed tag:
    git tag javascript-astgen/v3.43.0
    git push origin javascript-astgen/v3.43.0
  4. The release workflow will automatically build and publish the binaries.

Manually via GitHub Actions

To re-release or rebuild an existing tag:

  1. Go to the Actions tab.
  2. Select the language-specific release workflow (e.g. "JavaScript AST Generator Release").
  3. Click Run workflow, select the branch (usually main), and confirm.

The workflow discovers the latest tag for that language and creates or updates the release with fresh binaries.

Contributing

Contributions are welcome. Please open an issue or pull request on GitHub. See each tool's README for language-specific build and test instructions.

License

Licensed under the Apache License, Version 2.0.

About

A monorepo containing language-specific AST generation tools for the Joern code analysis platform.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors