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

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
harc avatar

harc/ohm

0
View on GitHub↗
5,530 stars·225 forks·JavaScript·MIT·14 views

Ohm

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 interpreters. It includes capabilities for programming language visualization, algorithm execution debugging, and formal grammar definition.

Features

  • Parsing and Grammars - Provides a grammar-based parsing engine that matches input strings against formal rules to derive structured text representations.
  • Compiler and Interpreter Construction - Serves as a comprehensive toolkit for building custom compilers and interpreters.
  • Compiler Construction - Provides a specialized toolkit for constructing compilers, interpreters, and static analysis tools.
  • Execution Tracing - Records every state change and method call during runtime to create a chronological history of the computation.
  • Parsing Debugging Toolkits - Generates text traces or graphical visualizations to show the step-by-step logic used when matching input.
  • Formal Grammar Languages - Implements a formal grammar language for specifying precise structural rules of data formats.
  • Formal Grammar Specifications - Allows users to specify the structure of a language or data format using a dedicated syntax to ensure precise parsing.
  • Runtime State Visualizers - Displays real-time values and state changes next to the corresponding lines of code to simplify the tracking of program state.
  • Call-Stack Visualizers - Render a global icicle plot of all method calls to visualize the structural shape and sequence of a computation.
  • Parser Combinators - Implements a parser combinator library for building complex parsers by composing smaller, reusable parsing functions.
  • Parsing Visualizers - Generates step-by-step traces and graphical visualizations to show the logic used when matching input against a grammar.
  • String Parsing - Matches text inputs against a defined grammar to determine if the data conforms to the expected format.
  • Custom Parser Development - Enables the definition of formal grammars to create structured representations of text input.
  • Execution Tracing - Records every state change and method call during runtime to create a searchable history of the computation.
  • Iteration Visualizers - Displays repeated loop executions side-by-side to track how variable values evolve across multiple iterations.
  • Runtime-to-Source Synchronizers - Links specific runtime execution timestamps to the corresponding line numbers in the original source code.
  • Variable State Summarizers - Filters out transient local state to display only the final modified values of persistent variables after execution.
  • Execution-to-Code Linking - Synchronize highlighting between source code and execution visualizations to navigate quickly between call sites and runtime behavior.
  • Algorithm Execution Debugging - Provides visual plots of method calls and state changes to diagnose complex algorithmic logic errors.
  • Call-Stack Visualizations - Visualizes the structural depth of function calls by mapping the execution hierarchy as a series of nested rectangles.
  • Programming Language Visualizations - Renders execution flows and state changes through graphical plots to visualize program behavior at runtime.
  • Call Stack Visualizers - Renders the hierarchy of function calls as nested rectangles to visualize structural execution depth.
  • Program Execution Visualization - Renders runtime state changes and method call hierarchies to visualize complex code execution paths.
  • Language Tooling - Library for building parsers and compilers.

Star history

Star history chart for harc/ohmStar history chart for harc/ohm

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does harc/ohm do?

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.

What are the main features of harc/ohm?

The main features of harc/ohm are: Parsing and Grammars, Compiler and Interpreter Construction, Compiler Construction, Execution Tracing, Parsing Debugging Toolkits, Formal Grammar Languages, Formal Grammar Specifications, Runtime State Visualizers.

What are some open-source alternatives to harc/ohm?

Open-source alternatives to harc/ohm include: 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,…

Open-source alternatives to Ohm

Similar open-source projects, ranked by how many features they share with Ohm.
  • ohmjs/ohmohmjs avatar

    ohmjs/ohm

    5,471View on 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
    View on GitHub↗5,471
  • lark-parser/larklark-parser avatar

    lark-parser/lark

    5,914View on GitHub↗

    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
    View on GitHub↗5,914
  • zesterer/chumskyzesterer avatar

    zesterer/chumsky

    4,545View on GitHub↗

    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

    Rustcontext-free-grammarerrorslexing
    View on GitHub↗4,545
  • geal/nomGeal avatar

    Geal/nom

    10,422View on GitHub↗

    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

    Rust
    View on GitHub↗10,422
See all 30 alternatives to Ohm→