Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/cowchimp/awesome-ast

A curated list of awesome AST resources
https://github.com/cowchimp/awesome-ast

List: awesome-ast

Last synced: about 2 months ago
JSON representation

A curated list of awesome AST resources

Awesome Lists containing this project

README

        

# Awesome AST [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)

> A curated list of awesome AST resources

*Inspired by the [awesome](https://github.com/sindresorhus/awesome) list thing.*

## JavaScript

### Parsers

- [ESTree spec](https://github.com/estree/estree)
- [Esprima](https://github.com/jquery/esprima)
- [Acorn](https://github.com/ternjs/acorn)
- [Babylon](https://github.com/babel/babylon)
- [Espree](https://github.com/eslint/espree)
- Other specs
- [Shift](https://github.com/shapesecurity/shift-parser-js)

### Traversal

- [estraverse](https://github.com/estools/estraverse)
- [esquery](https://github.com/estools/esquery)
- [node-source-walk](https://github.com/mrjoelkemp/node-source-walk)
- [ESLint](https://eslint.org)
- [Awesome ESLint](https://github.com/dustinspecker/awesome-eslint)
- [Writing a custom ESLint rule to spot undeclared props hiding in plain sight](http://blog.cowchimp.com/writing-a-custom-eslint-rule-to-spot-undeclared-props)

### Manipulating

- [falafel](https://github.com/substack/node-falafel)
- [Babel](https://github.com/babel/babel)
- [Awesome Babel](https://github.com/babel/awesome-babel)
- [Babel Handbook](https://github.com/thejameskyle/babel-handbook)
- [babel-codemod](https://github.com/square/babel-codemod)
- [jscodeshift](https://github.com/facebook/jscodeshift)
- [awesome jscodeshift](https://github.com/sejoker/awesome-jscodeshift)
- [Codemod that conservatively converts `var` to `const` or `let`](https://github.com/cpojer/js-codemod/blob/master/transforms/no-vars.js)

### Code Generation

- [escodegen](https://github.com/estools/escodegen)
- [recast](https://github.com/benjamn/recast)

### Editors/IDEs

- [ASTExplorer.app](https://github.com/JamieMason/astexplorer.app)

### Talks

- [Hiking Through the JavaScript Forest](https://channel9.msdn.com/Blogs/seattlejs/2016-01-14-02) ([Slides](https://speakerdeck.com/xjamundx/hiking-through-the-javascript-forest))
- [The hidden benefits of static analysis](https://www.youtube.com/watch?v=3ZqTvexCtZM)
- [AST for Beginners](https://www.youtube.com/watch?v=CFQBHy8RCpg)
- [Harnessing The Power of Abstract Syntax Trees by Jamund Ferguson](https://www.youtube.com/watch?v=8uOXIM4giH8) ([Slides](https://speakerdeck.com/xjamundx/harnessing-the-power-of-abstract-syntax-trees))
- [Master the Art of the AST and Take Control of Your JS](https://www.youtube.com/watch?v=2W9tUnALrLg) ([Slides](https://speakerdeck.com/cowchimp/master-the-art-of-the-ast-full-stack-fest-2017))
- [AST - The Only True Tool for Building Javascript](https://www.youtube.com/watch?v=fF_jZ7ErwUY)
- [Evolving Complex Systems Incrementally | JSConf EU 2015](https://www.youtube.com/watch?v=d0pOgY8__JM)
### Slides
- [Writing custom Babel and ESLint Plugins](https://slides.com/kentcdodds/a-beginners-guide-to-asts#/)
- [Fantastic ASTs and Where To Find Them](https://slides.com/craigspence/fantastic-asts-and-where-to-find-them#/)
- [Javascript Tran](https://slides.com/briandipalma/javascript-tran#/)
- [Code Transformation and Linting Workshop](https://slides.com/kentcdodds/asts-workshop#/)
- [Hidden Gems of TypeScript Compiler](https://slides.com/vogloblinsky/hidden-gems-of-typescript-compiler#/)
- [What the AST](https://speakerdeck.com/dkundel/sinnerschrader-tech-session-18-what-the-ast)
- [AST: Awesome Super Tool](https://speakerdeck.com/leoasis/ast-awesome-super-tool)

## Contribute

Contributions welcome!

## License

[![CC0](http://i.creativecommons.org/p/zero/1.0/88x31.png)](http://creativecommons.org/publicdomain/zero/1.0/)

To the extent possible under law, [cowchimp](https://github.com/cowchimp) has waived all copyright and related or neighboring rights to this work.