Привет!
Мне нужна грамматика C для разбора циклов while. Скажем, например, мне нужно разобрать следующий код:
A = 20
B = 1
WHILE(A < 30 )
//function call
A = A + B
ENDWHILE
Мне потребуется разобрать и оценить выражения. Я выполнил несколько шагов и написал грамматику, но это не дает мне желаемого результата. Согласно приведенному выше коду, функция внутри цикла должна вызываться 10 раз после проверки условия.
Во-первых, я сохраняю значения A и B в хэш-таблице (ссылка: структура ANTLR_HASH_TABLE), и правило while выглядит примерно так:
whileStatement : 'WHILE' condExpr 'ENDWHILE'
;
Я могу хранить и получать значения из хеш-таблицы, но я застрял с вызовом функции, который должен вызываться/печататься столько раз. Я хотел бы знать, какие шаги следует выполнить, чтобы вызвать/распечатать функцию столько раз.
Любые идеи о том, как это должно быть достигнуто, будут очень полезны.