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

qone
qone dntzhang JavaScript

.NET LINQ in JavaScript

459
refactor
refactor isidentical Python

AST-based fragmental source code refactoring toolkit for Python

459
hissp
hissp gilch Python

It's Python with a Lissp.

448
TatSu
TatSu neogeny Python

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

443
tree-sitter-language-pack
tree-sitter-language-pack xberg-io Rust

Comprehensive tree-sitter grammar compilation with polyglot bindings — Rust, Python, Node.js, Go, Java, Ruby, Elixir, PHP, C#, WASM, Dart, Kotlin-Andr...

443
ratel-core
ratel-core ratel-rust Rust

High performance JavaScript to JavaScript compiler with a Rust core

441
protoc-gen-gotemplate
protoc-gen-gotemplate moul Go

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

441
HRDevHelper
HRDevHelper patois Python

HexRays ctree visualization plugin

441
sorcery
sorcery alexmojaki Python

Dark magic delights in Python

429
elm-analyse
elm-analyse stil4m Elm

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

416
detective
detective browserify JavaScript

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

415
i18nize-react
i18nize-react Ghost---Shadow JavaScript

Internationalize react apps within a lunch break

406
decorator
decorator arjan Elixir

Function decorators for Elixir

406
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

397
pytago
pytago nottheswimmer Python

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

397
abcoder
abcoder cloudwego Go

deep, reliable and confidential coding-context

385
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

369
bblfshd
bblfshd bblfsh Go

A self-hosted server for source code parsing

369
llvm-guide-zh
llvm-guide-zh zy445566 C++

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

363
ast
ast kotlinx Java

Generic AST parsing library for kotlin multiplatform

358
lines
lines TomasVotruba PHP

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

352
pgsql-ast-parser
pgsql-ast-parser oguimbal TypeScript

Yet another simple Postgres SQL parser

347
exhaustive
exhaustive nishanths Go

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

343
react-ast
react-ast clayrisser TypeScript

render abstract syntax trees with react

338
kataw
kataw kataw TypeScript

An 100% spec compliant ES2022 JavaScript toolchain

336
math-engine
math-engine dengsgo Go

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

333
tsutils
tsutils ajafff TypeScript

utility functions for working with typescript's AST

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.

325
reshape
reshape reshape JavaScript

:diamond_shape_with_a_dot_inside: transform html with javascript plugins

316
mcp-server-tree-sitter
mcp-server-tree-sitter wrale Python

MCP Server for Tree-sitter

311
valast
valast hexops Go

Convert Go values to their AST

311
goql
goql fzerorubigd Go

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

307
sql-parser
sql-parser florajs JavaScript

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

306
self_cell
self_cell Voultapher Rust

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

305
ttsc
ttsc samchon Go

A `typescript-go` toolchain for compiler-powered plugins + type-safe execution + 800x faster linter + codegraph reducing 90% AI tokens

299
excellent_migrations
excellent_migrations Artur-Sulej Elixir

An Elixir tool for checking safety of database migrations.

299
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.

292
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.

289
js-x-ray
js-x-ray NodeSecure TypeScript

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

286
py2puml
py2puml lucsorel Python

Generate PlantUML class diagrams to document your Python application.

280
bellybutton
bellybutton hchasestevens Python

Custom Python linting through AST expressions

279
klara
klara usagitoneko97 Python

Automatic test case generation for python and static analysis library

268
ucast
ucast stalniy TypeScript

Conditions query translator for everything

267
esprima-python
esprima-python Kronuz Python

ECMAScript parsing infrastructure for multipurpose analysis

267
typo3-rector
typo3-rector sabbelasichon PHP

Rector for TYPO3

261
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...

259