awesome-repositories.com
Blog
awesome-repositories.com

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

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

ohmjs/ohm

0
View on GitHub↗
5,471 Stars·225 Forks·JavaScript·mit·4 Aufrufe

Ohm

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 and rule applications the parser makes when processing input.

The framework covers language definition, input string validation, and semantic value extraction from parsed structures.

Features

  • Grammar Rule Specification - Provides a high-level syntax for specifying the rules and structure of custom formal grammars.
  • Domain Specific Languages - Acts as a comprehensive framework for creating custom domain-specific languages through syntactic rules and semantic value extraction.
  • Rule-Based Text Parsers - Uses predefined linguistic grammars to tokenize, tag, and map text into structured data.
  • Language Development - Provides utilities for building new programming or configuration languages using formal grammar rules.
  • Earley - Uses the Earley parsing algorithm to support all context-free grammars, including those with left recursion.
  • Parsing and Grammars - Implements libraries for lexical analysis, parsing, and formal grammar definition to convert raw text into structured data.
  • Text Processing and Parsing - Provides libraries for matching input text against a grammar to produce a data structure.
  • Data Parsing and Extraction - Identifies, isolates, and converts raw input into structured, schema-validated formats.
  • Abstract Syntax Tree Generators - Transforms raw input strings into hierarchical abstract syntax trees based on a defined formal grammar.
  • Context-Free Grammar Frameworks - Provides a framework for specifying language rules that support left recursion and ambiguous grammars.
  • Domain Specific Languages - Implements specialized parsing for languages designed for particular application domains.
  • String Parsing - Converts textual representations into structured data types and validates they match defined rules.
  • Abstract Syntax Tree Parsing - Converts source code or template strings into a structured tree representation for analysis.
  • String Format Specification - Validates that string content conforms to specific formal grammar patterns.
  • Formal Grammar Parser Generators - Provides a tool for defining custom languages using formal grammars to parse, validate, and extract data.
  • Grammar-Based Parsers - Creates hierarchical syntax trees based on specialized formal grammar rules.
  • Earley Parser Implementations - Uses a non-deterministic Earley parsing engine to handle complex context-free grammars including left recursion.
  • Earley Parsers - Implements an Earley parser to support all context-free grammars including those with left recursion and ambiguity.
  • Grammar Validation Tools - Provides tools for validating that input strings conform to specific formal grammar definitions.
  • Parser Execution Tracing - Records state transitions and rule applications to visualize the decision process of the parsing engine.
  • Grammar Debugging Tools - Traces the decision process of a parser to identify and fix errors in a formal language definition.
  • Parser Decision Visualizations - Generates text traces or graphical visualizations of the steps and decisions a parser takes.
  • Semantic Value Extraction - Walks the generated parse tree using semantic operations to retrieve specific data from matched nodes.
  • Text Extraction - Isolates and retrieves specific meaningful segments of data from larger raw text inputs.
  • Parser Debugging Tools - Provides a dedicated toolkit for tracing and visualizing the step-by-step decisions the parser makes when processing input.
  • Parsing Debugging Toolkits - Includes a dedicated toolkit for tracing and visualizing the step-by-step state transitions of the parsing engine.
  • Language Definition Frameworks - Provides a framework for specifying the rules and structure of custom domain-specific languages.
  • Non-Deterministic Parsing State Tracking - Tracks multiple parallel parsing hypotheses to handle ambiguous grammar rules without predefined operator precedence.
  • Parser State Recording - Logs every rule application and state transition to visualize the internal decision process during parsing.

Star-Verlauf

Star-Verlauf für ohmjs/ohmStar-Verlauf für ohmjs/ohm

KI-Suche

Entdecke weitere awesome Repositories

Beschreibe in einfachen Worten, was du brauchst — die KI bewertet tausende kuratierte Open-Source-Projekte nach Relevanz.

Start searching with AI

Open-Source-Alternativen zu Ohm

Ähnliche Open-Source-Projekte, sortiert nach der Anzahl der gemeinsamen Funktionen mit Ohm.
  • lark-parser/larkAvatar von lark-parser

    lark-parser/lark

    5,914Auf GitHub ansehen↗

    Lark is a Python parsing toolkit used to define grammars and convert raw text into annotated parse trees. It serves as an abstract syntax tree generator and a grammar definition language for specifying language rules through terminals and regular expressions. The library provides two primary parsing implementations: an Earley parsing library capable of handling all context-free languages, including those with ambiguity and left-recursion, and a high-performance LALR parsing library designed for deterministic languages with low memory overhead. Beyond core parsing, the toolkit includes capabi

    Pythoncykearleygrammar
    Auf GitHub ansehen↗5,914
  • 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

    JavaScript
    Auf GitHub ansehen↗3,740
  • 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

    JavaScript
    Auf GitHub ansehen↗3,740
  • antlr/antlr4Avatar von antlr

    antlr/antlr4

    18,928Auf GitHub ansehen↗

    ANTLR is a grammar-based code generator and multi-language parser generator used to design and implement custom languages. It functions as a toolkit for transforming formal language definitions into executable source code for processing structured text or binary files, while providing a framework for automatically constructing and traversing hierarchical parse trees. The project is distinguished by its ability to generate lexers and parsers in various target programming languages from a single shared grammar definition. It supports grammars containing direct left recursion and utilizes adapti

    Java
    Auf GitHub ansehen↗18,928
Alle 30 Alternativen zu Ohm anzeigen→

Häufig gestellte Fragen

Was macht ohmjs/ohm?

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.

Was sind die Hauptfunktionen von ohmjs/ohm?

Die Hauptfunktionen von ohmjs/ohm sind: Grammar Rule Specification, Domain Specific Languages, Rule-Based Text Parsers, Language Development, Earley, Parsing and Grammars, Text Processing and Parsing, Data Parsing and Extraction.

Welche Open-Source-Alternativen gibt es zu ohmjs/ohm?

Open-Source-Alternativen zu ohmjs/ohm sind unter anderem: lark-parser/lark — Lark is a Python parsing toolkit used to define grammars and convert raw text into annotated parse trees. It serves as… 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… antlr/antlr4 — ANTLR is a grammar-based code generator and multi-language parser generator used to design and implement custom… pest-parser/pest — Pest is a Rust parsing library and automatic parser generator that transforms formal grammar definitions into… harc/ohm — Ohm is a compiler construction toolkit and parser combinator library used to build parsers, interpreters, and…