Как выдать ошибку (во время генерации) в ветке по умолчанию переключателя шаблона? - PullRequest
0 голосов
/ 28 июня 2018

Я хочу убедиться, что мой переключатель шаблона вызывается только с тех узлов, которые он может обработать. Если он используется с нераспознанной концепцией, я бы хотел, чтобы при генерации кода произошла ошибка. Есть ли способ выбросить ошибки времени генерации из шаблонов?


Примечание. Обходное решение, которое я использовал, - это генерирование неверного вывода, что приведет к ошибке в строке, например:

default: <T  "unknown command: " + $COPY_SRC$[null]  T>

, который затем выдаст ошибку типа

textgen error: 'No textgen for Draw.structure.Fill' in [rightExpression] Fill null[847086916112855242] in Draw.sandbox@0

когда Fill - это концепция, не распознаваемая коммутатором.

1 Ответ

0 голосов
/ 28 июня 2018

Вместо значения по умолчанию, которое имеет следствие, вы можете определить «ПРАВИЛО УДАЛИТЬ» и затем сообщить об ошибке там:

template switch operationsSwitch extends <none>                              

parameters                                                                   
<< ... >>                                                                    

  null-input message: <none>                                                 

  cases:                                                                     

        ...                                                     


  default: DISMISS TOP RULE error : operation  not supported by generator

Это приведет к появлению ошибки в окне сообщений, и пользователь / разработчик может щелкнуть сообщение, чтобы перейти к узлу ввода и коммутатору, который не смог найти соответствие оттуда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...