Похоже, синтаксис квазикавычек изменился и теперь принимает 4 аргумента [ ссылка ]. Кто-нибудь уже использовал его? Спасибо. Я просто хочу создать что-то действительно очень простое, и примеры в Интернете сейчас не будут работать.
Заранее спасибо.
Похоже, синтаксис квазикавычек изменился и теперь принимает 4 аргумента [ ссылка ]. Кто-нибудь уже использовал его? Спасибо. Я просто хочу создать что-то действительно очень простое, и примеры в Интернете сейчас не будут работать.
Заранее спасибо.
Каждая часть QuasiQuoter
— это просто функция, которая принимает строку (содержимое квази-кавычки) и возвращает соответствующее значение в монаде Q
. Если ваш квазицитатор не поддерживает использование в некоторых из этих контекстов, просто верните ошибку, например:
someQuoter = QuasiQuoter { quoteType = const $ fail "type context unsupported"
, -- etc ...
}
Метод fail
вызывает report True
, что приводит к ошибке компилятора. Это почти правильное поведение.
В основном изменения заключаются в том, что теперь вы можете создавать квазикавычки для типов и объявлений (в дополнение к выражениям и шаблонам).
Было бы нормально установить для полей типа/объявления значение error "This quasiquoter doesn't support splicing types/declarations"
, если вы не хотите их использовать.
undefined
? (Не уверен, что это работает, очень мало опыта с квази) - person alternative   schedule 27.07.2011