TypeScript AGPL-3.0

ast-explorer

A web tool to explore the ASTs generated by parsers.

S

sxzz

Dernière activité 28 sept. 2026
sxzz/ast-explorer

566

étoiles

74

forks

5

issues ouvertes

acornastbabelcsseslintexplorerflowhermeshtmlmarkdownsqlsvelteswcvuewxmlyaml

Ce README est souvent en anglais.

AST Explorer

AST Explorer - A web tool to explore the ASTs generated by parsers.

Feel free to add more languages and parsers via PR!

Screenshot

Features

  • 🦾 Enable code highlighting, suggestions, and formatting with Monaco Editor.
  • 🤩 Support most popular front-end languages and parsers.
  • 🗒️ Save your code via URL. No database, no server downtime.
  • 🐙 Customize parser version via CDN, e.g., @babel/parser alpha.
  • 🌈 Set custom parser options with a GUI.
  • 🌚 Good-looking dark mode theme.
  • 📱 Even compatible with mobile devices.

Languages and Parsers

More parsers via web-tree-sitter, see tree-sitter parsers.

URL Encode Algorithm

The input code and options are stored in the URL as a hash fragment, which is the string following the # symbol and is not transmitted to the server.

Implementation

const code = 'code'
const parserId = 'acorn'
const optionsString = JSON.stringify({
  ecmaVersion: 'latest',
  sourceType: 'module',
})
const serialized = utoa(
  // utoa, or compress() if want to compress the data
  JSON.stringify({
    c: code,
    p: parserId,
    o: optionsString,
  }),
)
const url = `https://ast-explorer.dev/#${serialized}`

// no compress
function utoa(data: string): string {
  return btoa(unescape(encodeURIComponent(data)))
}

// compress is optional
import { strFromU8, strToU8, unzlibSync, zlibSync } from 'fflate'
function compress(data: string) {
  const buffer = strToU8(data)
  const zipped = zlibSync(buffer, { level: 9 })
  const binary = strFromU8(zipped, true)
  return btoa(binary)
}

Contributing

To contribute to the project, see Contribution Guide.

Credits

This project references and is inspired by fkling/astexplorer, an open-source web tool for exploring the ASTs generated by various parsers.

Also, thanks to the following projects for their contributions:

Sponsors



Vercel OSS Program

License

AGPL-3.0 License © 2023-PRESENT 三咲智子

Projets similaires

TypeScript AST viewer

TypeScript
Ddsherret
1,4 k étoiles105

Run compilers interactively from your web browser and interact with the assembly

TypeScriptassemblycc-plus-plus
Ccompiler-explorer
19,1 k étoiles2,1 k

🐠 Babel is a compiler for writing next generation JavaScript.

TypeScriptastbabelcompiler
Bbabel
44 k étoiles6 k