Я пытаюсь программно использовать/встроить Ceylon Typechecker для анализа исходного кода Ceylon. В этом случае я хочу получить доступ ко всей информации, которую обычно использует компилятор. Но я не собираюсь компилировать и не собираюсь добавлять зависимость от компилятора.
Мне кажется, что точка входа main.Main в ceylon/typechecker/src/main/Main.java не является подходящей точкой входа для этого варианта использования (получение типизированного дерева и прикрепленных моделей), потому что эта информация, которая была собранные посетителями за три прохода чекера, отбрасываются, и печатаются только ошибки.
Итак, мой вопрос:
Как я могу разобрать и проверить тип единицы компиляции, а затем получить 1. типизированное синтаксическое дерево и 2. связанные объекты модели типов, с которыми посетители анализа сталкиваются в дереве, которые связаны с деревом.
отредактировано:
С моей стороны была (и есть) некоторая путаница по поводу трех разных AST.
В README на ceylon /ceylon.ast сказано:
¨ ... ceylon.ast.core – классы Ceylon, представляющие Ceylon AST. Pure Ceylon (независимый от серверной части). ... ceylon.ast.redhat — преобразует AST ceylon.ast.core из + в компилятор RedHat (AST ceylon-spec, а также содержит функции для компиляции AST ceylon.ast.core из строки кода (с использованием RedHat компилятор) ... ¨.
Итак, есть 3 AST: 1. Созданный antlr, 2. ceylon.ast.core и 3. ceylon.ast.redhat. Почему?