Spec-Zone.ru › Haskell 9

Language.Haskell.TH.Quote

Safe Haskell Безопасно
Язык Haskell2010

Содержание

  • Для обратной совместимости

Описание

Template Haskell поддерживает квазицитирование, что позволяет пользователям создавать фрагменты программ путём прямого написания конкретной синтаксической конструкции. Квазицитировщик — это по сути функция, которая принимает строку в качестве аргумента и возвращает AST Template Haskell. Этот модуль определяет тип QuasiQuoter, который задаёт квазицитировщик q, который может быть вызван с помощью синтаксиса [q| ... string to parse ... |], когда включена расширение языка QuasiQuotes, а также некоторые вспомогательные функции для работы с квазицитировщиками. Обратите внимание: этот пакет не определяет никаких парсеров, это ваша задача.

тип QuasiQuoter

Конструкторы

QuasiQuoter

Поля

  • quoteExp :: Строка -> Q Выражение
  • quotePat :: Строка -> Q Шаблон
  • quoteType :: Строка -> Q Тип
  • quoteDec :: Строка -> Q [Объявление]

quoteFile :: QuasiQuoter -> QuasiQuoter Источник

quoteFile принимает QuasiQuoter и поднимает его к одному, который считывает данные из файла. Например, предположим, что asmq — это квазицитировщик ассемблерного языка, так что вы можете написать [asmq| ld r1, r2 |] как выражение. Тогда, если вы определите asmq_f = quoteFile asmq, то [asmq_f|foo.s|] будет читать данные из файла "foo.s" вместо строки.

Для обратной совместимости

dataToQa :: (Quote m, Data a) => (Имя -> k) -> (Литерал -> m q) -> (k -> [m q] -> m q) -> (forall b. Data b => b -> Возможно (m q)) -> a -> m q

dataToExpQ :: (Quote m, Data a) => (forall b. Data b => b -> Возможно (m Выражение)) -> a -> m Выражение

dataToPatQ :: (Quote m, Data a) => (forall b. Data b => b -> Возможно (m Шаблон)) -> a -> m Шаблон

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/9.12.1/docs/libraries/template-haskell-2.23.0.0-22c1/Language-Haskell-TH-Quote.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API