我目前尝试使用javascript中的typescript编译器。我得到一个SyntaxTree
类型的对象,我可以打印成一个字符串但是如何走树并访问每个令牌呢?目前我卡住了一点因为我无法找到任何关于此的文档。
答案 0 :(得分:3)
当你已经拥有一个TypeScript.SyntaxTree对象时,你非常接近!
你需要做的是创建一个自定义类,它扩展TypeScript.SyntaxWalker或扩展它的类之一:DepthLimitedWalker或PositionTrackingWalker
所以班级看起来像这样:
export class TSWalker extends TypeScript.PositionTrackingWalker {
}
并调用syntaxTree.sourceUnit()。accept(new TSWalker()); 现在你可以覆盖以下函数:public visitMemberFunctionDeclaration(node:TypeScript.MemberFunctionDeclarationSyntax)并做你想要的东西! 您可以覆盖的其他内容可以在此处找到:http://typescript.codeplex.com/SourceControl/latest#src/compiler/syntax/syntaxVisitor.generated.ts 请注意,上述内容适用于0.9.5,但仍应使用typescript develop分支。