有人能给我一个简短的描述,说明如何在语法中确定一件事与另一件事的优先顺序吗?我似乎无法在我的书籍或网上找到一个好的答案,尽管我很确定它非常简单。实施例
S-> B
B-> B and T | T
T-> T or F | F
F-> not F| (B)|true|false
问题是“什么是优先权”和“相对于”或“在上述语法中?”。
“和”的优先级低于“或”,但我不确定原因。
答案 0 :(得分:1)
符号B
代表and
语句,其定义包含T
or
。您可以从and
到or
,但不是相反。因此,如果您将语言语句视为堆栈,您将继续进行替换并添加到堆栈顶部,直到您最终评估整个语句,然后当您弹出项目时,您将反向并{ {1}}语句将始终位于or
之上(因此在之前进行评估)。希望这是有道理的。