Использование
Чтобы использовать квазицитирование необходимо:
- Изготовить с помощью макроатрибута MakeSplicable синтаксический модуль, поддерживающий квази-цитирование для некоторого языка:
Макрос MakeSplicable для каждого модуля создаст в том же пространстве имен новый с префиксом Splicable. Так же, создать spliceable
- К целевому проекту добавить ссылку на макросборку Nira.Quote.dll.
- В макроатрибуте перечислить правила, которые будут использоваться для цитат:
- Теперь, открыв пространство имен Nitra.Quote, можно использовать синтаксические макросы quote и quote match
Макрос quote позволяет изготавливать AST
Макрос quote match позволяет выполнять сопоставление с образцом:
Именование параметров
Имена параметров цитат начинаются с префикса $ и выводятся из названий соответствующих полей AST. К элементам списков дописывается суффикс Item, к разделителям списков - Separator. Имена для элементов кортежей (последовательностей) получают в качестве суффикса свой индекс, начинающийся с нуля.