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

    Install

    npm i lively.ast

    DownloadsWeekly Downloads

    35

    Version

    0.7.47

    License

    MIT

    Unpacked Size

    2.59 MB

    Total Files

    50

    Last publish

    Collaborators

    • robertkrahn
    • mroeder
    • tvsmith
    • merryman