acorn-to-esprima
v2.0.8
Published
Convert acorn tokens to esprima
Maintainers
Readme
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)ttisrequire("babel-core").acorn.tokTypes- Converts template string tokens (
convertTemplateType) - filters out comment tokens
- runs
toTokenover each token
function toToken(token, tt)- Sets
token.type,token.range, andtoken.value
- Sets
function toAST(ast, traverse)traverseisrequire("babel-core").traverse;- traverses over the ast and makes any necessary changes (usually es6+)
function convertComments(comments)- Modifies
comment.type
- Modifies
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;
}