Package Exports
- acorn-to-esprima
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (acorn-to-esprima) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
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)
tt
isrequire("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
, andtoken.value
- Sets
function toAST(ast, traverse)
traverse
isrequire("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;
}