lively.ast

0.7.47 • Public • Published

lively.ast Build Status

Parsing JS code into ASTs and tools to query and transform these trees.

API

main interface

  • ast.printAst
  • ast.compareAst
  • ast.pathToNode
  • ast.stringify
  • ast.parse
  • ast.parseFunction
  • ast.fuzzyParse
  • ast.nodesAt
  • ast.withMozillaAstDo

Visitors

  • ast.MozillaAST.BaseVisitor
  • ast.MozillaAST.PrinterVisitor
  • ast.MozillaAST.ComparisonVisitor
  • ast.MozillaAST.ScopeVisitor

query ast nodes

  • ast.query.knownGlobals
  • ast.query.scopes
  • ast.query.nodesAtIndex
  • ast.query.scopesAtIndex
  • ast.query.scopeAtIndex
  • ast.query.scopesAtPos
  • ast.query.nodesInScopeOf
  • ast.query.topLevelDeclsAndRefs
  • ast.query.findGlobalVarRefs
  • ast.query.findNodesIncludingLines
  • ast.query.findReferencesAndDeclsInScope
  • ast.query.findDeclarationClosestToIndex

transform asts

  • ast.transform.replace
  • ast.transform.replaceTopLevelVarDeclAndUsageForCapturing
  • ast.transform.oneDeclaratorPerVarDecl
  • ast.transform.oneDeclaratorForVarsInDestructoring
  • ast.transform.returnLastStatement
  • ast.transform.wrapInFunction

comment parsing

  • ast.comments.extractComments

code categorizer, scan code for known constructs

  • ast.codeCategorizer.findDecls

Usage

node.js

var ast = require('lively.ast'),
    parsed = ast.parse("1 + 2");
ast.printAst(parsed);
// =>
// :Program
// \-.body[0]:ExpressionStatement
//   \-.body[0].expression:BinaryExpression
//     |-.body[0].expression.left:Literal
//     \-.body[0].expression.right:Literal
...

browser

HTML: <script src="dist/lively.ast.bundle.js"></script>

JS: like above

Development

build dist

npm run build

Testing

npm test

LICENSE

MIT

Package Sidebar

Install

npm i lively.ast

Weekly Downloads

64

Version

0.7.47

License

MIT

Unpacked Size

2.59 MB

Total Files

50

Last publish

Collaborators

  • robertkrahn
  • mroeder
  • tvsmith
  • merryman