Topic

ast

A grammar describes the syntax of a programming language, and might be defined in Backus-Naur form (BNF). A lexer performs lexical analysis, turning text into tokens. A parser takes tokens and builds a data structure like an abstract syntax tree (AST). The parser is concerned with context: does the sequence of tokens fit the grammar? A compiler is a combined lexer and parser, built for a specific grammar.

Repositories (1548)

esrecurse
esrecurse estools JavaScript

AST recursive visitor

80
jroff
jroff roperzh JavaScript

Man pages parser written in JavaScript, supports `an` and `doc` macros - WIP

79
rector-doctrine
rector-doctrine rectorphp PHP

Rector upgrade rules for Doctrine

79
code_summarization_public
code_summarization_public wanyao1992 Python

source code for 'Improving automatic source code summarization via deep reinforcement learning'

78
goparsify
goparsify vektah Go

golang parser-combinator library

78
Jasm
Jasm jumanji144 Java

Post modern age integration focused jvm bytecode assembler

78
CricLang
CricLang manthanguptaa Go

CricLang is a fun dynamically typed language written in Go for cricket enthusiasts.

77
MarkdownSyntax
MarkdownSyntax hebertialmeida Swift

☄️ A Type-safe Markdown parser in Swift.

75
JSRETK
JSRETK SeanPesce JavaScript

JavaScript Reverse Engineering Toolkit (JSRETK) - Experimental tools for analyzing (minified/obfuscated) JavaScript

75
redot
redot redotjs PEG.js

Graphviz dot file processor powered by plugins based on @unifiedjs

75
java-ast
java-ast pascalgn TypeScript

Java Parser for JavaScript/TypeScript (based on antlr4ts)

75
lpegrex
lpegrex edubart Lua

Parse programming languages syntax into an AST using PEGs with ease (LPeg Extension).

75
deobshell
deobshell thewhiteninja Python

Powershell script deobfuscation using AST in Python

74
astra
astra alfasoftware Java

Astra: a Java tool for analysing and refactoring Java source code

73
github-ast-viewer
github-ast-viewer lukehorvat JavaScript

Chrome extension to view the abstract syntax tree (AST) of code on GitHub.

72
ravi-compiler
ravi-compiler dibyendumajumdar C

Parser and compiler for Ravi and Lua

71
Rock
Rock Champii Rust

Native language with Rust & LLVM

71
method_log
method_log freerange Ruby

Trace the history of an individual method in a git repository (experimental)

70
estree-toolkit
estree-toolkit sarsamurmu TypeScript

Tools for working with ESTree AST

70
jspicl
jspicl jspicl TypeScript

A Javascript to PICO-8 Lua transpiler

69
mack
mack tryfabric TypeScript

Markdown To Slack: Convert Markdown and GitHub Flavoured Markdown to Slack BlockKit block objects 🔀💬

69
eval-estree-expression
eval-estree-expression jonschlinkert JavaScript

Safely evaluate JavaScript (estree) expressions, sync and async.

68
batchql
batchql matthiasak JavaScript

Don't just graphql, batchql!

67
mkgendocs
mkgendocs davidenunes Python

Markdown documentation generator from Google docstrings

67
drupal-rector
drupal-rector palantirnet PHP

A developer utility for automatically upgrading deprecated code for Drupal 9

66
chocopy-python-compiler
chocopy-python-compiler yangdanny97 Python

Ahead-of-time compiler for Chocopy, a statically typed subset of Python 3, built in Python 3, targeting CIL/CLR, JVM, LLVM IR, and WASM.

66
PhpCodeArcheology
PhpCodeArcheology PhpCodeArcheology PHP

PHP static analysis for architecture & maintainability — 60+ metrics, complexity analysis, dependency graphs, git churn hotspots, and AI-ready MCP ser...

65
Neslib.Clang
Neslib.Clang neslib Pascal

libclang for Delphi

65
charmd
charmd littletof JavaScript

A simple, extendable markdown renderer for your terminal.

65
Fabulous.AST
Fabulous.AST edgarfgp F#

Abstract Syntax Tree (AST) Domain Specific Language (DSL) for F#

65
gotype
gotype wzshiming Go

Golang source code parsing, usage like reflect package

64
node-source-walk
node-source-walk dependents JavaScript

Execute a callback on every node of a source code's AST and stop walking whenever you see fit.

64
md-padding
md-padding harttle TypeScript

AST-based padding for Markdown and natural language, improving readability in multilingual documents. Supports Vim and VSCode.

63
annotation-abuse
annotation-abuse zmitchell HTML

Rust-like macros in Python by abusing type annotations

63
Sawmill
Sawmill benjamin-hodgson C#

Simple tools for working with immutable trees

63
parseclj
parseclj clojure-emacs Emacs Lisp

Clojure Parser for Emacs Lisp

63
ReactPropTypes-Plugin
ReactPropTypes-Plugin dpzxsm Java

A Jetbrains Plugin for react PropTypes

62
astravel
astravel davidbonnet JavaScript

👟 Tiny and fast ESTree-compliant AST walker and modifier.

62
fe-tools
fe-tools emosheeep TypeScript

A monorepo with series of helpful tools designed for frond-ends

62
code_tokenize
code_tokenize cedricrupb Python

Fast tokenization and structural analysis of any programming language

62
GitModel
GitModel danielpatrickhug Python

Codebase topic modeling using GNNs(Node aggregation and clustering)

62
rslua
rslua sssooonnnggg Rust

Yet another Lua lexer and Lua parser for Lua 5.3 written in pure Rust.

61
relottie
relottie LottieFiles TypeScript

Lottie processor powered by plugins

61
PT.PM
PT.PM PositiveTechnologies C#

:black_small_square: An engine for searching patterns in the source code, based on Unified AST or UST. At present time C#, Java, PHP, PL/SQL, T-SQL, M...

60
ast-cli
ast-cli Checkmarx Go

A CLI project wrapping application security testing (AST) APIs

60
esfuzz
esfuzz estools CoffeeScript

fuzzer for generative testing of ECMAScript parsers

59
pg-builder
pg-builder sad-spirit PHP

Query builder for Postgres backed by SQL parser

59
glsl-transformer
glsl-transformer IrisShaders GLSL

An advanced Java library for GLSL parsing, program transformation, and printing that uses ANTLR4. Developed and maintained by @douira.

59
esast
esast syntax-tree

ECMAScript Abstract Syntax Tree format

58
protobuf-thrift
protobuf-thrift YYCoder Go

protobuf idl to thrift, and vice versa

58