【发布时间】:2017-06-13 13:03:39
【问题描述】:
我想将 TypeScript 项目解析为 AST。
我可以通过以下方式解析单个文件:
import ts = require("typescript");
var fs = require('fs');
var util = require('util');
const ast = ts.createSourceFile('sample.ts', fs.readFileSync('sample.ts').toString(), ts.ScriptTarget.ES6, true);
console.log("AST:"+util.inspect(ast));
我什至可以遍历文件并按扩展名过滤文件并运行上面的代码来生成 ASt。
但是,我想以这样一种方式解析整个项目,以便将关系(如导入)保留在 AST 中。
例如:
如果 a.ts 引用来自 b.ts 的 var x 如下:
a.ts:
var y = x;
b.ts:
var x = 5;
在这种情况下,.ts 中的 x 签名应解析为:b.ts.x 或等效项。
我只希望在我一一解析 .ts 文件时在 ASs 中解决所有此类关系。
【问题讨论】:
标签: parsing typescript abstract-syntax-tree decompiler