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

Descoperă cele mai bune repository-uri open source cu căutare AI.

ExploreazăCăutări recomandateAlternative open-sourceSoftware self-hostedBlogHartă site
ProiectServer MCPDespreCum realizăm clasamentulPresă
LegalConfidențialitateTermeni
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·

19 repository-uri

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

Găsește cele mai bune repo-uri cu AI.Vom căuta cele mai potrivite repository-uri folosind AI.
  • antlr/antlr4Avatar antlr

    antlr/antlr4

    18,928Vezi pe GitHub↗

    ANTLR este un generator de cod bazat pe gramatică și un generator de parser pentru mai multe limbaje, utilizat pentru a proiecta și implementa limbaje personalizate. Funcționează ca un set de instrumente pentru transformarea definițiilor formale de limbaj în cod sursă executabil pentru procesarea textului structurat sau a fișierelor binare, oferind în același timp un framework pentru construirea și parcurgerea automată a arborilor de parsare ierarhici. Proiectul se distinge prin capacitatea sa de a genera lexere și parsere în diverse limbaje de programare țintă dintr-o singură definiție de gramatică partajată. Suportă gramatici care conțin recursivitate la stânga directă și utilizează predicția adaptivă pentru a optimiza viteza de parsare, menținând în același timp flexibilitatea. Sistemul acoperă o gamă largă de capabilități, inclusiv analiza lexicală, verificarea semantică prin evaluarea predicatelor și gestionarea ierarhică a datelor. Oferă instrumente pentru analiza arborilor de parsare prin interogări bazate pe cale și tipare de parcurgere de tip visitor-listener pentru a decupla logica gramaticii de acțiunile aplicației. Utilitarele de linie de comandă sunt disponibile pentru testarea definițiilor de gramatică și depanarea logicii, iar instrumentul poate fi executat în containere Docker pentru a evita instalările locale.

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

    Java
    Vezi pe GitHub↗18,928
  • github/semanticAvatar github

    github/semantic

    9,041Vezi pe GitHub↗

    Semantic este o bibliotecă bazată pe Haskell și un instrument CLI conceput pentru analiza poliglotă a codului sursă. Funcționează ca un framework de analiză statică a programelor și ca un parser poliglot de arbori de sintaxă abstractă (AST), care convertește codul din mai multe limbaje de programare în arbori de sintaxă structurați, pe baza definițiilor gramaticale. Sistemul se distinge printr-un motor de comparare semantică a codului care detectează modificările structurale și de logică între versiuni, în loc să se bazeze pe diferențe textuale. De asemenea, permite analiza între sintaxe diferite prin traducerea limbajelor de nivel înalt într-o reprezentare intermediară poliglotă unificată. Framework-ul oferă o suită largă de capabilități pentru parsarea limbajelor precum Rust, Go, Python, Ruby, PHP, TypeScript și TSX. Acoperă analiza semantică prin maparea scopului codului, extragerea simbolurilor și generarea de grafuri semantice, alături de instrumente pentru analiza modelelor și evaluarea comportamentului programelor. Setul de instrumente include utilitare CLI pentru standardizarea layout-ului fișierelor sursă Haskell.

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

    Haskell
    Vezi pe GitHub↗9,041
  • ocaml/ocamlAvatar ocaml

    ocaml/ocaml

    6,514Vezi pe GitHub↗

    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
    Vezi pe GitHub↗6,514
  • lark-parser/larkAvatar lark-parser

    lark-parser/lark

    5,914Vezi pe GitHub↗

    Lark este un toolkit de parsare Python utilizat pentru a defini gramatici și a converti textul brut în arbori de parsare adnotați. Servește drept generator de arbori de sintaxă abstractă și un limbaj de definire a gramaticii pentru specificarea regulilor limbajului prin terminale și expresii regulate. Biblioteca oferă două implementări principale de parsare: o bibliotecă de parsare Earley capabilă să gestioneze toate limbajele context-free, inclusiv cele cu ambiguitate și recursivitate la stânga, și o bibliotecă de parsare LALR de înaltă performanță concepută pentru limbaje deterministe cu un consum redus de memorie. Dincolo de parsarea de bază, toolkit-ul include capabilități pentru compoziția gramaticală modulară, transformarea arborilor bazată pe reguli și urmărirea coordonatelor pentru pozițiile sursă. De asemenea, suportă serializarea gramaticilor LALR în module de parsare independente.

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

    Pythoncykearleygrammar
    Vezi pe GitHub↗5,914
  • harc/ohmAvatar harc

    harc/ohm

    5,530Vezi pe GitHub↗

    Ohm este un toolkit pentru construcția de compilatoare și o bibliotecă de parser combinators utilizată pentru a construi parsere, interpretoare și compilatoare. Oferă un limbaj de gramatică formală pentru specificarea regulilor structurale ale formatelor de date, asigurând parsarea precisă a șirurilor de intrare. Proiectul funcționează ca un instrument de depanare a parsării și vizualizator de execuție a programelor. Acesta generează urme textuale și vizualizări grafice pentru a arăta logica pas cu pas utilizată în timpul parsării și redă schimbările de stare la runtime și ierarhiile de apeluri de metode. Toolkit-ul acoperă dezvoltarea de parsere personalizate și construcția de compilatoare și interpretoare. Include capabilități pentru vizualizarea limbajelor de programare, depanarea execuției algoritmilor și definirea gramaticilor formale.

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

    JavaScript
    Vezi pe GitHub↗5,530
  • chai2010/go-ast-bookAvatar chai2010

    chai2010/go-ast-book

    5,510Vezi pe GitHub↗

    go-ast-book este o colecție de resurse educaționale și tehnice axate pe analiza arborelui sintactic abstract (AST), dezvoltarea de compilatoare și verificarea statică a codului. Oferă ghiduri și manuale pentru parsarea, parcurgerea și analizarea codului sursă Go pentru a extrage semnificația semantică. Proiectul servește ca referință pentru construirea frontend-urilor de compilatoare, acoperind traducerea codului de nivel înalt în reprezentări intermediare și forme de atribuire statică unică (SSA). De asemenea, oferă instrucțiuni pentru utilizarea acestor tehnici în dezvoltarea de tooling pentru limbaje și efectuarea analizei statice de cod. Resursele acoperă o gamă largă de capabilități de analiză statică, inclusiv tokenizarea lexicală, parsarea structurală a expresiilor și declarațiilor, și urmărirea coordonatelor pentru fișierele sursă. Detaliază, de asemenea, procesele de analiză semantică precum rezoluția identificatorilor, verificarea corectitudinii tipurilor și analiza fluxului de control pentru concurență și execuție amânată.

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

    Go
    Vezi pe GitHub↗5,510
  • ohmjs/ohmAvatar ohmjs

    ohmjs/ohm

    5,471Vezi pe GitHub↗

    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
    Vezi pe GitHub↗5,471
  • pest-parser/pestAvatar pest-parser

    pest-parser/pest

    5,355Vezi pe GitHub↗

    Pest este o bibliotecă de parsare pentru Rust și un generator automat de parsere care transformă definițiile de gramatică formală în parsere funcționale. Se specializează în Parsing Expression Grammar (PEG) pentru a recunoaște și structura tipare complexe de text, oferind un sistem pentru parsarea gramaticilor libere de context. Biblioteca implementează tokenizarea de tip zero-copy și compilarea statică a gramaticii pentru a reduce overhead-ul la runtime. Suportă compatibilitatea no-std, permițând compilarea parserului pentru medii embedded sau bare-metal unde biblioteca standard nu este disponibilă. Proiectul acoperă o gamă de capabilități de parsare, inclusiv extragerea perechilor de token-uri imbricate și validarea sintactică automatizată. Este utilizat pentru implementarea de limbaje specifice domeniului (DSL), parsarea de limbaje personalizate și evaluarea expresiilor matematice. De asemenea, oferă raportarea automată a erorilor pentru a identifica token-uri neașteptate sau input-uri lipsă.

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

    Rust
    Vezi pe GitHub↗5,355
  • racket/racketAvatar racket

    racket/racket

    5,157Vezi pe GitHub↗

    Racket este un limbaj de programare general-purpose, multi-paradigmă, din familia Lisp, conceput pentru crearea de limbaje. Funcționează ca un banc de lucru pentru limbaje (language workbench), oferind o platformă pentru proiectarea și implementarea de limbaje de programare personalizate printr-un sistem flexibil de macro-uri și module. Sistemul se distinge prin oferirea unei suite cuprinzătoare pentru ingineria semantică, permițând construcția de subseturi de limbaje specializate și straturi educaționale. Include instrumente pentru designul de limbaje personalizate, cum ar fi generarea de lexere și parsere, precum și capacitatea de a defini reguli de expansiune a modulelor și selecția dinamică a limbajului la momentul citirii (read-time). Proiectul oferă un mediu de dezvoltare integrat (IDE) cu editor încorporat, debugger vizual și un manager de pachete software. Suprafața sa de capabilități se extinde la o bibliotecă standard general-purpose care acoperă randarea graficii 2D, procesarea datelor binare, integrarea SQL și a bazelor de date deductive, precum și construcția de interfețe grafice. Mediul suportă compilarea codului sursă în fișiere executabile standalone pentru distribuție.

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

    Racketracket
    Vezi pe GitHub↗5,157
  • pegjs/pegjsAvatar pegjs

    pegjs/pegjs

    4,908Vezi pe GitHub↗

    PegJS este un instrument de gramatică de expresii de parsare și un generator de parser JavaScript. Funcționează ca un compilator de gramatică care transformă specificațiile formale de gramatică în cod JavaScript executabil pentru analizarea textului structurat și procesarea șirurilor de intrare complexe. Sistemul generează parsere deterministe care evită ambiguitatea gramaticilor libere de context. Utilizează un model de parsare packrat cu memoizare pentru a asigura complexitatea de timp liniară și folosește parsarea prin coborâre recursivă pentru a procesa intrarea într-o manieră ierarhică de sus în jos. Setul de instrumente suportă implementarea limbajelor specifice domeniului și dezvoltarea de limbaje personalizate. Include capabilități pentru definirea recursivă a regulilor gramaticale, acțiuni semantice inline pentru transformarea textului potrivit în date structurate și predicate semantice pentru potrivire condiționată. Motorul de generare include opțiuni de configurare pentru a echilibra viteza de execuție a parserului rezultat față de dimensiunea finală a codului de ieșire.

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

    JavaScript
    Vezi pe GitHub↗4,908
  • google/wuffsAvatar google

    google/wuffs

    4,773Vezi pe GitHub↗

    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
    Vezi pe GitHub↗4,773
  • zesterer/chumskyAvatar zesterer

    zesterer/chumsky

    4,545Vezi pe GitHub↗

    Chumsky este o bibliotecă de parser combinator utilizată pentru a construi parsere de înaltă performanță prin compunerea unor funcții mici de parsare în gramatici complexe. Oferă mai multe motoare de parsare, inclusiv implementări de tip „recursive descent” și „precedence-climbing” pentru rezolvarea ordinii operațiilor în expresii matematice și logice. Biblioteca se distinge prin parsarea textului de tip „zero-copy”, care minimizează alocările de memorie pentru a crește throughput-ul, și prin capacitatea sa de a rula fără o bibliotecă standard pentru utilizare în medii încorporate sau cu resurse limitate. De asemenea, dispune de un parser cu recuperare la erori care identifică input-ul malformat și reia procesarea pentru a raporta mai multe erori de sintaxă într-o singură trecere. Framework-ul acoperă o gamă largă de capabilități, inclusiv gestionarea stării sensibile la context, suport pentru gramatici recursive și integrarea modelelor de expresii regulate. Include instrumente pentru analiza structurii parserului, inspecția nodurilor și caching-ul rezultatelor pentru a susține backtracking-ul și recursivitatea la stânga. Biblioteca susține dezvoltarea de limbaje personalizate, parsarea formatelor de date și instrumente pentru limbaje de programare.

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

    Rustcontext-free-grammarerrorslexing
    Vezi pe GitHub↗4,545
  • zaach/jisonAvatar zaach

    zaach/jison

    4,385Vezi pe GitHub↗

    Jison este un generator de parser pentru JavaScript care implementează algoritmul de parsare LALR. Acesta creează instrumente pentru a analiza limbaje de programare personalizate prin convertirea input-ului structurat în token-uri și arbori. Proiectul funcționează ca un generator compatibil cu Bison, acceptând gramatici într-un format compatibil cu generatorul de parser Bison pentru a produce parsere JavaScript. Acesta acoperă cerințele pentru dezvoltarea frontend-ului de compilatoare, inclusiv implementarea limbajelor specifice domeniului (DSL) și instrumente de analiză sintactică. Capabilitățile sale se extind la parsarea limbajelor personalizate și generarea de parsere printr-o interfață în linie de comandă (CLI).

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

    JavaScript
    Vezi pe GitHub↗4,385
  • kach/nearleyAvatar kach

    kach/nearley

    3,740Vezi pe GitHub↗

    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
    Vezi pe GitHub↗3,740
  • hardmath123/nearleyAvatar Hardmath123

    Hardmath123/nearley

    3,740Vezi pe GitHub↗

    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
    Vezi pe GitHub↗3,740
  • eliben/pycparserAvatar eliben

    eliben/pycparser

    3,473Vezi pe GitHub↗

    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
    Vezi pe GitHub↗3,473
  • hyperjumptech/grule-rule-engineAvatar hyperjumptech

    hyperjumptech/grule-rule-engine

    2,505Vezi pe GitHub↗

    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
    Vezi pe GitHub↗2,505
  • tabatkins/railroad-diagramsAvatar tabatkins

    tabatkins/railroad-diagrams

    1,744Vezi pe GitHub↗

    Railroad-diagrams este un utilitar pentru generarea reprezentărilor vizuale ale gramaticilor formale și ale structurilor de limbaj. Funcționează ca o bibliotecă ce transformă sistemele de notație dense, cum ar fi Backus-Naur Form (BNF) sau expresiile regulate, în diagrame de flux lizibile. Instrumentul utilizează un motor de layout bazat pe coordonate și compunerea recursivă a componentelor pentru a construi diagramele ca arbori ierarhici. Prin separarea logicii de calcul geometric de stratul de output, suportă randarea prin Scalable Vector Graphics (SVG) sau text Unicode, asigurând că diagramele rămân clare și scalabile în diferite medii. Utilizatorii pot ajusta parametrii vizuali, inclusiv spațierea liniilor, curbura și alinierea elementelor, pentru a se potrivi cerințelor specifice de documentare. Diagramele generate pot fi exportate ca fișiere imagine independente sau markup brut pentru integrarea în manuale tehnice și specificații bazate pe web.

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

    Python
    Vezi pe GitHub↗1,744
  • blazegraph/databaseAvatar blazegraph

    blazegraph/database

    985Vezi pe GitHub↗

    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
    Vezi pe GitHub↗985
  1. Home
  2. Software Engineering & Architecture
  3. Trees
  4. Syntax Tree Construction
  5. Formal Grammar Parser Generators

Explorează sub-etichetele

  • 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.