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)

abstract-syntax-tree
abstract-syntax-tree buxlabs JavaScript

A library for working with abstract syntax trees.

114
cybermonday
cybermonday kiranshila Clojure

Markdown as Clojure Data

114
babel-plugin-react-persist
babel-plugin-react-persist DAB0mB JavaScript

Automatically useCallback() & useMemo(); memoize inline functions

112
rector-phpunit
rector-phpunit rectorphp PHP

Rector upgrade rules for PHPUnit

112
inmemantlr
inmemantlr julianthome Java

ANTLR as a libray for JVM based languages

110
translate-readme
translate-readme ephraimduncan JavaScript

Translate Github Readme to any other Language

110
reson
reson nexepic Rust

A high-performance tool for detecting code duplication based on Abstract Syntax Tree (AST).

110
show_ast
show_ast hchasestevens Jupyter Notebook

An IPython notebook plugin for visualizing ASTs.

109
arbor
arbor Anandb71 Rust

Graph-native code intelligence that replaces embedding-based RAG with deterministic program understanding.

108
parcera
parcera carocad Clojure

Grammar-based Clojure(script) parser

107
astviewer
astviewer titusjan Python

Python Abstract Syntax Tree viewer in Qt

105
estemplate
estemplate estools JavaScript

Proper (AST-based) JavaScript code templating with source maps support.

105
parser-series
parser-series tlaceby Go

Welcome to my comprehensive YouTube series on building a lexer/parser using the Go programming language. We will start with the basics of what lexers...

103
pyccolo
pyccolo smacke Python

Declarative instrumentation for Python.

103
ts-evaluator
ts-evaluator wessberg TypeScript

An interpreter for Typescript that can evaluate an arbitrary Node within a Typescript AST

101
elm-markdown
elm-markdown pablohirafuji Elm

Pure Elm markdown parsing and rendering

100
parser-reflection
parser-reflection goaop PHP

Parser Reflection API - Provides source code analysis without loading classes into the PHP memory

100
uaiso
uaiso ltcmelo C++

A multi-language parsing infrastructure with an unified AST

100
charly-vm
charly-vm KCreate C++

Fully parallel dynamically typed programming language

100
clickhouse-ast-parser
clickhouse-ast-parser JiamingMai Java

AST parser and visitor for ClickHouse SQL

98
stack-editor
stack-editor Cirru Cirru

[Deprecated, prefer calcit-editor]

97
sass-lint-auto-fix
sass-lint-auto-fix srowhani TypeScript

Automatically resolve s(a|c)ss linting issues

96
Headache
Headache LucasMW C

Programming Language that compiles to 8 Bit Brainfuck

96
apidom
apidom swagger-api TypeScript

Semantic parser for API specifications

96
ts-type-info
ts-type-info dsherret TypeScript

TypeScript AST and code generator [Deprecated]

95
astextract
astextract luantak Go

Convert a go file to its ast representation

94
xast
xast syntax-tree

Extensible Abstract Syntax Tree

93
clang-plugins-demo
clang-plugins-demo nsumner C++

A simple example of defining custom plugins for clang and the clang static analyzer.

92
raddsl
raddsl true-grue Python

Tools for rapid prototyping of DSL compilers

91
redux-boilerplate-helpers
redux-boilerplate-helpers ArchivedRepos JavaScript

AST-based tool for automating Redux boilerplate

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

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

90
ts-transform-css-modules
ts-transform-css-modules longlho TypeScript

Extract css class names from required css module files for TypeScript

89
GoSQLX
GoSQLX ajitpratap0 Go

High-performance SQL parser, formatter, linter & security scanner for Go - 1.5M+ ops/sec, multi-dialect, zero-copy, race-free

89
proleap-vb6-parser
proleap-vb6-parser uwol Java

ProLeap ANTLR4-based parser for Visual Basic 6.0

89
progex
progex ghaffarian Java

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

89
smlfmt
smlfmt shwestrick Standard ML

A custom parser/auto-formatter for Standard ML

89
ex_dna
ex_dna dannote Elixir

Code duplication detector for Elixir, powered by native AST analysis

88
language-rust
language-rust harpocrates Haskell

Parser and pretty-printer for the Rust language

87
intellij-thrift
intellij-thrift fkorotkov Java
87
asty
asty asty-org Go

Converts golang AST to JSON and JSON to AST

87
xcode-ast-dump
xcode-ast-dump keith Python

Dump the AST of your Swift Xcode project

86
node-filing-cabinet
node-filing-cabinet dependents JavaScript

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

86
aws-sdk-js-codemod
aws-sdk-js-codemod aws TypeScript

Codemod scripts to update AWS SDK for JavaScript APIs.

86
stutter
stutter mkirchner C

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

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
logicstamp-context
logicstamp-context LogicStamp TypeScript

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

83
ast_ninja
ast_ninja arjan Erlang

The Elixir AST explorer

82
code-to-tree
code-to-tree micl2e2 C

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

82
DoubleX
DoubleX Aurore54F Python

Statically Detecting Vulnerable Data Flows in Browser Extensions at Scale

82
Hippo
Hippo HippoPHP PHP

PHP standards checker.

81