関数の宣言と関数の使用法に関するバイソン文法の例を誰かが挙げて、宣言と使用法の引数の数が異なる場合にパーサーがエラーを生成するようにすることはできますか?
1 に答える
2
そのような決定は、文脈自由文法では行うことができません。つまり、Bison が使用する「純粋な」文法 (「純粋な」とは、記号を含む規則のみを含み、アクションが組み込まれていない文法を意味します) に書き込むことは不可能です。
タスクを達成するには、シンボル テーブルを使用して、その関数の宣言と使用の間で関数の引数の数に関する情報を伝達する適切な文法規則にセマンティック アクションを追加する必要があります (宣言規則では、次のエントリを追加します)。記号テーブル、および関数使用規則で引数の数を確認します)。
従来、このようなチェックはセマンティック分析の一部と見なされ、多くの場合、構文分析 (解析) に続く別のステップで行われます。
于 2015-11-10T11:44:04.737 に答える