Импорт внешнего AST в ANTLR - PullRequest
       9

Импорт внешнего AST в ANTLR

0 голосов
/ 04 февраля 2012

Я хочу создать инструмент обработки исходного кода Javascript с помощью ANTLR. Поскольку движок Javascript движка Mozilla Spidermonkey уже способен анализировать Javascript и выводить AST (который сам по себе является деревом объектов Javascript), все, что мне нужно, это просто использовать возможности грамматики дерева ANTLR для анализа этого AST. Мне не нужно создавать собственную грамматику синтаксического анализатора исходного кода Javascript.

Но проблема в том, как импортировать внешний AST в форму, которую может распознать древовидная грамматика ANTLR? Согласно Определяемой ссылке ANTLR , скорее всего, мне нужно будет создать свой собственный TreeAdaptor . Но какие методы я должен переопределить? AST Spidermonkey - это разнородное дерево, в котором разные типы узлов используются для разных операторов. Мне нужно вручную отобразить это разнородное дерево в виде дерева, которое ANTLR способен обрабатывать, когда для всех узлов используется один тип CommonTree .

Моим целевым языком ANTLR может быть Javascript или что угодно (поскольку AST, сгенерированный Spidermonkey, является деревом объектов Javascript).

...