我有一个关于编写递归下降解析来检查帕斯卡语法的问题。例如,我有此代码:
a := c ;
我看到 a,c 是变量。:= 和 ; - 是终端。这个表达式我可以检查。但是,如果我有这样的东西:
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();
我该如何写第二个例子?谢谢。