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