Re: как разобрать в макросе выражение
От: VladD2 Российская Империя www.nemerle.org
Дата: 15.12.11 14:56
Оценка:
Здравствуйте, Аноним, Вы писали:

А>t(x) {x}


Без введения синтаксиса — это будет некорректное выражение. Так как t(x) — это вызов функции. За ним не может идти блок.

С введением синтаксиса так:
macro Xxx(expr1, expr2)
  syntax ("t", "(", expr1, ")", expr2)
{
  match (expr2)
  {
    | <[ { ..$содержимео_блока } ]> => ОК делаем что нужно
    | _ => Message.Error(expr2.Location, "Expected block.")
  }
}
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.