Repository navigation
Parsing
A grammar describes the syntax of a programming language, and might be defined in Backus-Naur form (BNF). A lexer performs lexical analysis, turning text into tokens. A parser takes tokens and builds a data structure like an abstract syntax tree (AST). The parser is concerned with context: does the sequence of tokens fit the grammar? A compiler is a combined lexer and parser, built for a specific grammar.
ANTLR (ANother Tool for Language Recognition) is a powerful parser generator for reading, processing, executing, or translating structured text or binary files.
A single file C++ header-only PEG (Parsing Expression Grammars) library
Racc is an LALR(1) parser generator. It is written in Ruby itself, and generates ruby programs.
An IntelliJ plugin for ANTLR v4
Compile Time Parser Generator is a C++ single header library which takes a language description as a C++ code and turns it into a LR1 table parser with a deterministic finite automaton lexical analyzer, all in compile time.
竜 TatSu generates Python parsers from grammars in a variation of EBNF
The implementation of the Rascal meta-programming language (including interpreter, type checker, parser generator, compiler and JVM based run-time system)
a parser and lexer generator as a Rust procedural macro
a C# embeddable lexer and parser generator (.Net core)
The magical sticky regex-based parser generator 🧙