私は文法のための簡単なパーサーを書こうとしています。パーサは構文解析ツリーを作成する必要はなく、文が文法と一致するかどうかのみを認識します。これまでのところ、私は、DCG表記を使用して、以下の述語を有する:Prologパーサーを書く
プログラム等のクエリを使用してprogram-->[].
program-->stmt_list.
stmt_list-->stmt,stmt_list.
stmt-->[id,:=],expr;[read],[id];[write],expr.
expr-->term, term_tail.
term_tail-->add_op,term,term_tail.
term_tail-->[].
term-->factor, factor_tail.
factor_tail-->mult_op, factor, factor_tail.
factor_tail-->[].
factor-->[(expr)].
factor-->[id].
factor-->[number].
add_op-->[+].
add_op-->[-].
mult_op-->[*].
mult_op-->[/].
([]、[、IDを読み取ります])。私は本当の反応を得ているはずですが、私は偽のものを得ています。これが原因で何が欠けていますか?ご協力ありがとうございました。
uはトレースを使用してエラーを調べることができます – whd