我正在嘗試爲一個語法編寫一個簡單的解析器。解析器不需要創建分析樹,只需要識別句子是否與語法相匹配。到目前爲止,我有以下的謂詞,採用DCG符號:編寫序言解析器
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],[])。我應該得到一個真正的迴應,但我得到一個錯誤的迴應。缺少什麼導致了這一點?感謝您的幫助。
您可以使用trace/0來查找錯誤 – whd