acorn-to-esprima 0 eslint npm

Converts acorn tokens to esprima tokens

3 years after MIT

acorn-to-esprima

Some functions to help transform an acorn/babel ast to esprima format.

Primarily for use in babel-eslint, babel-jscs, and ast explorer

There are no dependencies (the methods were changed to pass in dependencies instead)

The current functions exposed are:

  • function attachComments(ast, comments, tokens)
    • This modifies the comments passed in.
  • function toTokens(tokens, tt)
    • tt is require("babel-core").acorn.tokTypes
    • Converts template string tokens (convertTemplateType)
    • filters out comment tokens
    • runs toToken over each token
  • function toToken(token, tt)
    • Sets token.type, token.range, and token.value
  • function toAST(ast, traverse)
    • traverse is require("babel-core").traverse;
    • traverses over the ast and makes any necessary changes (usually es6+)
  • function convertComments(comments)
    • Modifies comment.type

How to use:

Check out the parse method of https://github.com/babel/babel-eslint/blob/master/index.js

// example
exports.parse = function (code) {
  var comments = opts.onComment = [];
  var tokens = opts.onToken = [];

  var ast;
  try {
    ast = parse(code, {
        locations: true,
        ranges: true
    });
  } catch (err) { throw err; }

  tokens.pop();
  ast.tokens = acornToEsprima.toTokens(tokens, tt);

  acornToEsprima.convertComments(comments);
  ast.comments = comments;
  acornToEsprima.attachComments(ast, comments, ast.tokens);

  acornToEsprima.toAST(ast, traverse);

  return ast;
}

Related Repositories

acorn

acorn

A small, fast, JavaScript-based JavaScript parser ...

jsx

jsx

The JSX specification is a XML-like syntax extension to ECMAScript. ...

astexplorer

astexplorer

A web tool to explore the ASTs generated by various parsers. ...

espree

espree

An Esprima-compatible JavaScript parser ...

node-falafel

node-falafel

transform the ast on a recursive walk ...


Top Contributors

hzoo evocateur benmosher jmm mickalot

Releases

-   v2.0.8 zip tar
-   v2.0.7 zip tar
-   v2.0.6 zip tar
-   v2.0.5 zip tar
-   v2.0.4 zip tar
-   v2.0.3 zip tar
-   v2.0.2 zip tar
-   v2.0.1 zip tar
-   v2.0.0 zip tar
-   v1.0.7 zip tar
-   v1.0.6 zip tar
-   v1.0.5 zip tar
-   v1.0.4 zip tar
-   v1.0.3 zip tar
-   v1.0.2 zip tar
-   v1.0.1 zip tar
-   v1.0.0 zip tar