37 lines
1.0 KiB
JavaScript
37 lines
1.0 KiB
JavaScript
"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);
|
|
};
|