Parsing 使用解析表跟踪输入字符串的解析
我们的教授从来没有抽出时间在课堂上教我们这些材料,现在我们有了家庭作业。谷歌似乎把我引向了正确的方向,但我想确保我做对了(当然) 我们得到了以下语法,并被要求根据它制作一个解析表:Parsing 使用解析表跟踪输入字符串的解析,parsing,tree,grammar,parse-tree,Parsing,Tree,Grammar,Parse Tree,我们的教授从来没有抽出时间在课堂上教我们这些材料,现在我们有了家庭作业。谷歌似乎把我引向了正确的方向,但我想确保我做对了(当然) 我们得到了以下语法,并被要求根据它制作一个解析表: 1. S -> ABe 2. A -> dB 3. A -> aS 4. A -> c 5. B -> AS 6. B -> b 我的解析表: _| a | b | c | d | e | # S|ABe| |ABe|ABe| | A|aS | | c |
1. S -> ABe
2. A -> dB
3. A -> aS
4. A -> c
5. B -> AS
6. B -> b
我的解析表:
_| a | b | c | d | e | #
S|ABe| |ABe|ABe| |
A|aS | | c |dB | |
B|AS | b |AS |AS | |
现在我们被告知:
“使用解析表,为输入提供解析跟踪
字符串dbbe。给出未使用的输入字符串、堆栈和输出
(规则编号的顺序)在每次迭代开始时。”
在我的互联网搜索中,我找到了以下示例:
资料来源:
它看起来就像是在语法中给出的每一种可能性,直到与字符串匹配为止
以下是我的想法:
这个怎么样?我理解得对吗?我只是引用了语法;不是我的解析表..我如何使用我的解析表进行跟踪
我仍然不确定这意味着什么:
给出未使用的输入字符串、堆栈和输出(规则序列
在每次迭代开始时
这是他所寻找的要点(不包括输出;他不在乎那一个):
堆栈:输入字符串:
S#dbbe#ABe
ABe#dbbe#db
dbBe#dbBe#
Stack: Input String:
S# dbbe# <- S->ABe
ABe# dbbe# <- A->db
dbBe# dbbe# <- Pop off matching 'd' at beginning of stack and string
bBe# bbe# <- Pop off the matching 'b's...
Be# be# <- B->b
be# be# <- Pop off 'b's...
e# e# <- Pop off 'e's...
# # <- Reaching this point on both the stack and input means the input was valid