awesome-repositories.com
Blog
MCP
awesome-repositories.com

Entdecke die besten Open-Source-Repositories mit KI-gestützter Suche.

EntdeckenKuratierte SuchenOpen-Source-AlternativenSelf-hosted SoftwareBlogSitemap
ProjektMCP-ServerÜber unsRanking-MethodikPresse
RechtlichesDatenschutzAGB
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·

19 Repos

Awesome GitHub RepositoriesFormal Grammar Parser Generators

Tools that generate parsers based on formal grammar specifications to extract structured data from text.

Distinct from Grammar-Based Parsers: Unlike Grammar-Based Parsers [f6_mt2] which are the resulting parsers, this refers to the generator tool itself.

Explore 19 awesome GitHub repositories matching software engineering & architecture · Formal Grammar Parser Generators. Refine with filters or upvote what's useful.

Awesome Formal Grammar Parser Generators GitHub Repositories

Finde die besten Repos mit KI.Wir suchen mit KI nach den am besten passenden Repositories.
  • antlr/antlr4Avatar von antlr

    antlr/antlr4

    18,928Auf GitHub ansehen↗

    ANTLR ist ein grammatikbasierter Codegenerator und Parser-Generator für mehrere Sprachen, der zum Entwerfen und Implementieren benutzerdefinierter Sprachen verwendet wird. Er fungiert als Toolkit zur Transformation formaler Sprachdefinitionen in ausführbaren Quellcode für die Verarbeitung strukturierter Text- oder Binärdateien, während er gleichzeitig ein Framework für die automatische Konstruktion und Durchquerung hierarchischer Parse-Bäume bereitstellt. Das Projekt zeichnet sich durch seine Fähigkeit aus, Lexer und Parser in verschiedenen Zielprogrammiersprachen aus einer einzigen gemeinsamen Grammatikdefinition zu generieren. Es unterstützt Grammatiken, die direkte Linksrekursion enthalten, und nutzt adaptive Vorhersagen, um die Parsing-Geschwindigkeit zu optimieren und gleichzeitig die Flexibilität zu wahren. Das System deckt ein breites Spektrum an Fähigkeiten ab, einschließlich lexikalischer Analyse, semantischer Prüfung durch Prädikatsauswertung und hierarchischem Datenmanagement. Es bietet Tools für die Analyse von Parse-Bäumen durch pfadbasierte Abfragen und Visitor-Listener-Durchquerungsmuster, um die Grammatiklogik von Anwendungsaktionen zu entkoppeln. Befehlszeilen-Dienstprogramme sind für das Testen von Grammatikdefinitionen und das Debuggen von Logik verfügbar, und das Tool kann in Docker-Containern ausgeführt werden, um lokale Installationen zu vermeiden.

    Generates lexer and parser source code for multiple target programming languages from a single grammar definition.

    Java
    Auf GitHub ansehen↗18,928
  • github/semanticAvatar von github

    github/semantic

    9,041Auf GitHub ansehen↗

    Semantic ist eine auf Haskell basierende Bibliothek und ein Kommandozeilen-Tool für die polyglotte Quellcode-Analyse. Es fungiert als Framework für statische Programmanalyse und als polyglotter Parser für abstrakte Syntaxbäume, der verschiedene Programmiersprachen in strukturierte Syntaxbäume auf Basis von Grammatikdefinitionen umwandelt. Das System zeichnet sich durch eine semantische Code-Vergleichs-Engine aus, die strukturelle und inhaltliche Änderungen zwischen Code-Versionen erkennt, anstatt sich auf rein textuelle Unterschiede zu verlassen. Es ermöglicht zudem die Analyse über verschiedene Programmiersyntaxen hinweg, indem es Oberflächensprachen in eine einheitliche, polyglotte Zwischenrepräsentation übersetzt. Das Framework bietet eine breite Palette an Funktionen für das Parsen von Sprachen wie Rust, Go, Python, Ruby, PHP, TypeScript und TSX. Es deckt die semantische Analyse durch Code-Scope-Mapping, Extraktion von Symbolen und die Generierung semantischer Graphen ab, ergänzt durch Werkzeuge zur Musteranalyse und Bewertung des Programmverhaltens. Das Toolset enthält Kommandozeilen-Dienstprogramme zur Standardisierung von Haskell-Quellcodedateien.

    Produces strongly typed abstract syntax trees by applying formal language grammar definitions to raw source text.

    Haskell
    Auf GitHub ansehen↗9,041
  • ocaml/ocamlAvatar von ocaml

    ocaml/ocaml

    6,514Auf GitHub ansehen↗

    OCaml is a strongly typed functional language featuring a sophisticated type system and a focus on safety and expressiveness. It provides a comprehensive compiling toolchain that transforms source code into either portable bytecode or high-performance native binaries. The project is distinguished by a shared memory parallel runtime that executes computations across multiple processor cores using domains, and an algebraic effect system for managing side effects and control flow through execution context handlers. It also includes a dedicated parser generator to automatically create lexers and

    Includes a dedicated parser generator to automatically create lexers and parsers from formal grammar specifications.

    OCamlcompilerfunctional-languageocaml
    Auf GitHub ansehen↗6,514
  • lark-parser/larkAvatar von lark-parser

    lark-parser/lark

    5,914Auf GitHub ansehen↗

    Lark ist ein Python-Parsing-Toolkit, das zum Definieren von Grammatiken und zum Konvertieren von Rohtext in annotierte Parse-Trees verwendet wird. Es dient als Abstract-Syntax-Tree-Generator und als Grammatik-Definitionssprache zur Spezifizierung von Sprachregeln durch Terminals und reguläre Ausdrücke. Die Bibliothek bietet zwei primäre Parsing-Implementierungen: eine Earley-Parsing-Bibliothek, die alle kontextfreien Sprachen verarbeiten kann (einschließlich solcher mit Mehrdeutigkeit und Linksrekursion), und eine performante LALR-Parsing-Bibliothek für deterministische Sprachen mit geringem Speicherbedarf. Über das reine Parsing hinaus enthält das Toolkit Funktionen für die modulare Grammatikkomposition, regelbasierte Baumtransformation und Koordinatenverfolgung für Quellpositionen. Es unterstützt zudem die Serialisierung von LALR-Grammatiken in eigenständige Parser-Module.

    Automatically generates hierarchical abstract syntax trees by matching input tokens against defined grammar rules.

    Pythoncykearleygrammar
    Auf GitHub ansehen↗5,914
  • harc/ohmAvatar von harc

    harc/ohm

    5,530Auf GitHub ansehen↗

    Ohm ist ein Toolkit für den Compilerbau und eine Parser-Kombinator-Bibliothek zum Erstellen von Parsern, Interpretern und Compilern. Es bietet eine formale Grammatiksprache zur Spezifikation der strukturellen Regeln von Datenformaten, um ein präzises Parsen von Eingabe-Strings zu gewährleisten. Das Projekt fungiert als Debugging-Tool für das Parsen und als Visualisierungstool für die Programmausführung. Es generiert Text-Traces und grafische Visualisierungen, um die schrittweise Logik während des Parsens aufzuzeigen, und rendert Laufzeitzustandsänderungen sowie Hierarchien von Methodenaufrufen. Das Toolkit deckt die Entwicklung benutzerdefinierter Parser sowie die Konstruktion von Compilern und Interpretern ab. Es umfasst Funktionen für die Visualisierung von Programmiersprachen, das Debugging von Algorithmus-Ausführungen und die Definition formaler Grammatiken.

    Enables the definition of formal grammars to create structured representations of text input.

    JavaScript
    Auf GitHub ansehen↗5,530
  • chai2010/go-ast-bookAvatar von chai2010

    chai2010/go-ast-book

    5,510Auf GitHub ansehen↗

    go-ast-book ist eine Sammlung technischer Bildungsressourcen zur Analyse abstrakter Syntaxbäume (AST), Compiler-Entwicklung und statischer Code-Verifizierung. Es bietet Anleitungen und Handbücher zum Parsen, Traversieren und Analysieren von Go-Quellcode, um semantische Informationen zu extrahieren. Das Projekt dient als Referenz für den Bau von Compiler-Frontends und deckt die Übersetzung von High-Level-Code in Zwischenrepräsentationen und Single Static Assignment (SSA) Formen ab. Es bietet zudem Anleitungen zur Nutzung dieser Techniken für die Entwicklung von Sprach-Tooling und statischer Code-Analyse. Die Ressourcen decken ein breites Spektrum an statischen Analysefähigkeiten ab, einschließlich lexikalischer Tokenisierung, strukturellem Parsen von Ausdrücken und Deklarationen sowie Koordinaten-Tracking für Quelldateien. Zudem werden semantische Analyseprozesse wie Identifier-Auflösung, Typprüfung und Kontrollflussanalyse für Nebenläufigkeit und Deferred Execution detailliert beschrieben.

    Translates Go language constructs such as selector expressions and slice operations into AST structures.

    Go
    Auf GitHub ansehen↗5,510
  • ohmjs/ohmAvatar von ohmjs

    ohmjs/ohm

    5,471Auf GitHub ansehen↗

    Ohm is a formal grammar parser generator and domain-specific language framework. It provides a system for defining custom languages to parse, validate, and extract data from input text, transforming raw strings into hierarchical abstract syntax trees based on specified formal rules. The project utilizes an Earley parsing algorithm, which allows it to support all context-free grammars, including those with left recursion and ambiguity, without requiring predefined operator precedence. It also includes a dedicated debugging toolkit for tracing and visualizing the step-by-step state transitions

    Provides a tool for defining custom languages using formal grammars to parse, validate, and extract data.

    JavaScriptcompilergrammarsjavascript
    Auf GitHub ansehen↗5,471
  • pest-parser/pestAvatar von pest-parser

    pest-parser/pest

    5,355Auf GitHub ansehen↗

    Pest ist eine Rust-Parsing-Bibliothek und ein automatischer Parser-Generator, der formale Grammatikdefinitionen in funktionale Parser umwandelt. Er ist auf Parsing Expression Grammars (PEG) spezialisiert, um komplexe Textmuster zu erkennen und zu strukturieren, und bietet ein System für kontextfreies Grammatik-Parsing. Die Bibliothek implementiert Zero-Copy-Tokenisierung und statische Grammatik-Kompilierung, um den Laufzeit-Overhead zu reduzieren. Sie unterstützt no-std-Laufzeitkompatibilität, wodurch der Parser für eingebettete oder Bare-Metal-Umgebungen kompiliert werden kann, in denen keine Standardbibliothek verfügbar ist. Das Projekt deckt eine Reihe von Parsing-Funktionen ab, einschließlich der Extraktion verschachtelter Token-Paare und automatisierter Syntax-Validierung. Es wird für die Implementierung domänenspezifischer Sprachen (DSLs), benutzerdefinierter Sprach-Parser und die Auswertung mathematischer Ausdrücke verwendet. Zudem bietet es automatisierte Fehlerberichte zur Identifizierung unerwarteter Token oder fehlender Eingaben.

    Automatically generates a functional parser implementation and error reporting from a defined formal grammar.

    Rust
    Auf GitHub ansehen↗5,355
  • racket/racketAvatar von racket

    racket/racket

    5,157Auf GitHub ansehen↗

    Racket ist eine Mehrzweck-Programmiersprache mit mehreren Paradigmen aus der Lisp-Familie, die für die Sprachschöpfung entwickelt wurde. Sie fungiert als Sprach-Workbench und bietet eine Plattform zum Entwerfen und Implementieren benutzerdefinierter Programmiersprachen durch ein flexibles System aus Makros und Modulen. Das System zeichnet sich durch eine umfassende Suite für Semantik-Engineering aus, die den Aufbau spezialisierter Sprach-Subsets und Bildungsschichten ermöglicht. Es enthält Tools für das Design benutzerdefinierter Sprachen, wie Lexer- und Parser-Generierung, sowie die Fähigkeit, Modul-Erweiterungsregeln und dynamische Sprachauswahl zur Lesezeit zu definieren. Das Projekt bietet eine integrierte Entwicklungsumgebung mit eingebautem Editor, visuellem Debugger und einem Software-Paketmanager. Die Funktionspalette erstreckt sich auf eine Standardbibliothek für allgemeine Zwecke, die 2D-Grafik-Rendering, Binärdatenverarbeitung, SQL- und deduktive Datenbankintegration sowie den Bau grafischer Benutzeroberflächen abdeckt. Die Umgebung unterstützt das Kompilieren von Quellcode in eigenständige ausführbare Dateien für die Distribution.

    Produces lexers and parsers from formal grammar specifications to convert token streams into structured representations.

    Racketracket
    Auf GitHub ansehen↗5,157
  • pegjs/pegjsAvatar von pegjs

    pegjs/pegjs

    4,908Auf GitHub ansehen↗

    PegJS ist ein Parsing-Expression-Grammar-Tool und ein JavaScript-Parser-Generator. Es fungiert als Grammatik-Compiler, der formale Grammatikspezifikationen in ausführbaren JavaScript-Code zur Analyse strukturierter Texte und zur Verarbeitung komplexer Eingabezeichenfolgen umwandelt. Das System generiert deterministische Parser, die die Mehrdeutigkeit kontextfreier Grammatiken vermeiden. Es nutzt ein Packrat-Parsing-Modell mit Memoization, um lineare Zeitkomplexität sicherzustellen, und verwendet rekursives Abstieg-Parsing, um Eingaben in einer Top-Down-hierarchischen Weise zu verarbeiten. Das Toolset unterstützt die Implementierung domänenspezifischer Sprachen und die Entwicklung benutzerdefinierter Sprachen. Es enthält Fähigkeiten für rekursive Grammatikregeldefinitionen, Inline-semantische Aktionen zur Transformation von gematchtem Text in strukturierte Daten und semantische Prädikate für bedingtes Matching. Die Generierungs-Engine enthält Konfigurationsoptionen, um die Ausführungsgeschwindigkeit des resultierenden Parsers gegen die finale Ausgabecodegröße abzuwägen.

    Functions as a tool that generates executable JavaScript parsers from formal grammar specifications.

    JavaScript
    Auf GitHub ansehen↗4,908
  • google/wuffsAvatar von google

    google/wuffs

    4,773Auf GitHub ansehen↗

    Wuffs is a toolset for generating memory-safe, sandboxed parsers and decoders from domain-specific language specifications. It functions as a compiler that transforms these specifications into executable code for C, Go, or Rust, specifically designed to decode untrusted file formats while preventing buffer and integer overflows. The project employs a sandboxed execution model that prohibits system calls and manual memory management to ensure computations are side-effect free. It utilizes a refined type system and compile-time constraint verification to enforce memory safety, alongside saturat

    A feature that translates a domain-specific language into executable code for other target environments such as Go or Rust.

    Ccodecmemory-safetyparsing
    Auf GitHub ansehen↗4,773
  • zesterer/chumskyAvatar von zesterer

    zesterer/chumsky

    4,545Auf GitHub ansehen↗

    Chumsky ist eine Parser-Kombinator-Bibliothek, die verwendet wird, um Hochleistungs-Parser durch die Komposition kleiner Parsing-Funktionen zu komplexen Grammatiken aufzubauen. Sie bietet mehrere Parsing-Engines, einschließlich rekursiver Abstieg- und Precedence-Climbing-Implementierungen zur Auflösung der Reihenfolge von Operationen in mathematischen und logischen Ausdrücken. Die Bibliothek zeichnet sich durch ihr Zero-Copy-Text-Parsing aus, das Speicherallokationen minimiert, um den Durchsatz zu erhöhen, sowie durch ihre Fähigkeit, ohne Standardbibliothek für den Einsatz in eingebetteten oder ressourcenbeschränkten Umgebungen zu laufen. Sie verfügt zudem über einen fehlerkorrigierenden Parser, der fehlerhafte Eingaben identifiziert und die Verarbeitung fortsetzt, um mehrere Syntaxfehler in einem einzigen Durchgang zu melden. Das Framework deckt ein breites Spektrum an Funktionen ab, einschließlich kontextsensitivem Zustandsmanagement, Unterstützung für rekursive Grammatiken und die Integration von Mustern regulärer Ausdrücke. Es enthält Tools für die Parser-Strukturanalyse, Knoteninspektion und Result-Caching zur Unterstützung von Backtracking und Linksrekursion. Die Bibliothek unterstützt die Entwicklung benutzerdefinierter Sprachen, das Parsen von Datenformaten und Programmiersprachen-Tooling.

    Supports the development of custom parsers by defining formal grammars to derive structured representations of text.

    Rustcontext-free-grammarerrorslexing
    Auf GitHub ansehen↗4,545
  • zaach/jisonAvatar von zaach

    zaach/jison

    4,385Auf GitHub ansehen↗

    Jison is a JavaScript parser generator that implements the LALR parsing algorithm. It creates tools to analyze custom programming languages by converting structured input into tokens and trees. The project functions as a Bison-compatible generator, accepting grammars in a format compatible with the Bison parser generator to produce JavaScript parsers. It covers the requirements for compiler frontend development, including the implementation of domain-specific languages and syntax analysis tooling. Its capabilities extend to custom language parsing and the generation of parsers via a command

    Provides a tool that transforms formal grammar specifications into a functional JavaScript parser.

    JavaScript
    Auf GitHub ansehen↗4,385
  • kach/nearleyAvatar von kach

    kach/nearley

    3,740Auf GitHub ansehen↗

    Nearley is a JavaScript parser toolkit and context-free grammar compiler. It functions as an Earley parser generator that transforms BNF-like grammar definitions into executable code capable of analyzing text and generating abstract syntax trees. The project is distinguished by its ability to handle any context-free grammar, including those with left recursion and ambiguity, by maintaining multiple valid derivations for a single input. It further supports incremental parsing, allowing input strings to be processed in chunks to provide partial results and real-time feedback. Beyond core parsi

    Transforms modular BNF-like language descriptions into functional parsers that handle recursive grammars.

    JavaScript
    Auf GitHub ansehen↗3,740
  • hardmath123/nearleyAvatar von Hardmath123

    Hardmath123/nearley

    3,740Auf GitHub ansehen↗

    Nearley is a JavaScript parser toolkit used to define context-free grammars and generate corresponding parsers. It features an EBNF grammar compiler that transforms language definitions written in extended Backus-Naur Form into executable JavaScript code, utilizing an Earley parser implementation to process any context-free grammar. The toolkit distinguishes itself by its ability to handle left-recursion and ambiguity without failing, allowing it to identify and return multiple valid derivations for a single input string. It also includes a grammar fuzzing generator to produce random strings

    Compiles grammar definitions into typed languages to provide annotations and flexibility for post-processors.

    JavaScript
    Auf GitHub ansehen↗3,740
  • eliben/pycparserAvatar von eliben

    eliben/pycparser

    3,473Auf GitHub ansehen↗

    pycparser is a C99 parser library that converts C source code into an abstract syntax tree consisting of Python objects. It functions as an abstract syntax tree generator, transforming preprocessed C code into a structured hierarchy for programmatic analysis and transformation. The library integrates with a C preprocessor to handle directives before parsing. It also features a stub header parser, which uses minimal mock headers to allow the parsing of C code without requiring a full system C library installation. The project provides tools for static code analysis, C program analysis, and so

    Implements a C99 parsing engine generated from a formal grammar using the Python Lex-Yacc (PLY) framework.

    Python
    Auf GitHub ansehen↗3,473
  • hyperjumptech/grule-rule-engineAvatar von hyperjumptech

    hyperjumptech/grule-rule-engine

    2,505Auf GitHub ansehen↗

    Grule is a business rule engine for Go that decouples complex decision-making logic from core application code. It provides a framework for defining, versioning, and executing business rules through a domain-specific language, allowing logic to be managed independently of the underlying software implementation. The engine distinguishes itself by utilizing a formal grammar-based parser and a Rete-inspired pattern matching algorithm to evaluate logic against data facts efficiently. It supports dynamic system modeling by enabling runtime updates to policies and providing thread-safe knowledge ba

    Generates parsers from formal grammar definitions to translate rule syntax into executable logic.

    Gogolanghacktoberfesthacktoberfest2021
    Auf GitHub ansehen↗2,505
  • tabatkins/railroad-diagramsAvatar von tabatkins

    tabatkins/railroad-diagrams

    1,744Auf GitHub ansehen↗

    Railroad-diagrams ist ein Utility zur Generierung visueller Repräsentationen formaler Grammatiken und Sprachstrukturen. Es fungiert als Bibliothek, die dichte Notationssysteme, wie Backus-Naur-Form oder reguläre Ausdrücke, in lesbare Flussdiagramme umwandelt. Das Tool nutzt eine koordinatenbasierte Layout-Engine und rekursive Komponentenkomposition, um Diagramme als hierarchische Bäume zu konstruieren. Durch die Trennung der geometrischen Berechnungslogik von der Ausgabeschicht unterstützt es das Rendering durch Scalable Vector Graphics (SVG) oder Unicode-Text, wodurch sichergestellt wird, dass Diagramme über verschiedene Umgebungen hinweg klar und skalierbar bleiben. Benutzer können visuelle Parameter wie Zeilenabstand, Krümmung und Elementausrichtung anpassen, um spezifische Dokumentationsanforderungen zu erfüllen. Die generierten Diagramme können als eigenständige Bilddateien oder Roh-Markup für die Integration in technische Handbücher und webbasierte Spezifikationen exportiert werden.

    Provides a utility for replacing dense BNF notation or regular expressions with clear, readable flowcharts.

    Python
    Auf GitHub ansehen↗1,744
  • blazegraph/databaseAvatar von blazegraph

    blazegraph/database

    985Auf GitHub ansehen↗

    This project is a high-performance semantic graph database engine designed for storing and querying massive RDF datasets. It functions as a specialized platform for managing linked data and complex relationship models, utilizing standard semantic web protocols to integrate and analyze distributed information sources. The system distinguishes itself through its use of B-Tree indexing to enable rapid traversal of relationships within large-scale datasets and its support for the Triple Pattern Fragments protocol to facilitate scalable web-based access. It provides automated tools for transformin

    Transforms formal grammar definitions into executable source code to enable the parsing and processing of semantic queries.

    Javablazegraphgraph-databaserdf
    Auf GitHub ansehen↗985
  1. Home
  2. Software Engineering & Architecture
  3. Trees
  4. Syntax Tree Construction
  5. Formal Grammar Parser Generators

