2014-02-04 2 views
0

В настоящее время я пытаюсь использовать машинописный компилятор из javascript. Я получаю объект типа SyntaxTree, который я могу распечатать как строку, но как я могу ходить по дереву и посещать каждый токен? В настоящее время я немного застрял, потому что я не могу найти документацию об этом.TypeScript walk the SyntaxTree

ответ

3

Когда у вас уже есть объект TypeScript.SyntaxTree, вы довольно близко!

Al вы должны сделать, это создать пользовательский класс, который расширяет TypeScript.SyntaxWalker или один из классов, которые распространяются это нравится: DepthLimitedWalker или PositionTrackingWalker

Так класс выглядит следующим образом:

export class TSWalker extends TypeScript.PositionTrackingWalker { 
} 

И вызовите синтаксисTree.sourceUnit(). Accept (новый TSWalker()); Теперь вы можете переопределить такие функции, как: public visitMemberFunctionDeclaration (node: TypeScript.MemberFunctionDeclarationSyntax) и сделать то, что вы хотите! Другие вещи, которые вы можете переопределить, можно найти здесь: http://typescript.codeplex.com/SourceControl/latest#src/compiler/syntax/syntaxVisitor.generated.ts Обратите внимание на приведенные выше работы с 0.9.5, но они все равно должны работать на ветке разработки машинописного текста.

+0

Спасибо! Проблема в том, что когда я пытаюсь наследовать от TypeScript.PositionTrackingWalker, я получаю каждый раз ошибку времени выполнения JavaScript, что машинописный шрифт не определен strangly – Sebastian

Смежные вопросы