Анализатор кода Scala (не компилятор) - PullRequest
6 голосов
/ 20 октября 2011

Мне нужно создать конвертер из Scala на другой язык.Я ищу синтаксический анализатор кода Scala, который преобразует код в синтаксическое дерево без компиляции.

1 Ответ

14 голосов
/ 20 октября 2011

Позвольте мне упростить задачу: невозможно сгенерировать AST Scala-программы с помощью одного парсера. Это абсолютно необходимо для запуска typer, а это означает вывод типа и последствия.

После этого вы можете делать все, что захотите. Но эти первые несколько этапов компилятора (четыре в самых последних версиях, считая typer) необходимы.

По совпадению, это фазы, выполняемые компилятором представления , который используется в Scala IDE для Eclipse . Мне кажется, что это может быть идеальным интерфейсом для вас.

ENSIME также использует его , который, по-видимому, является лучшим источником информации о нем, и вы также можете взглянуть на Scala Refactoring инструмент, поскольку он также использует AST компилятора.

Наконец, вы можете попробовать скомпилировать код с помощью -Ybrowse:typer, чтобы увидеть дерево после typer. Используйте -Xshow-phases, чтобы отобразить существующие фазы, или -Xprint:typer, чтобы напечатать «источник» после typer (или любой другой фазы).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...