Child pages
  • Quasi-quotation
Skip to end of metadata
Go to start of metadata

Использование

Чтобы использовать квазицитирование необходимо:

  1. Изготовить с помощью макроатрибута MakeSplicable синтаксический модуль, поддерживающий квази-цитирование для некоторого языка:
    Макрос MakeSplicable для каждого модуля создаст в том же пространстве имен новый с префиксом Splicable. Так же, создать spliceable
  2. К целевому проекту добавить ссылку на макросборку Nira.Quote.dll.
  3. В макроатрибуте перечислить правила, которые будут использоваться для цитат:
  4. Теперь, открыв пространство имен Nitra.Quote, можно использовать синтаксические макросы quote и quote match

Макрос quote позволяет изготавливать AST

Макрос quote match позволяет выполнять сопоставление с образцом:

Именование параметров

Имена параметров цитат начинаются с префикса $ и выводятся из названий соответствующих полей AST. К элементам списков дописывается суффикс Item, к разделителям списков - Separator. Имена для элементов кортежей (последовательностей) получают в качестве суффикса свой индекс, начинающийся с нуля.

  • No labels