2011-12-18 1 views
7

Я хотел взять v8 двигатель и трансформировать свой код на другом языке программирования на основе this, например, если я понимаю это правильно первый шаг я должен получить дерево разбораКак мне получить доступ к дереву разбора v8, как это сделать?

мой вопрос: я могу получить это уже с v8 или мне нужно сгенерировать его из js-кода. Что такое более простой способ?

+0

Смотрите мой SO ответ на то, что нужно сделать, это: http://stackoverflow.com/a/ 3460977/120163 –

+1

спасибо за ответ, но я нуждаюсь в нем на определенной платформе и конкретном языке, а не на «конвертировании во все». – user63898

+1

Не думаю, что вы внимательно прочитали мой ответ. Преобразовать в * один * сложно, даже если у вас есть АСТ. –

ответ

2

Сложно получить AST (Аннотированное дерево синтаксиса, дерево разбора) от самого V8, но есть много других парсеров для JavaScript, которые будут делать то, что вы ищете. Я бы рекомендовал взглянуть на Esprima (http://esprima.org/), который является JavaScript-парсером, написанным на JavaScript. Это позволяет вам дать некоторый исходный код JavaScript и вернуть объектную версию АСТ, которую вы можете преобразовать на другой язык, если хотите (или изменить, затем преобразовать обратно в JavaScript или использовать по какой-либо другой причине).

У них есть некоторые большие онлайн демок, которые должны дать вам почувствовать, что он может сделать: http://esprima.org/demo/index.html

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