1

ウィキから引用:

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ルールごとに戻り値の型を使用しており、

その場合、特定のブランチが失敗したか成功したかをどうやって知ることができますか?

IMO、各ルールはブール値の戻り値の型を使用して、このブランチが失敗したか成功したかを示す必要があります。

これは正しいです?

4

1 に答える 1

0

この例では、特別な「エラー」ルーチンがエラーの報告を担当するモデルを使用していますが、入力が有効な入力を表している場合は「true」を返し、そうでない場合は「false」を返す関数としてパーサーを定式化できます。それはちょうど2つの異なるスタイルです.

于 2011-09-20T01:22:28.417 に答える