Язык Nemerle. Часть 5 - Макросы Nemerle (beta)
От: VladD2 Российская Империя www.nemerle.org
Дата: 23.09.11 20:01
Оценка: 15 (2)
Я закончил работу над 5-й частью посвященной макросам:
http://www.rsdn.ru/article/nemerle/Nemerle-macros-intro.rsdnml.xml
Автор(ы): Чистяков Владислав Юрьевич
Дата: 22.09.2011
Данная часть посвящена макросам Nemerle.


Просьба поглядеть и высказать свои замечания.

В этой версии основные арфаграфические ашипки исправлены, так что если заметите их, то сообщайте и о них (в такой объемной работе их не пропустить невозможно).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Язык Nemerle. Часть 5 - Макросы Nemerle (beta)
От: catbert  
Дата: 23.09.11 22:04
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Я закончил работу над 5-й частью посвященной макросам:

VD>http://www.rsdn.ru/article/nemerle/Nemerle-macros-intro.rsdnml.xml
Автор(ы): Чистяков Владислав Юрьевич
Дата: 22.09.2011
Данная часть посвящена макросам Nemerle.


VD>Просьба поглядеть и высказать свои замечания.


"Макросы уровня выражения используются для генерации кода внутри тел метода и для расширения синтаксиса выражений." (тела?)

"во время работы компилятора командной строки, в котором тела методов обрабатываются ровно один раз" Разве при возникновении ошибки компилятор не делает повторный проход?

другим вызовом этого же (или другого макроса). скобка не на месте
Re: Язык Nemerle. Часть 5 - Макросы Nemerle (beta)
От: CodingUnit Россия  
Дата: 27.09.11 04:42
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Я закончил работу над 5-й частью посвященной макросам:

VD>http://www.rsdn.ru/article/nemerle/Nemerle-macros-intro.rsdnml.xml
Автор(ы): Чистяков Владислав Юрьевич
Дата: 22.09.2011
Данная часть посвящена макросам Nemerle.


VD>Просьба поглядеть и высказать свои замечания.


VD>В этой версии основные арфаграфические ашипки исправлены, так что если заметите их, то сообщайте и о них (в такой объемной работе их не пропустить невозможно).


Нашел ошибку в статье, в конце при описании запуска компилятора на отладку с помощью response файла из ide есть ошибка, параметры в файле нельзя задавать через слэш, /debug, нужно везде писать -debug и тп, иначе компилятор выдаст ошибку.
Re: Язык Nemerle. Часть 5 - Макросы Nemerle (beta)
От: calc.exe Россия  
Дата: 08.10.11 14:57
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>В этой версии основные арфаграфические ашипки исправлены, так что если заметите их, то сообщайте и о них (в такой объемной работе их не пропустить невозможно).


Название раздела и текст с ошибкой:

Дополнительные параметры макроса

Token – токен (лексема). Подробнее см. раздел лексический анализ в Wikipedia. Примерами токенов являются ключевые слова (for, match, class), идентификаторы (например, имена переменных), операторы, скобки, литералы («"строка"», «42»). Тонены в Nemerle 1.х «сворачиваются» в группы. Есть следующие типы групп: LooseGroup, QuoteGroup (квази-цитата), SquareGroup (квадратные скобки), BracesGroup (фигурные скобки) и RoundGroup (круглые скобки). LooseGroup объединяет ряд идущих друг за другом токенов. Остальные объединяют токены, заключенные в тот или иной тип скобок. Таким образом, описывая параметр как Token, вы получаете не один токен, а (возможно) иерархию токенов. Это позволяет создавать сложные синтаксические расширения, не подчиняющиеся синтаксису Nemerle, но соответствующие лексическим правилам Nemerle. Более подробную информацию о токенах можно почерпнуть из цикла статей "Макросы Nemerle – расширенный курс".


Сплайсы

ПРИМЕЧАНИЕ
Те кто пытается изучать код компилятора, зачастую, задают вопрос – что означает паттерн <[ @*(..$args) ]>? Этот паттерн разбирает оператор «*». Дело в том, что в AST Nemerle операторы отражаются как вызов обычный функции именем которой является имя оператор. Знак «@» позволяет преобразовать ключевое слов или оператор в допустимое имя Nemerle. Посмотрите как объявлялся макро-оператор «&&», в первой части «Язык Nemerle». Он так же был обвялен в префиксной форме, а перед его именем добавлен знак «@». Однако это не мешает применению данного оператора в инфиксной форме.


Отладка макросов

СОВЕТ
Если собрать компилятор Nemerle и интеграцию из исподников, то можно будет отлаживать не только код ваших макросов, но и код компилятора. О том, как собрать код Nemerle из исходников, написано здесь.

.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.