Кто-либо знает о хорошей ссылке для дизайна DSL? [закрытый]

SQL*Plus действительно говорит Вам таблицу, которая не существует. Например:

SQL> select
  2     *
  3  from
  4     user_tables a,
  5     non_existent_table b
  6  where
  7     a.table_name = b.table_name;
   non_existent_table b
   *
ERROR at line 5:
ORA-00942: table or view does not exist

Здесь это показывает, что название недостающей таблицы и номера строки в SQL-операторе, где ошибка происходит.

Точно так же в коротком SQL-операторе Вы видите, что звездочка выделяет название неизвестной таблицы:

SQL> select * from user_tables a, non_existent_table b where a.table_name = b.table_name;
select * from user_tables a, non_existent_table b where a.table_name = b.table_name
                             *
ERROR at line 1:
ORA-00942: table or view does not exist

С точки зрения Вашего вопроса, я предполагаю причину, сообщение об ошибке не включает название таблицы, то, что само сообщение об ошибке должно быть статическим текстом. Номер строки и местоположение в строке ошибки ясно пасуются назад к SQL*Plus (так или иначе).

8
задан Doug Knesek 18 November 2009 в 03:04
поделиться

4 ответа

Это начало моей оценки, так как книга все еще дорабатывается, но DSL в действии , http://www.manning.com/ghosh , кажется хорошим.

Вы также можете посмотреть Создание доменно-специфических языков в Boo , http://www.manning.com/rahien .

2
ответ дан 5 December 2019 в 11:25
поделиться

Вам может понравиться новая книга Мартина Фаулера Domain Specific Languages ​​. Работа над ним еще не завершена, и большая часть ее доступна в Интернете. Он предназначен быть независимым от языка.

Ниже приведены некоторые презентации RubyConf, которые я нашел полезными (концепции, по крайней мере, должны соответствовать Clojure):

8
ответ дан 5 December 2019 в 11:25
поделиться

Шаблоны реализации языка Теренс Парр, создатель Antlr и Шаблон строки , возможно, лучшие инструменты для создания синтаксических анализаторов и лексеров.

Книга в настоящее время находится в стадии «бета», но ее все еще хорошо читают. Если вы купите его, вы получите обновления, а также финальную версию.

3
ответ дан 5 December 2019 в 11:25
поделиться

Похоже, вы описываете внешний DSL. Для этого вам необходимо настроить синтаксический анализатор.

У вас есть два варианта: написать свой собственный (что может быть сложно) или использовать существующую систему, такую ​​как ANTLR , для определения грамматики. Это Java, поэтому он должен быть совместим с Clojure.

2
ответ дан 5 December 2019 в 11:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: