Возможен ли откат к другим правилам после возникновения исключения в действии semanti c? Как и в следующем (надуманном) сценарии:
var = /[a-zA-Z]+/;
keyword = 'for' | 'in';
a = var:var | keyword:keyword;
def a(ast):
if (ast.var not in symbolTable):
raise Exception()
, и когда возникает исключение, синтаксический анализ продолжается с правилом «ключевое слово». Мне известно о функции @@ ключевого слова, но я хочу объявить ключевые слова во время выполнения (мой анализатор предназначен для языка программирования с пользовательскими операторами).