Отлаживать связывание и разрешение имен (резолв) можно с помощью утилиты Nitra.Visualizer.exe.
Она позволяет просматривать AST и зависимые свойства вычисленные на нем. В частности это позволяет понять причину неверного связывания или разрешения имен.
Ролик ниже демонстрирует как это делается. Так же в нем показана новая фичи — визуализация в виде диаграммы. Она доступна для любого объекта реализующего метод ToDot(). Этот метод должен возвращать представление графа в виде DSL под названием DOT. Его описание можно прочесть здесь. Данный файл компилируется в .svg, записывается в файл и открывается в приложении ассоциированном с .svg (по умолчанию — броузер). Пример сгенерированного, в ролике приведенном ниже, файла.
Немного улучшил представление для TableScope-ов. Теперь они представляются в виде таблиц (пример). В предыдущей версии каждый символ порождал отдельный прямоугольник и стрелочку. В таблицах большим числом имен это выглядело не очень хорошо.
Она позволяет просматривать AST и зависимые свойства вычисленные на нем. В частности это позволяет понять причину неверного связывания или разрешения имен.
Ролик ниже демонстрирует как это делается. Так же в нем показана новая фичи — визуализация в виде диаграммы. Она доступна для любого объекта реализующего метод ToDot(). Этот метод должен возвращать представление графа в виде DSL под названием DOT. Его описание можно прочесть здесь. Данный файл компилируется в .svg, записывается в файл и открывается в приложении ассоциированном с .svg (по умолчанию — броузер). Пример сгенерированного, в ролике приведенном ниже, файла.
Немного улучшил представление для TableScope-ов. Теперь они представляются в виде таблиц (пример). В предыдущей версии каждый символ порождал отдельный прямоугольник и стрелочку. В таблицах большим числом имен это выглядело не очень хорошо.