听不懂教授在说什么。 LL(1) 解析
Can't understand what professor is saying. LL(1) parsing
我看了一遍又一遍,还是看不懂。
http://awesomescreenshot.com/09c45nhted
有几点不明白:
Epsilon 的意思,除了 "empty string"。
$ 含义
R3怎么可能?它有一个术语,它会去因子,它会去输入流中不存在的东西。
第二页的第 3 个要点
感谢任何帮助。谢谢!
Epsilon meaning, aside from "empty string"?
这个最简单的ε符号没有任何意义。
$ meaning ?
$ 可以表示输入的开始或输入的结束。但是,这意味着 end of input
作为输入的开始不能以 $ 开头,因为这样的 CFG 具有开始状态 stmt
.
How R3 is possible? It has term which would go to factor which would
go to something that is not exist in input stream.
初学者处理这种事情有问题。这是正常的,应该是。这种产生式是一种递归production.But,在解析输入时很容易解决。您可以注意到下一个产生式 R4:term_tail---> ϵ。每当替换 term_tail 不需要任何输入时,此产生式可用于处理该阶段。所以,关于你可能一直在想的事情没有无限递归......
3rd bullet point on second page?
是语法中可以跟在term_tail后面的输入字符。这句话是对第二个要点提到的问题的回答 "So what input character can be consumed if we apply R4?" 实际上,要为 term_tail 派生的输入字符串可以通过两种方式完成:-
EITHER term_tail ---> add_op term term_tail OR term_tail ---> ϵ
通过这些要点的帮助,作者试图突出 FOLLOW() 函数在自顶向下解析中的实际意义.作者的意图是评估 R4 可以应用于第 2 页顶部提到的自上而下解析的条件 "the possible input characters for which R4 can be applied?".
FOLLOW() of term_tail
结果是'$',')'。当你学习 FOLLOW() 函数的规则时,你将能够计算它。
注意(非常非常重要):-
FOLLOW() 向我们展示了可以在派生的非终端之后出现的终端。注意,这并不意味着最后一个终端派生自一个非终端。它是可以跟随它的一组终端。我们为文法中的所有非终结符定义 FOLLOW()。
我们如何计算 FOLLOW()?我们没有查看箭头右侧每个短语的第一个终端,而是找到我们的非终端位于任何箭头右侧的每个位置。然后我们寻找一些终端。
我看了一遍又一遍,还是看不懂。
http://awesomescreenshot.com/09c45nhted
有几点不明白:
Epsilon 的意思,除了 "empty string"。
$ 含义
R3怎么可能?它有一个术语,它会去因子,它会去输入流中不存在的东西。
第二页的第 3 个要点
感谢任何帮助。谢谢!
Epsilon meaning, aside from "empty string"?
这个最简单的ε符号没有任何意义。
$ meaning ?
$ 可以表示输入的开始或输入的结束。但是,这意味着 end of input
作为输入的开始不能以 $ 开头,因为这样的 CFG 具有开始状态 stmt
.
How R3 is possible? It has term which would go to factor which would go to something that is not exist in input stream.
初学者处理这种事情有问题。这是正常的,应该是。这种产生式是一种递归production.But,在解析输入时很容易解决。您可以注意到下一个产生式 R4:term_tail---> ϵ。每当替换 term_tail 不需要任何输入时,此产生式可用于处理该阶段。所以,关于你可能一直在想的事情没有无限递归......
3rd bullet point on second page?
是语法中可以跟在term_tail后面的输入字符。这句话是对第二个要点提到的问题的回答 "So what input character can be consumed if we apply R4?" 实际上,要为 term_tail 派生的输入字符串可以通过两种方式完成:-
EITHER term_tail ---> add_op term term_tail OR term_tail ---> ϵ
通过这些要点的帮助,作者试图突出 FOLLOW() 函数在自顶向下解析中的实际意义.作者的意图是评估 R4 可以应用于第 2 页顶部提到的自上而下解析的条件 "the possible input characters for which R4 can be applied?".
FOLLOW() of term_tail
结果是'$',')'。当你学习 FOLLOW() 函数的规则时,你将能够计算它。
注意(非常非常重要):-
FOLLOW() 向我们展示了可以在派生的非终端之后出现的终端。注意,这并不意味着最后一个终端派生自一个非终端。它是可以跟随它的一组终端。我们为文法中的所有非终结符定义 FOLLOW()。
我们如何计算 FOLLOW()?我们没有查看箭头右侧每个短语的第一个终端,而是找到我们的非终端位于任何箭头右侧的每个位置。然后我们寻找一些终端。