Я разрабатываю некоторые средства проверки RTL в Specman E и использую преобразование типов для обработки аргумента командной строки.
Код выглядит следующим образом:
if(get_symbol("SWITCH").as_a(uint) > 10) {
do something;
};
В командной строке есть параметр SWITCH=10. Проблема в том, что тест не проходит, если нет переключателя с ошибкой.
*** Error: Looking for a number but found 'an empty string'
Как я могу избежать этой ошибки? Есть ли способ дать какое-то значение по умолчанию оператору приведения, чтобы всякий раз, когда он обрабатывает нуль, он вместо этого возвращал ноль? Конечно, я могу сначала проверить, является ли строка нулевой, и только потом продолжить. Но я хочу избежать этой дополнительной строки и посмотреть, смогу ли я поиграть с as_a
.
Спасибо.