gram_grep VS ast-grep

Compare gram_grep vs ast-grep and see what are their differences.

gram_grep

Search text using a grammar, lexer, or straight regex. Chain searches for greater refinement. (by BenHanson)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
gram_grep ast-grep
4 35
11 5,988
- 5.5%
7.1 9.9
12 days ago 4 days ago
C++ Rust
Boost Software License 1.0 MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

gram_grep

Posts with mentions or reviews of gram_grep. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-10.
  • AST-grep(sg) is a CLI tool for code structural search, lint, and rewriting
    15 projects | news.ycombinator.com | 10 Dec 2023
    There is also gram_grep[0]"Search text using a grammar, lexer, or straight regex. Chain searches for greater refinement."

    See also parsertl-playground[1] for online edit/test grammars.

    [0]https://github.com/BenHanson/gram_grep

  • Show HN: Yacc/Lex editor/tester online
    3 projects | news.ycombinator.com | 7 Sep 2023
    I'm building an online yacc/lex (LALR(1)) grammar editor/tester to help develop/debug/document grammars, the main repository is here https://github.com/mingodad/parsertl-playground and the online playground with several non trivial examples is here https://mingodad.github.io/parsertl-playground/playground/ .

    Select a grammar/example from "Examples" select box and then click "Parse" to see a parser tree for the source in "Input source" editor.

    It's based on https://github.com/BenHanson/gram_grep and https://github.com/BenHanson/lexertl14 .

    Any feedback is welcome !

    The grammars available so far (with varying state of correctness):

    - Ada parser

  • Question about lexer and parser generators in Rust
    8 projects | /r/rust | 11 Feb 2023
  • MSVC Backend Updates in Visual Studio 2019 version 16.10 Preview 2 | C++ Team Blog
    5 projects | /r/cpp | 15 Apr 2021
    Thanks for the tip, but I fear storing the result on the stack will be too much to ask for for big lexers (see https://github.com/BenHanson/gram_grep/blob/c64f8829661f11b38a55b42b37f5051c5eabfaa6/main.cpp#L2301 for example).

ast-grep

Posts with mentions or reviews of ast-grep. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-05-06.
  • An infinite canvas for code exploration
    3 projects | news.ycombinator.com | 6 May 2024
    It's unclear what the superpowers would be? Video doesn't show anything I can't do with an IDE or decent code editor, and there I also have refactoring tools, metadata like indicators for usages that can be used for navigating and so on.

    Reminds me of UML-like diagrams over relational databases, except that it's generated one piece at a time. In practice I generate diagrams showing cyclomatic complexity much more often, and for code exploration outside the IDE I'd use ast-grep.

    https://ast-grep.github.io/

  • Migrate to React 19 with ast-grep
    2 projects | dev.to | 28 Apr 2024
    This article illustrates the usage of ast-grep, a tool designed to locate and substitute patterns in your codebase, towards easing your migration to React 19.
  • AST-grep(sg) AST grep based on Treesitter
    1 project | news.ycombinator.com | 1 Apr 2024
  • Show HN: GritQL, a Rust CLI for rewriting source code
    8 projects | news.ycombinator.com | 20 Mar 2024
    This looks great, thanks for building and sharing it.

    Interested folks may also want to check out ast-grep:

    https://github.com/ast-grep/ast-grep

  • How I build a chatbot for my OSS project, for free, without code!
    2 projects | dev.to | 31 Dec 2023
    ast-grep is a command-line tool that lets you search and transform code written in many programming languages using abstract syntax trees (ASTs). ASTs are data structures that capture the syntactic and semantic structure of source code. With ast-grep, you can write patterns as if you are writing ordinary code, and it will match all code that has the same syntactical structure. And if you need more power, you can use YAML, a rule system that allows you to write more sophisticated linting rules or code modifications.
  • FLaNK Stack Weekly 11 Dec 2023
    31 projects | dev.to | 11 Dec 2023
  • AST-grep(sg) is a CLI tool for code structural search, lint, and rewriting
    1 project | /r/patient_hackernews | 10 Dec 2023
    1 project | /r/hackernews | 10 Dec 2023
    1 project | /r/hypeurls | 10 Dec 2023
    15 projects | news.ycombinator.com | 10 Dec 2023
    I really like this - it means the tool is available to people with familiarity of any of those four distribution mechanisms.

    You can also download pre-built binaries from their releases page: https://github.com/ast-grep/ast-grep/releases/tag/0.14.2

    On top of that, they offer API bindings for it in three different languages:

    - Rust (not yet stable): https://docs.rs/ast-grep-core/latest/ast_grep_core/

    - JavaScript/TypeScript: https://ast-grep.github.io/guide/api-usage/js-api.html

    - Python: https://ast-grep.github.io/guide/api-usage/py-api.html

    It's rare to see a tool/library offer this depth of language support out of the box.

What are some alternatives?

When comparing gram_grep and ast-grep you can also consider the following projects:

frozen - a header-only, constexpr alternative to gperf for C++14 users

ssr.nvim - Treesitter based structural search and replace plugin for Neovim.

tracy - Frame profiler

helix - A post-modern modal text editor.

gramatika - A minimal toolkit for writing parsers with Rust

weggli - weggli is a fast and robust semantic search tool for C and C++ codebases. It is designed to help security researchers identify interesting functionality in large codebases.

parsertl14 - C++14 version of parsertl

git-repo-sync - Auto synchronization of remote Git repositories. Auto conflict solving. Network fail resilience. Linux & Windows support. And more.

chumsky - Write expressive, high-performance parsers with ease.

telescope.nvim - Find, Filter, Preview, Pick. All lua, all the time.

semgrep - Lightweight static analysis for many languages. Find bug variants with patterns that look like source code.

telescope-sg - Ast-grep picker for telescop.nvim