{"id":26821062,"url":"https://github.com/antlr-ng/antlr-ng","last_synced_at":"2025-03-30T07:02:37.671Z","repository":{"id":40503251,"uuid":"502610982","full_name":"antlr-ng/antlr-ng","owner":"antlr-ng","description":"The next generation of ANTLR, a powerful parser generator for reading, processing, executing, or translating structured text or binary files.","archived":false,"fork":false,"pushed_at":"2025-03-28T16:01:21.000Z","size":5339,"stargazers_count":50,"open_issues_count":13,"forks_count":3,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-03-28T16:37:41.393Z","etag":null,"topics":["antlr","antlr-ng","antlr4","open-source","parser-generator","parsing","typescript"],"latest_commit_sha":null,"homepage":"https://www.antlr-ng.org","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/antlr-ng.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-06-12T12:33:32.000Z","updated_at":"2025-03-28T14:33:14.000Z","dependencies_parsed_at":"2023-10-11T10:17:46.489Z","dependency_job_id":"9e7e97dd-198d-4755-bdfd-2f181b1fa0b9","html_url":"https://github.com/antlr-ng/antlr-ng","commit_stats":null,"previous_names":["mike-lischke/antlrng","mike-lischke/antlr-ng","antlr-ng/antlr-ng"],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antlr-ng%2Fantlr-ng","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antlr-ng%2Fantlr-ng/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antlr-ng%2Fantlr-ng/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antlr-ng%2Fantlr-ng/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/antlr-ng","download_url":"https://codeload.github.com/antlr-ng/antlr-ng/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246285753,"owners_count":20752955,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["antlr","antlr-ng","antlr4","open-source","parser-generator","parsing","typescript"],"created_at":"2025-03-30T07:01:49.044Z","updated_at":"2025-03-30T07:02:37.665Z","avatar_url":"https://github.com/antlr-ng.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"[![status](https://img.shields.io/github/checks-status/mike-lischke/antlr-ng/main?style=for-the-badge\u0026color=green\u0026logo=github)](https://github.com/mike-lischke/antlr-ng/actions/workflows/nodejs.yml)\n![License](https://img.shields.io/github/license/mike-lischke/antlr-ng?style=for-the-badge\u0026color=lightgreen)\n[![Weekly Downloads](https://img.shields.io/npm/dw/antlr-ng?style=for-the-badge\u0026color=blue)](https://www.npmjs.com/package/antlr-ng)\n[![npm version](https://img.shields.io/npm/v/antlr-ng?style=for-the-badge\u0026color=yellow)](https://www.npmjs.com/package/antlr-ng)\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/mike-lischke/website-antlr-ng/main/src/assets/images/antlr-ng-logo3.svg\" title=\"ANTLR Next Generation\" alt=\"antlr-ng the parser generator\" height=\"200\"/\u003e\u003cbr/\u003e\n\u003clabel style=\"font-size: 90%\"\u003ePart of the Next Generation ANTLR Project\u003c/label\u003e\n\u003c/p\u003e\n\u003chr /\u003e\n\n# antlr-ng - Next Generation ANTLR\n\n**Another Tool for Language Recognition**\n\nA tool/package that takes a defined language (provided in a grammar file) and generates  parser and lexer classes in one of the supported target languages. These classes can be used in your project to parse input that should match the language written in that grammar file. Supported target languages are:\n\n- TypeScript\n- Java\n- C++ (language identifier: Cpp)\n- C# (language identifier: CSharp)\n- Go\n- Python3\n- Dart\n- Swift\n- JavaScript\n- PHP\n\nThis project started as a TypeScript port of the old ANTLR4 tool 4.13.2 (originally written in Java) and includes the entire feature set of the the Java version and is constantly enhanced.\n\n## Status\n\nThe tool is production-ready and generates almost exactly the same output like the old ANTLR4 jar (with some minor differences, because of the use of Unicode 16, instead of 11 in ANTLR4). All (relevant) original unit tests have been ported and run successfully. Additionally, the tool was tested with all grammars in the [grammars-v4](https://github.com/antlr/grammars-v4) repository.\n\nSee also the [Version 2 feature planning](https://github.com/mike-lischke/antlr-ng/issues/11) for what's coming up.\n\nThe tool currently runs only in a Node.js environment, but it is planned to make it run in browsers later.\n\n## Getting Started\n\nThere are different ways how to use the antlr-ng tool. All scenarios need Node.js being installed on your box. The [antlr-ng website](https://www.antlr-ng.org) explains everything you need to run the antlr-ng tool (see Documentation -\u003e Getting Started).\n\n## Release Notes\n\nSee [release-notes.md](./release-notes.md).\n\n# What is the ANTLR Next Generation Project?\n\n## History\n\nANTLR (ANother Tool for Language Recognition) emerged from the Purdue Compiler Construction Tool Set [PCCTS](https://www.antlr2.org/history.html), originating in 1988 when Terence Parr, working under Professor Hank Dietz at Purdue University, began developing a parser generator. Initially called YUCC and released in February 1990, the tool evolved through critical milestones: version 1.00 introduced LL(1) parsing in 1992, version 2.2.0 added grammar inheritance, and subsequent versions expanded language support and parsing capabilities.\n\nKey contributors like Sam Harwell, who co-authored ANTLR 4, and Eric Vergnaud, who developed Python and JavaScript targets, helped transform ANTLR into a robust parser generator (see [Q\u0026A with T. Parr on ANTLR](https://dzone.com/articles/qa-with-terence-parr-on-antlr)). Under Parr's continued leadership, ANTLR has become a widely-used tool for language recognition, supporting multiple programming languages and platforms. The project reached significant maturity with ANTLR 4's Adaptive LL(*) parsing algorithm, representing a sophisticated approach to parsing complex languages.\n\n## Future\n\nANTLR4, the latest major release of the tool, has reached a high level of maturity and development has essentially stopped. At the time of writing, there are over 800 issue reports and nearly 150 pull requests. Most of the reported issues or PRs have nothing to do with the tool itself, but were created for problems in one of the target runtimes included in the ANTLR4 repository. This shows how important it is to make a cut and separate the ANTLR tool from it's runtimes. This is one of the main goals of the **ANTLR Next Generation Project**.\n\nThis project is conceived as a biotope of various parts, rooted in a new ANTLR tool (in this repository) and accompanied by various things made specifically for it (such as IDE plugins, debuggers, command line tools, documents and blogs), as well as individual target runtimes that are no longer part of the ANTLR repository. These are maintained by their owners, who know the language the target is for by heart and are responsible for release and maintenance.\n\nBy simplifying the code base, such as removing very old parts of the code, tidying everything up and laying the groundwork for new development, it is hoped that antlr-ng will grow and open doors for future improvements and all those great ideas that the community brought to ANTLR4 but never had a chance to get in.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantlr-ng%2Fantlr-ng","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fantlr-ng%2Fantlr-ng","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantlr-ng%2Fantlr-ng/lists"}