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

cst
cst cst JavaScript

:herb: JavaScript Concrete Syntax Tree

462
refactor
refactor isidentical Python

AST-based fragmental source code refactoring toolkit for Python

461
qone
qone dntzhang JavaScript

.NET LINQ in JavaScript

458
hissp
hissp gilch Python

It's Python with a Lissp.

449
TatSu
TatSu neogeny Python

竜 TatSu generates Python parsers from grammars in a variation of EBNF

448
protoc-gen-gotemplate
protoc-gen-gotemplate moul Go

:open_file_folder: generic protocol generator based on golang's text/template (grpc/protobuf)

442
HRDevHelper
HRDevHelper patois Python

HexRays ctree visualization plugin

442
ratel-core
ratel-core ratel-rust Rust

High performance JavaScript to JavaScript compiler with a Rust core

441
sorcery
sorcery alexmojaki Python

Dark magic delights in Python

429
detective
detective browserify JavaScript

Find all calls to require() no matter how deeply nested using a proper walk of the AST

414
elm-analyse
elm-analyse stil4m Elm

A tool that allows you to analyse your Elm code, identify deficiencies and apply best practices.

414
wuchale
wuchale wuchalejs TypeScript

Compile-time i18n toolkit that requires zero code changes and produces the smallest possible bundles. Supports React, Svelte, SolidJS, Astro, and more

411
decorator
decorator arjan Elixir

Function decorators for Elixir

407
i18nize-react
i18nize-react Ghost---Shadow JavaScript

Internationalize react apps within a lunch break

406
pytago
pytago nottheswimmer Python

A source-to-source transpiler for Python to Go translation

395
abcoder
abcoder cloudwego Go

deep, reliable and confidential coding-context

391
cppparser
cppparser satya-das C++

A library to parse C/C++ source as AST

379
awesome-graal
awesome-graal neomatrix369 Shell

A curated list of awesome resources for Graal, GraalVM, Truffle and related topics

368
bblfshd
bblfshd bblfsh Go

A self-hosted server for source code parsing

368
llvm-guide-zh
llvm-guide-zh zy445566 C++

User Guides For those new to the LLVM system.(LLVM系统的新用户指南,中文翻译版)

365
ast
ast kotlinx Java

Generic AST parsing library for kotlin multiplatform

357
lines
lines TomasVotruba PHP

CLI tool for quick size measure of PHP project, used PHP features and more. Zero dependencies. Runs anywhere

355
exhaustive
exhaustive nishanths Go

Check exhaustiveness of switch statements of enum-like constants in Go source code.

348
pgsql-ast-parser
pgsql-ast-parser oguimbal TypeScript

Yet another simple Postgres SQL parser

347
ttsc
ttsc samchon Go

A typescript-go toolchain, with evidence graph

342
react-ast
react-ast clayrisser TypeScript

render abstract syntax trees with react

337
kataw
kataw kataw TypeScript

An 100% spec compliant ES2022 JavaScript toolchain

336
tsutils
tsutils ajafff TypeScript

utility functions for working with typescript's AST

331
math-engine
math-engine dengsgo Go

Mathematical expression parsing and calculation engine library. 数学表达式解析计算引擎库

331
babygo
babygo DQNEO Go

babygo👶 is a small Go compiler made from scratch, which can compile itself. It's going to be the smallest and simplest go compiler in the world.

324
reshape
reshape reshape JavaScript

:diamond_shape_with_a_dot_inside: transform html with javascript plugins

316
valast
valast hexops Go

Convert Go values to their AST

310
mcp-server-tree-sitter
mcp-server-tree-sitter wrale Python

MCP Server for Tree-sitter

309
self_cell
self_cell Voultapher Rust

Safe-to-use proc-macro-free self-referential structs in stable Rust.

307
goql
goql fzerorubigd Go

A golang source code scanner, this time in sql :)

306
sql-parser
sql-parser florajs JavaScript

Parse SQL (select) statements into abstract syntax tree (AST) and convert ASTs back to SQL.

306
excellent_migrations
excellent_migrations Artur-Sulej Elixir

An Elixir tool for checking safety of database migrations.

303
go-instrument
go-instrument nikolaydubina Go

⚡️ Automatically add Trace Spans to Go functions

299
esmangle
esmangle estools JavaScript

esmangle is mangler / minifier for Mozilla Parser API AST

296
SwiftPascalInterpreter
SwiftPascalInterpreter igorkulman Swift

Simple Swift interpreter for the Pascal language inspired by the Let’s Build A Simple Interpreter article series.

295
js-x-ray
js-x-ray NodeSecure TypeScript

JavaScript & Node.js open-source SAST scanner. A static analyser for detecting most common malicious patterns 🔬.

287
guide-to-interpreters-series
guide-to-interpreters-series tlaceby TypeScript

Contains source-code for viewers following along with my Beginners Guide To Building Interpreters series on my Youtube Channel.

286
py2puml
py2puml lucsorel Python

Generate PlantUML class diagrams to document your Python application.

283
bellybutton
bellybutton hchasestevens Python

Custom Python linting through AST expressions

279
ucast
ucast stalniy TypeScript

Conditions query translator for everything

270
klara
klara usagitoneko97 Python

Automatic test case generation for python and static analysis library

266
esprima-python
esprima-python Kronuz Python

ECMAScript parsing infrastructure for multipurpose analysis

266
typo3-rector
typo3-rector sabbelasichon PHP

Rector for TYPO3

263
gengen
gengen joeshaw Go

A Go source transformation tool for generics

259
js-sql-parser
js-sql-parser JavaScriptor JavaScript

SQL(select) parser written with jison. parse SQL into abstract syntax tree(AST) and stringify back to SQL. sql grammar follows https://dev.mysql.com/d...

258