About this project

ANTLR (ANother Tool for Language Recognition) is a parser generator used to read, process, execute, or translate structured text or binary files. From a grammar, it generates a parser that can build parse trees and also generates a listener or visitor interface for responding to recognized phrases. The project states it is widely used to build languages, tools, and frameworks. Target languages: ANTLR 4 supports 10 targets — Cpp, CSharp, Dart, Java, JavaScript, PHP, Python3, Swift, TypeScript, and Go. Each release ships the tool and all runtimes at the same version to keep behavior consistent across targets. Python 2 support is dropped as of version 4.14. The Go target has a dedicated repository for `go get` and `import`, while Go runtime development still happens in the main repo. Versioning: The README notes that versioning does not strictly follow semver. Major versions are bumped only for full rewrites (ANTLR3 to ANTLR4, LL(*) to ALL(*) parsing). Minor updates may include minor breaking changes, and the stated policy is to regenerate parsers with every release. Backwards compatibility is only guaranteed for patch version bumps. Users with semver verifiers in CI are advised to apply special rules. Repository structure: The default `master` branch holds the latest stable release with release tags; the `dev` branch is where development occurs and where pull requests should be derived from. The `dev` branch is merged back into `master` to cut a tagged release. Documentation and resources referenced include release notes, a getting-started guide, the official site, documentation index, FAQ, a targets page, the Java API, ANTLR v3, and a v3-to-v4 migration FAQ. There are also pages on building ANTLR itself and on creating and deploying releases. The README mentions the book "The Definitive ANTLR 4 Reference" and its source code, and points to the separate grammars-v4 repository, a collection of grammars named by the lowercase language they parse (for example java, cpp, csharp, c). Contributors listed include Terence Parr (project lead), Sam Harwell, Eric Vergnaud, Peter Boyer, Mike Lischke, Dan McLaughlin, David Sisson, Janyou, Ewan Mellor, Hanzhou Shi, Ben Hamilton, Marcos Passos, Lingyu Li, Ivan Kochurkin, Justin King, Ken Domino, and Jim Idle, with notes on their areas of contribution such as specific targets, Unicode support, error handling, and performance.