123456789101112131415161718192021222324252627282930313233343536 |
- "use strict";
- var attachComments = require("./attachComments");
- var convertComments = require("./convertComments");
- var toTokens = require("./toTokens");
- var toAST = require("./toAST");
- module.exports = function (ast, traverse, tt, code) {
- // remove EOF token, eslint doesn't use this for anything and it interferes
- // with some rules see https://github.com/babel/babel-eslint/issues/2
- // todo: find a more elegant way to do this
- ast.tokens.pop();
- // convert tokens
- ast.tokens = toTokens(ast.tokens, tt, code);
- // add comments
- convertComments(ast.comments);
- // transform esprima and acorn divergent nodes
- toAST(ast, traverse, code);
- // ast.program.tokens = ast.tokens;
- // ast.program.comments = ast.comments;
- // ast = ast.program;
- // remove File
- ast.type = "Program";
- ast.sourceType = ast.program.sourceType;
- ast.directives = ast.program.directives;
- ast.body = ast.program.body;
- delete ast.program;
- delete ast._paths;
- attachComments(ast, ast.comments, ast.tokens);
- };
|