TypeScript: получить синтаксическое дерево

Я уже читал "весь интернет ", но может'Не найти примеров получения синтаксического дерева (как в Esprima) из источника TypeScrypt. Я имею в виду, как я могу получить объект, как это (Эсприма Парсер пример)

{
    "type": "Program",
    "body": [
        {
            "type": "VariableDeclaration",
            "declarations": [
                {
                    "type": "VariableDeclarator",
                    "id": {
                        "type": "Identifier",
                        "name": "answer"
                    },
                    "init": {
                        "type": "BinaryExpression",
                        "operator": "*",
                        "left": {
                            "type": "Literal",
                            "value": 6,
                            "raw": "6"
                        },
                        "right": {
                            "type": "Literal",
                            "value": 7,
                            "raw": "7"
                        }
                    }
                }
            ],
            "kind": "var"
        }
    ]
}

из кода JavaScript

var answer = 6 * 7;

только для исходного текста TypeScript?

Постскриптум Очень надеюсь на вашу помощь, потому что не хочу писать свой ужасный велосипед)

P.P.S. Я думаю, что lib файлы typescript.ts (.js) и typescriptServices.ts (.js) мне помогут, но я не знаю как :(

решаемая

Большое спасибо пользователю Стив Фентон. Вот мой код, если кто-то заинтересован в:

// uses
var typeScriptLS =  new Harness.TypeScriptLS();
var ServicesFactory = new Services.TypeScriptServicesFactory();
var serviceShim = ServicesFactory.createLanguageServiceShim(typeScriptLS);

// add lib.d.ts
var _libText = window.document.getElementById('lib.d.ts').innerText;
typeScriptLS.addScript('lib.d.ts', _libText.replace(/\r\n?/g,"\n"), true);

// add greeter.ts
var _sourceText = window.document.getElementById('greeter.ts').innerText;
typeScriptLS.addScript('greeter.ts', _sourceText.replace(/\r\n?/g,"\n"), true);

// script name
var _scriptName = 'greeter.ts';
// get syntax tree
var _st = serviceShim.languageService.getSyntaxTree(_scriptName);
//console.log(_st);
console.log(JSON.stringify(_st, "", 2));

Ответы на вопрос(4)

Ваш ответ на вопрос