parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Есть одна ситуация...

Sumo 24.10.2015 11:30 / 24.10.2015 11:31

... когда нам надо выдать ошибку, если в аргументе пришло значение, а не код. Так как это делают ^if, ^for и другие встроенные функции.

Я бы сделал аннотацию у параметров:
@myfor[var;from;to;code:code;separator]
# Если в code пришел не код, то Парсер вывалит исключение «параметр code должен быть кодом».
Если давать пользователю проверять, то сделать другой синтаксис:
@myfor[var;from;to;code;separator]
  ^if($code has code){...}
  ^if(^reflection:argument_has_code[code]){...}
Этот подход мне нравится меньше, потому что позволит писать функции, которые зависят от типа вызова.