Цитируется из вики :
void term(void) {
factor();
while (sym == times || sym == slash) {
getsym();
factor();
}
}
void expression(void) {
if (sym == plus || sym == minus)
getsym();
term();
while (sym == plus || sym == minus) {
getsym();
term();
}
}
Используется void
тип возврата для каждого правила,
в таком случае, как узнать, провалена ли конкретная ветка или нет?
ИМО, каждое правило должно использовать логический тип возвращаемого значения, чтобы указывать, будет ли эта ветка неудачной или успешной.
Это правильно?