Игрушечный SQL-образный DSL
От: Danila_a Россия http://ib-soft.ru
Дата: 01.02.12 15:53
Оценка:
Разбираюсь с макросистемой racket'a. Пишу SQL-образный DSL
Хочу проверять поля в where-clause на наличие у сущности, для которой делается запрос. И делать это на этапе компиляции.
Сейчас сущность объявляется как
(define-entity user 
  user_table (id name))

Что разворачивается в

(define entity 
  (hash 'table 'user_table
        'fields '(id name)))


И проверка работает только в runtime.
Т.е. при попытке обратится из syntax-case приводит к
reference to an identifier before its definition: user phase: 1 (which cannot access the run-time definition)
Как бы выйти из этой ситуации?
Использовать для определения сущности define-for-syntax?
racket scheme
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.