gram_grep
pfff
gram_grep | pfff | |
---|---|---|
4 | 6 | |
11 | 2,422 | |
- | - | |
7.1 | 0.0 | |
12 days ago | about 5 years ago | |
C++ | OCaml | |
Boost Software License 1.0 | GNU General Public License v3.0 or later |
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).
pfff
-
AST-grep(sg) is a CLI tool for code structural search, lint, and rewriting
Hi, ast-grep author here. This is a great question and I asked this in the first place before I started the hobby project.
TLDR; I designed ast-grep to be on different tracks than semgrep.
Semgrep is for security and ast-grep is for development.
First and foremost, I have always been in awe of semgrep. Semgrep's documentation, product sites and Padioleau's podcast all gave me a lot of inspiration. Using code to find code is such a cool idea that I never need to craft an intricate regex or write a lengthy AST program. sgrep and patch from https://github.com/facebookarchive/pfff/wiki/Sgrep have helped me a lot in real large codebases.
When I used semgrep as a software engineer, instead of a security researcher, I found semgrep has not touched too much on routine development works. I can use `semgrep -e PATTERN` but the Python wrapper is not too fast compared to grep.
-
Interesting ocaml mention in buck2 by fb
Meta/Facebook are long time OCaml users, their logo is on the OCaml website. Their static analysis tool and its predecessor are both written in OCaml.
-
What's wrong with static-analysis autofix/codemod tools? Why don't we use them more, across the industry? What's your experience?
Over the decades, there's been so very many attempts to address this conundrum; and yet, ...
- Show HN: Semgrep App
- Show HN: Visualizing a Codebase
What are some alternatives?
frozen - a header-only, constexpr alternative to gperf for C++14 users
WhiteBeam - WhiteBeam: Transparent endpoint security
tracy - Frame profiler
flow - Adds static typing to JavaScript to improve developer productivity and code quality.
gramatika - A minimal toolkit for writing parsers with Rust
vircadia-native-core - Vircadia open source agent-based metaverse ecosystem.
parsertl14 - C++14 version of parsertl
syntax-searcher - Language-independent command-line utility for syntax-aware pattern matching.
chumsky - Write expressive, high-performance parsers with ease.
ocaml-tree-sitter-semgrep - Generate parsers from tree-sitter grammars extended to support Semgrep patterns
semgrep - Lightweight static analysis for many languages. Find bug variants with patterns that look like source code.
infer - A static analyzer for Java, C, C++, and Objective-C