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

deobshell
deobshell thewhiteninja Python

Powershell script deobfuscation using AST in Python

70
method_log
method_log freerange Ruby

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

69
goparsify
goparsify vektah Go

golang parser-combinator library

69
ravi-compiler
ravi-compiler dibyendumajumdar C

Parser and compiler for Ravi and Lua

69
ts-evaluator
ts-evaluator wessberg TypeScript

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

68
progex
progex ghaffarian Java

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

68
stutter
stutter mkirchner C

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

68
batchql
batchql matthiasak JavaScript

Don't just graphql, batchql!

67
MarkdownSyntax
MarkdownSyntax hebertialmeida Swift

☄️ A Type-safe Markdown parser in Swift.

67
ast_ninja
ast_ninja arjan Erlang

The Elixir AST explorer

67
redot
redot redotjs PEG.js

Graphviz dot file processor powered by plugins based on @unifiedjs

67
mkgendocs
mkgendocs davidenunes Python

Markdown documentation generator from Google docstrings

67
drupal-rector
drupal-rector palantirnet PHP

A developer utility for automatically upgrading deprecated code for Drupal 9

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
Rock
Rock Champii Rust

Native language with Rust & LLVM

65
ReactPropTypes-Plugin
ReactPropTypes-Plugin dpzxsm Java

A Jetbrains Plugin for react PropTypes

64
annotation-abuse
annotation-abuse zmitchell HTML

Rust-like macros in Python by abusing type annotations

62
jspicl
jspicl jspicl TypeScript

A Javascript to PICO-8 Lua transpiler

62
fe-tools
fe-tools emosheeep TypeScript

A monorepo with series of helpful tools designed for frond-ends

62
clang-plugins-demo
clang-plugins-demo nsumner C++

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

61
parseclj
parseclj clojure-emacs Emacs Lisp

Clojure Parser for Emacs Lisp

60
translate-readme
translate-readme dephraiim JavaScript

Translate Github Readme to any other Language

60
PT.PM
PT.PM PositiveTechnologies C#

:black_small_square: An engine for searching patterns in the source code, based on Unified AST or UST. At present time C#, Java, PHP, PL/SQL, T-SQL, M...

59
GitModel
GitModel danielpatrickhug Python

machine code+i git matrix + user

59
eval-estree-expression
eval-estree-expression jonschlinkert JavaScript

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

59
code_tokenize
code_tokenize cedricrupb Python

Fast tokenization and structural analysis of any programming language

59
java-ast
java-ast urish TypeScript

Java Parser for JavaScript/TypeScript (based on antlr4ts)

58
about-Vue
about-Vue Leo-lin214

:notebook_with_decorative_cover: Vue 源码的探讨和学习

56
astra
astra alfasoftware Java

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

56
scalajson
scalajson mdedetrich Scala

ScalaJSON - JSON for Scala, currently contains minimal AST

55
asty
asty asty-org Go

Converts golang AST to JSON and JSON to AST

55
glsl-transformer
glsl-transformer IrisShaders GLSL

An advanced Java library for GLSL parsing, program transformation, and printing that uses ANTLR4. Developed and maintained by @douira.

55
static-analysis
static-analysis pen4uin

静态分析

55
esfuzz
esfuzz estools CoffeeScript

fuzzer for generative testing of ECMAScript parsers

54
Chiffon
Chiffon polygonplanet JavaScript

A small ECMAScript parser, tokenizer and minifier written in JavaScript.

54
gotype
gotype wzshiming Go

Golang source code parsing, usage like reflect package

54
rslua
rslua sssooonnnggg Rust

Yet another Lua lexer and Lua parser for Lua 5.3 written in pure Rust.

54
smlfmt
smlfmt shwestrick Standard ML

A custom parser/auto-formatter for Standard ML

54
coAST
coAST coala CSS

Universal and language-independent abstract syntax tree

54
toast
toast Fanatics Go

Plugin-driven CLI utility for code generation using Go source as IDL

53
mack
mack tryfabric TypeScript

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

53
graphql-ast-types
graphql-ast-types imranolas JavaScript

Functional helpers for working with a GraphQL AST

52
konan
konan egoist JavaScript

find all require/import calls by walking the AST

52
charmd
charmd littletof JavaScript

A simple, extendable markdown renderer for your terminal.

52
Sawmill
Sawmill benjamin-hodgson C#

Simple tools for working with immutable trees

51
php-ast-reverter
php-ast-reverter tpunt PHP

Reverts the php-ast AST back into (somewhat) PSR-compliant code

50
sast
sast shawnbot JavaScript

Parse CSS, Sass, SCSS, and Less into a unist syntax tree

50
Neslib.Clang
Neslib.Clang neslib Pascal

libclang for Delphi

50
lpegrex
lpegrex edubart Lua

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

50
astravel
astravel davidbonnet JavaScript

👟 Tiny and fast ESTree-compliant AST walker and modifier.

49