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)

solhint
solhint protofire JavaScript

Solhint is an open-source project to provide a linting utility for Solidity code.

1.1k
js-deobfuscator
js-deobfuscator kuizuo JavaScript

An automated JavaScript deobfuscation tool based on Babel AST, with an online playground, CLI, and programmable API.

1.1k
typehole
typehole rikukissa TypeScript

TypeScript development tool for Visual Studio Code that helps you automate creating the initial static typing for runtime values

1.1k
ModiScript
ModiScript VPanjeta Python

Acche din aa gaye

1k
unist
unist syntax-tree

Universal Syntax Tree used by @unifiedjs

992
proposal-binary-ast
proposal-binary-ast tc39

Binary AST proposal for ECMAScript

989
estraverse
estraverse estools JavaScript

ECMAScript JS AST traversal functions

967
exprtk
exprtk ArashPartow C++

C++ Mathematical Expression Parsing And Evaluation Library https://www.partow.net/programming/exprtk/index.html

962
php-parser
php-parser z7zmey Go

PHP parser written in Go

958
SocratiCode
SocratiCode giancarloerra TypeScript

Enterprise-grade (40m+ lines) codebase intelligence in a zero-setup, private and local Plugin/Skill or MCP: managed indexing, hybrid semantic search,...

917
tolerant-php-parser
tolerant-php-parser microsoft PHP

An early-stage PHP parser designed for IDE usage scenarios.

895
hast
hast syntax-tree

Hypertext Abstract Syntax Tree format

892
esquery
esquery estools JavaScript

ECMAScript AST query library.

885
webassemblyjs
webassemblyjs xtuc JavaScript

Toolchain for WebAssembly

831
fantomas
fantomas fsprojects F#

FSharp source code formatter

825
graphql-go-tools
graphql-go-tools wundergraph Go

GraphQL Router / API Gateway framework written in Golang, focussing on correctness, extensibility, and high-performance. Supports Federation v1 & v2,...

822
putout
putout coderaiser JavaScript

🐊 Pluggable and configurable JavaScript Linter, code transformer and formatter with superpowers 💪: built-in support of js, jsx, ts, markdown, yaml,...

785
tiny-compiler
tiny-compiler mgechev JavaScript

A tiny evaluator and compiler of arithmetic expressions.

776
node-dependency-tree
node-dependency-tree dependents JavaScript

Get the dependency tree of a module

768
rickroll-lang
rickroll-lang Rick-Lang Python

The Rick Roll programming language is a rickroll based, process oriented, dynamic, strong, esoteric programming language. All of the keywords/statemen...

765
debundle
debundle 1egoman JavaScript

:card_file_box: A javascript debundler. Takes a Browserify or Webpack bundle and recreates the initial, pre-bundled source.

739
orgajs
orgajs orgapp JavaScript

parse org-mode content into AST

653
wakaru
wakaru pionxzh TypeScript

🔪📦 Javascript decompiler for modern frontend

639
treewalker.nvim
treewalker.nvim aaronik Lua

A neovim plugin for moving around your code in a syntax tree aware manner

604
CppAst.NET
CppAst.NET xoofx C#

CppAst is a .NET library providing a C/C++ parser for header files powered by Clang/libclang with access to the full AST, comments and macros

602
tiny-compiler
tiny-compiler zakirullin C

A tiny compiler for a language featuring LL(2) grammar. With Lexer, Parser, ASM-like codegen and VM. Complex enough to give you a flavour of how the "...

578
astroid
astroid pylint-dev Python

A common base representation of python source code for pylint and other projects

576
postcss-rs
postcss-rs postcss-rs Rust

🚀 Fast and 100% API compatible postcss replacer, built in Rust

564
php-parser
php-parser glayzzle JavaScript

:herb: NodeJS PHP Parser - extract AST or tokens

562
probe
probe probelabs Rust

AI-friendly semantic code search engine for large codebases. Combines ripgrep speed with tree-sitter AST parsing. Powers AI coding assistants with pre...

558
CodeVisualizer
CodeVisualizer DucPhamNgoc08 TypeScript

CodeVisualizer is a powerful VS Code extension that provides two main visualization capabilities: function-level flowcharts for understanding code con...

557
escope
escope estools JavaScript

Escope: ECMAScript scope analyzer

551
Reinforced.Typings
Reinforced.Typings reinforced C#

Converts C# classes to TypeScript interfaces (and many more) within project build. 0-dependency, minimal, gluten-free

549
Auditor
Auditor TheAuditorTool Python

Antidote to VibeCoding

546
martian
martian tryfabric TypeScript

Markdown to Notion: Convert Markdown and GitHub Flavoured Markdown to Notion API Blocks and RichText 🔀📝

536
ClangQL
ClangQL AmrDeveloper Rust

ClangQL is a tool that allow you to run SQL-like query on C/C++ Code instead of database files using the GitQL SDK

533
vermin
vermin netromdk Python

Concurrently detect the minimum Python versions needed to run code

515
tenko
tenko pvdz JavaScript

An 100% spec compliant ES2021 JavaScript parser written in JS

509
ast-explorer
ast-explorer sxzz TypeScript

A web tool to explore the ASTs generated by parsers.

508
vscode-blockman
vscode-blockman leodevbro TypeScript

VSCode extension to highlight nested code blocks

508
luaparse
luaparse fstirlitz JavaScript

A Lua parser written in JavaScript

495
HexraysToolbox
HexraysToolbox patois Python

Hexrays Toolbox - Find code patterns within the Hexrays ctree

484
cst
cst cst JavaScript

:herb: JavaScript Concrete Syntax Tree

463
refactor
refactor isidentical Python

AST-based fragmental source code refactoring toolkit for Python

459
qone
qone dntzhang JavaScript

.NET LINQ in JavaScript

458
hissp
hissp gilch Python

It's Python with a Lissp.

443
ratel-core
ratel-core ratel-rust Rust

High performance JavaScript to JavaScript compiler with a Rust core

440
protoc-gen-gotemplate
protoc-gen-gotemplate moul Go

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

440
HRDevHelper
HRDevHelper patois Python

HexRays ctree visualization plugin

440
TatSu
TatSu neogeny Python

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

440