语法:自上而下和自下而上的区别? (例)
这是Grammar的后续问题:自上而下和自下而上的区别?
我从这个问题中了解到:
语法本身不是自上而下或自下而上的,解析器是
有一些语法可以被一个语法解析而不能被另一个语法解析
(谢谢Jerry Coffin
所以对于这个语法(所有可能的数学公式):
E -> E T E
E -> (E)
E -> D
T -> + | - | * | /
D -> 0
D -> L G
G -> G G
G -> 0 | L
L -> 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
这可以通过自上而下和自下而上的解析器读取吗?
你能说这是自上而下的语法还是自下而上的语法(或两者都没有)?
我问,因为我有一个功课问题,问:
“为所有语言编写自上而下和自下而上的语法......”(不同的问题)
我不确定这是否正确,因为它似乎没有自上而下和自下而上的语法。任何人都可以澄清吗?
没有找到相关结果
已邀请:
1 个回复
体悉
我特别不喜欢规则
。目前还不清楚第一个数字的开始位置和第二个数字的结尾。我会将规则实施为
另一个问题是
这与
和ѭ6conflicts冲突。事实上,这是重复的。我会将规则更改为(删除数字):
这使得语法LR1(左向递归,一个向前看)和上下文无关。这是您通常会给bison等解析器生成器提供的内容。而且由于野牛是自下而上的,这对于自下而上的解析器来说是一个有效的输入。 对于自上而下的方法,至少对于递归的体面,左递归是一个问题。您可以使用回滚,如果您愿意,但对于这些,您需要RR1(右递递一个向前看)语法。为此,请交换递归:
我不确定这回答你的问题。我认为这个问题制定得很糟糕,误导人;我写解析器以谋生......