パスカル文法をチェックするための再帰下降構文解析の記述について1つの質問があります。私は例えばこのコードを持っています:
a := c ;
a、cが変数であることがわかります。:=および; -は端末です。この表現を確認できます。しかし、私がこのようなsmthを持っている場合:
a := c + 1 - d ;
この式の再帰下降構文解析の書き方に問題があります。
最初の例では、C#で次のように記述しました。
if ((!parsing(current_token, "var")) || (!current_token, ":=")) || ( !parsing(current_token, "var") && !parsing(current_token, "const") ) || (!current_token, "term"))) show_error();
2番目の例をどのように書くことができますか?ありがとう。