UNPKG

630 BJavaScriptView Raw
1var util = require('util');
2var esprima = require('esprima');
3var syntax = require('./syntax');
4var traverse = require('./traverse');
5
6exports.parse = function parse(code) {
7 var options = {
8 //loc: true,
9 range: true,
10 token: true,
11 comment: true,
12 };
13
14 try {
15 var ast = esprima.parse(code, options);
16 } catch (err) {
17 throw new Error(err.message + ' in ' + global.currentFilename);
18 }
19
20 //console.log(util.inspect(ast, false, null, true));
21 ast = new syntax.Program(ast.body, ast.comments);
22
23 traverse(ast, syntax.factory);
24 //console.log(util.inspect(ast, false, null, true));
25 return ast;
26}
27