Unter-Tags erkunden

  • AST GeneratorsTools that generate strongly typed abstract syntax trees based on formal grammar specifications. **Distinct from Formal Grammar Parser Generators:** Focuses on the resulting AST structure for analysis rather than general parser generation logic.
  • Bison-Compatible GeneratorsParser generators that accept grammars in the Bison format. **Distinct from Formal Grammar Parser Generators:** Specifically targets compatibility with the Bison grammar format, unlike general formal grammar generators.
  • Compiler Front-End GenerationUsing parser generators to build the initial stages of compilers, including lexing and parsing. **Distinct from Formal Grammar Parser Generators:** Distinct from Formal Grammar Parser Generators: focuses on the application of the generator to create compiler front-ends.
  • Custom Parser DevelopmentDefining formal grammars to match input strings and derive structured representations of text. **Distinct from Formal Grammar Parser Generators:** Focuses on the process of developing the parser logic using the generator, rather than just the generator tool itself.
  • LALR ParsersParsers generated from grammars using look-ahead left-to-right shift-reduce algorithms. **Distinct from Formal Grammar Parser Generators:** Specifically refers to the resulting LALR parser implementation generated by PLY, rather than the generator tool itself
  • Multi-Language Parser GenerationThe capability of a generator to target multiple different programming languages for parser output. **Distinct from Formal Grammar Parser Generators:** Distinct from Formal Grammar Parser Generators: emphasizes the multi-target output capability.
  • Multi-Target Code GenerationGenerating parser source code for multiple target programming languages from a single grammar. **Distinct from Formal Grammar Parser Generators:** Distinct from Formal Grammar Parser Generators: specifically targets the ability to produce code for multiple target languages.
  • Typed Code GenerationGeneration of type-annotated parser code from formal grammar specifications. **Distinct from Formal Grammar Parser Generators:** Distinct from general Formal Grammar Parser Generators by focusing on the type-safety of the generated output code.