Re[14]: Являются ли макросы свидетельством недостаточной выр
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.07.07 14:25
Оценка:
Здравствуйте, lomeo, Вы писали:

VD>>Это вопрос для konsoletyper-а, конечно. Насколько я знаю у него есть два варианта. Один с внешним файлом грамматики (был написан ранее), а второй с макросом. Второй вариант это чистый DSEL. Первый — нет. Но оба варианта используют немерловые варианты (алгеброические типы) для представления граматических элементов. Это и позволяет от делить формальную грамматику от прикладного кода.


L>То, что я видел было только во внешнем файле .bnf кажется, отсюда и вопрос. Насчёт json-а ты не ответил — это пример совсем маленький если тебя интересует запись в Parsec -- могу нарисовать.


Откровенно говоря я не знаю что такое json. Но наверно пойдет.

L>2konsoletyper (если читаешь) — а как у тебя DSEL выглядет в коде немерле? можно пример?


Грамматика была в виде глобального метаатрибута. Что-то типа:
[assembly: BNF(lexer
  {
      Поперли := описывать | правила;
        ...
    })]
[assembly: BNF(parser
  {
      Поперли := описывать | правила;
        ...
    })]


При этом изменение грамматики автоматически перестраивает генерируемые алгеброические типы, так что сразу доступен комплит-ворд и диагностика ошибок (без какой либо добполниетльной роботы по этому поводу).
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.