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 (1635)

progex
progex ghaffarian Java

PROGEX (Program Graph Extractor); a cross platform tool for extracting graphical program representations from software source code

90
Babel-traverse-api-doc
Babel-traverse-api-doc RecluseXU

非官方自行编写@Babel/traverse API文档

90
PhpCodeArcheology
PhpCodeArcheology PhpCodeArcheology PHP

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

88
code-to-tree
code-to-tree micl2e2 C

A runtime-free MCP server that converts source code into AST🌲, regardless of language.

88
aws-sdk-js-codemod
aws-sdk-js-codemod aws TypeScript

Codemod scripts to update AWS SDK for JavaScript APIs.

88
asty
asty asty-org Go

Converts golang AST to JSON and JSON to AST

88
language-rust
language-rust harpocrates Haskell

Parser and pretty-printer for the Rust language

87
intellij-thrift
intellij-thrift fkorotkov Java
87
node-filing-cabinet
node-filing-cabinet dependents JavaScript

Get the file location associated with a dependency/partial's path

87
ts-transform-css-modules
ts-transform-css-modules longlho TypeScript

Extract css class names from required css module files for TypeScript

86
xcode-ast-dump
xcode-ast-dump keith Python

Dump the AST of your Swift Xcode project

86
stutter
stutter mkirchner C

Implement a Lisp, in C, from scratch, no libs

86
logicstamp-context
logicstamp-context LogicStamp TypeScript

A Context Compiler for TypeScript. Deterministic, diffable architectural contracts and dependency graphs for AI coding workflows.

85
deps-report
deps-report pichillilorenzo JavaScript

Generate reports about dependencies and dependents of your JavaScript/TypeScript files through an AST. It supports import and require statements.

84
Jasm
Jasm jumanji144 Java

Post modern age integration focused jvm bytecode assembler

84
DoubleX
DoubleX Aurore54F Python

Statically Detecting Vulnerable Data Flows in Browser Extensions at Scale

83
ast_ninja
ast_ninja arjan Erlang

The Elixir AST explorer

82
ImpactGuard
ImpactGuard daedalus Python

ImpactGuard — Lightweight multi-language API impact analyzer

82
Hippo
Hippo HippoPHP PHP

PHP standards checker.

81
esrecurse
esrecurse estools JavaScript

AST recursive visitor

80
JSRETK
JSRETK SeanPesce JavaScript

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

80
rector-doctrine
rector-doctrine rectorphp PHP

Rector upgrade rules for Doctrine

80
code_summarization_public
code_summarization_public wanyao1992 Python

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

79
jroff
jroff roperzh JavaScript

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

79
goparsify
goparsify vektah Go

golang parser-combinator library

79
actuallyexplain
actuallyexplain freenandes TypeScript

actuallyEXPLAIN is a visualizer that helps you understand logical intent in complex PostgreSQL queries in a diagram and dictionarized form.

79
MarkdownSyntax
MarkdownSyntax hebertialmeida Swift

☄️ A Type-safe Markdown parser in Swift.

77
redot
redot redotjs PEG.js

Graphviz dot file processor powered by plugins based on @unifiedjs

77
java-ast
java-ast pascalgn TypeScript

Java Parser for JavaScript/TypeScript (based on antlr4ts)

77
nix-ast
nix-ast z1-0 Haskell

A Nix library for parsing, inspecting, and transforming AST

77
CricLang
CricLang manthanguptaa Go

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

77
lpegrex
lpegrex edubart Lua

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

76
deobshell
deobshell thewhiteninja Python

Powershell script deobfuscation using AST in Python

75
astra
astra alfasoftware Java

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

74
github-ast-viewer
github-ast-viewer lukehorvat JavaScript

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

71
giulia
giulia thatsme Elixir

A persistent, local-first AI development daemon built in Elixir/OTP. AST-level code intelligence, Property Graph, runtime BEAM introspection, and sema...

71
ravi-compiler
ravi-compiler dibyendumajumdar C

Parser and compiler for Ravi and Lua

71
Rock
Rock Champii Rust

Native language with Rust & LLVM

71
estree-toolkit
estree-toolkit sarsamurmu TypeScript

Tools for working with ESTree AST

71
method_log
method_log freerange Ruby

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

70
jspicl
jspicl jspicl TypeScript

A Javascript to PICO-8 Lua transpiler

70
mack
mack tryfabric TypeScript

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

70
relottie
relottie LottieFiles TypeScript

Lottie processor powered by plugins

68
batchql
batchql matthiasak JavaScript

Don't just graphql, batchql!

67
eval-estree-expression
eval-estree-expression jonschlinkert JavaScript

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

67
drupal-rector
drupal-rector palantirnet PHP

A developer utility for automatically upgrading deprecated code for Drupal 9

66
gotype
gotype wzshiming Go

Golang source code parsing, usage like reflect package

66
mkgendocs
mkgendocs davidenunes Python

Markdown documentation generator from Google docstrings

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
md-padding
md-padding harttle TypeScript

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

65