gram_grep
ast-grep
gram_grep | ast-grep | |
---|---|---|
4 | 34 | |
11 | 5,904 | |
- | 4.2% | |
7.1 | 9.9 | |
13 days ago | 4 days ago | |
C++ | Rust | |
Boost Software License 1.0 | MIT License |
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
-
AST-grep(sg) is a CLI tool for code structural search, lint, and rewriting
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
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
-
MSVC Backend Updates in Visual Studio 2019 version 16.10 Preview 2 | C++ Team Blog
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
-
Migrate to React 19 with ast-grep
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
-
Show HN: GritQL, a Rust CLI for rewriting source code
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!
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
-
AST-grep(sg) is a CLI tool for code structural search, lint, and rewriting
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.
-
SemanticDiff now supports Rust
Is there an open source library that does this? Maybe something on top of ast-grep
What are some alternatives?
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