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.
Die Hauptfunktionen von harc/ohm sind: Parsing and Grammars, Compiler and Interpreter Construction, Compiler Construction, Execution Tracing, Parsing Debugging Toolkits, Formal Grammar Languages, Formal Grammar Specifications, Runtime State Visualizers.
Open-Source-Alternativen zu harc/ohm sind unter anderem: ohmjs/ohm — Ohm is a formal grammar parser generator and domain-specific language framework. It provides a system for defining… lark-parser/lark — Lark is a Python parsing toolkit used to define grammars and convert raw text into annotated parse trees. It serves as… zesterer/chumsky — Chumsky is a parser combinator library used to build high-performance parsers by composing small parsing functions… geal/nom — nom is a Rust parser combinator framework used to build complex parsers for binary and text data. It functions as an… meta-pytorch/segment-anything-fast — Segment Anything Fast is a high-performance computer vision inference engine and image segmentation framework built… day8/re-frame — re-frame is a functional framework for building single-page applications in ClojureScript. It provides a centralized,…
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
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
Chumsky is a parser combinator library used to build high-performance parsers by composing small parsing functions into complex grammars. It provides multiple parsing engines, including recursive descent and precedence-climbing implementations for resolving the order of operations in mathematical and logical expressions. The library is distinguished by its zero-copy text parsing, which minimizes memory allocations to increase throughput, and its ability to run without a standard library for use in embedded or resource-constrained environments. It also features an error-recovering parser that
nom is a Rust parser combinator framework used to build complex parsers for binary and text data. It functions as an abstract syntax tree generator and a bit-level binary parser, allowing users to construct structured data by combining small, reusable parsing functions. The framework provides specialized support for zero-copy binary parsing, extracting data as slices from raw byte arrays to avoid memory allocations. It also includes a streaming data parser capable of processing partial input chunks from networks or files and signaling when additional input is required. The project covers a b