运算符优先级解析
Operator precedence parsing
我有一个具有以下产生式的语法:
S-> if e then S else | while e do S| 开始 L 结束
|s
L->S;大号|小号
我应该为上面的内容构建运算符优先级解析 table。但是我对如何在这里决定各种终端的优先级感到困惑。到现在为止,我们过去常常处理普通运算符(如 +、I、(、id 等)。但是如何决定呢?我用谷歌搜索找到如何使用运算符优先解析器解析 if-else 语法,但无法找到找到任何解释相同的 link。实际上,我需要使用运算符优先级和 SLR 解析器设计错误纠正例程来解析此语法。我们将不胜感激(来自《编译器设计》一书的问题,Aho Ullman)!
提前致谢!!
为想学习的人回答我自己的问题,阅读这篇文章pdf。它提出了一种对所有通用运算符按照运算符优先级解析进行解析的方法。
我有一个具有以下产生式的语法:
S-> if e then S else | while e do S| 开始 L 结束 |s
L->S;大号|小号
我应该为上面的内容构建运算符优先级解析 table。但是我对如何在这里决定各种终端的优先级感到困惑。到现在为止,我们过去常常处理普通运算符(如 +、I、(、id 等)。但是如何决定呢?我用谷歌搜索找到如何使用运算符优先解析器解析 if-else 语法,但无法找到找到任何解释相同的 link。实际上,我需要使用运算符优先级和 SLR 解析器设计错误纠正例程来解析此语法。我们将不胜感激(来自《编译器设计》一书的问题,Aho Ullman)!
提前致谢!!
为想学习的人回答我自己的问题,阅读这篇文章pdf。它提出了一种对所有通用运算符按照运算符优先级解析进行解析的方法。