awesome-repositories.com
Blog
awesome-repositories.com

Descubre los mejores repositorios open-source con nuestra búsqueda potenciada por IA.

ExplorarBúsquedas curadasAlternativas open-sourceSoftware autohospedableBlogMapa del sitio
ProyectoAcerca deCómo clasificamosPrensaServidor MCP
Aviso legalPrivacidadTérminos
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
lark-parser avatar

lark-parser/lark

0
View on GitHub↗
5,914 estrellas·484 forks·Python·MIT·6 vistas

Lark

Lark es un kit de herramientas de análisis sintáctico (parsing) para Python utilizado para definir gramáticas y convertir texto sin formato en árboles de análisis anotados. Sirve como un generador de árboles de sintaxis abstracta y un lenguaje de definición de gramática para especificar reglas de lenguaje a través de terminales y expresiones regulares.

La biblioteca proporciona dos implementaciones principales de análisis: una biblioteca de análisis Earley capaz de manejar todos los lenguajes libres de contexto, incluidos aquellos con ambigüedad y recursión a la izquierda, y una biblioteca de análisis LALR de alto rendimiento diseñada para lenguajes deterministas con bajo consumo de memoria.

Más allá del análisis central, el kit de herramientas incluye capacidades para la composición de gramáticas modulares, transformación de árboles basada en reglas y seguimiento de coordenadas para posiciones de origen. También admite la serialización de gramáticas LALR en módulos de análisis independientes.

Features

  • Parsing Toolkits - Provides a comprehensive suite of parsing algorithms and grammar definition tools for transforming raw text into structured parse trees.
  • AST Generators - Acts as a toolkit for transforming raw input text into hierarchical abstract syntax trees based on predefined grammars.
  • Parsing and Grammars - Converts raw text into annotated parse trees based on user-defined grammar rules.
  • Custom Language Definitions - Enables the definition of custom language structures using grammar rules and regular expressions.
  • Grammar Rule Specification - Allows users to define the structure of a language using a high-level syntax for recursive rules and regular expressions.
  • Context-Free Grammar Frameworks - Implements a framework capable of parsing all context-free languages, including those with ambiguity and left-recursion.
  • Formal Grammar Specifications - Allows the definition of recursive rules and terminals using extended Backus-Naur Form (EBNF) syntax.
  • Annotated Parse Trees - Transforms raw text into hierarchical parse trees annotated with grammar rule matches and source positions.
  • Abstract Syntax Tree Parsing - Automatically generates a hierarchical tree representation of the input text based on the defined grammar.
  • Concrete Parse Tree Generation - Automatically builds full, annotated hierarchical parse trees based on the specified grammar structure.
  • AST Generators - Automatically generates hierarchical abstract syntax trees by matching input tokens against defined grammar rules.
  • LALR Parsers - Implements a high-performance LALR parser using look-ahead left-to-right shift-reduce algorithms for deterministic languages.
  • Earley Parser Implementations - Implements the Earley parsing algorithm to support all context-free languages, including those with left-recursion.
  • Earley Parsers - Implements the Earley parsing algorithm to handle all context-free grammars, including those with ambiguity and left-recursion.
  • Interactive Grammar Debugging - Offers tools to design and debug language grammars by inspecting parser decisions interactively.
  • Ambiguity Management - Supports marking multiple valid interpretations of a single input string when using the Earley parsing algorithm.
  • High-Performance Text Processing - Uses LALR algorithms to process large volumes of text with high efficiency and low memory usage.
  • Grammar Compositions - Provides the ability to import terminals and rules from multiple external grammar files to build complex parsing logic.
  • Domain Specific Language Parsers - Provides tools to build specialized parsers for custom data formats and complex recursive configuration languages.
  • Parsing Optimizations - Implements high-performance LALR parsing to increase execution speed and reduce memory overhead.
  • Source Coordinate Tracking - Provides line and column offset tracking for tokens to map parse tree nodes back to the original source code.
  • Standalone Parser Generators - Compiles LALR grammars into self-contained parser modules to remove dependencies on the full toolkit.
  • Coordinate Tracking - Tracks line and column numbers for every element in the parse tree to facilitate precise error reporting and debugging.
  • Grammar Extensions - Imports terminals and rules from external libraries to reuse common language patterns within a grammar.
  • Grammar Compositions - Supports importing and combining separate grammar definitions to build complex languages from reusable components.
  • Syntax Tree Transformers - Uses a visitor-pattern mechanism to transform parse trees into custom data structures via specific grammar branch mappings.

Historial de estrellas

Gráfico del historial de estrellas de lark-parser/larkGráfico del historial de estrellas de lark-parser/lark

Búsqueda con IA

Explora más repositorios increíbles

Describe lo que necesitas en lenguaje sencillo: la IA clasifica miles de proyectos open-source curados por relevancia.

Start searching with AI

Alternativas open-source a Lark

Proyectos open-source similares, clasificados según cuántas características comparten con Lark.
  • ohmjs/ohmAvatar de ohmjs

    ohmjs/ohm

    5,471Ver en 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

    JavaScriptcompilergrammarsjavascript
    Ver en GitHub↗5,471
  • hardmath123/nearleyAvatar de Hardmath123

    Hardmath123/nearley

    3,740Ver en 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

    JavaScript
    Ver en GitHub↗3,740
  • kach/nearleyAvatar de kach

    kach/nearley

    3,740Ver en 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

    JavaScript
    Ver en GitHub↗3,740
  • harc/ohmAvatar de harc

    harc/ohm

    5,530Ver en GitHub↗

    Ohm is a compiler construction toolkit and parser combinator library used to build parsers, interpreters, and compilers. It provides a formal grammar language for specifying the structural rules of data formats to ensure precise parsing of input strings. The project functions as a parsing debugging tool and program execution visualizer. It generates text traces and graphical visualizations to show the step-by-step logic used during parsing and renders runtime state changes and method call hierarchies. The toolkit covers custom parser development and the construction of compilers and interpre

    JavaScript
    Ver en GitHub↗5,530
Ver las 30 alternativas a Lark→

Preguntas frecuentes

¿Qué hace lark-parser/lark?

Lark es un kit de herramientas de análisis sintáctico (parsing) para Python utilizado para definir gramáticas y convertir texto sin formato en árboles de análisis anotados. Sirve como un generador de árboles de sintaxis abstracta y un lenguaje de definición de gramática para especificar reglas de lenguaje a través de terminales y expresiones regulares.

¿Cuáles son las características principales de lark-parser/lark?

Las características principales de lark-parser/lark son: Parsing Toolkits, AST Generators, Parsing and Grammars, Custom Language Definitions, Grammar Rule Specification, Context-Free Grammar Frameworks, Formal Grammar Specifications, Annotated Parse Trees.

¿Qué alternativas de código abierto existen para lark-parser/lark?

Las alternativas de código abierto para lark-parser/lark incluyen: ohmjs/ohm — Ohm is a formal grammar parser generator and domain-specific language framework. It provides a system for defining… hardmath123/nearley — Nearley is a JavaScript parser toolkit used to define context-free grammars and generate corresponding parsers. It… kach/nearley — Nearley is a JavaScript parser toolkit and context-free grammar compiler. It functions as an Earley parser generator… harc/ohm — Ohm is a compiler construction toolkit and parser combinator library used to build parsers, interpreters, and… commonmark/commonmark-spec — This project is a formal markdown specification standard that provides a detailed markup syntax definition and a… dtolnay/syn — syn is a Rust syntax tree parser and token stream converter. It serves as a toolkit for procedural macro development,…