parsing - LR(1) 解析,前瞻符号问题
问题描述
我理解 LR(1) 解析和前瞻符号的概念。我有练习的解决方案,但它不同意我的解决方案。
我正在尝试为以下语法填充 LR(1) 解析表:
S->xAz
S->BAx
A->Ay
A->e
B->yB
B->y
Ι 不必扩展语法,因为 S 不会出现在任何规则的任何右侧。
First(A)=y,e
First(Ax)=x,y
First(B)=y
First(Ay)=y
括号中的前瞻符号。
所以,I0 = Closure(S->.xAz($) , S->.BAx($) ) =
S->.xAz($)
S->.BAx($)
B->.yB(x,y)
B->.y(x,y)
当我尝试GOTO(0,x)我认为我应该去:
S->x.Az($)
A->.Ay(z)
A->. (z)
查找 A-> 的前瞻符号。& A->. 是的,我首先选择(z)。但是官方书籍解决方案说前瞻是(z,y)。 y 是从哪里来的?
先感谢您
解决方案
推荐阅读
- python - 用其他 numpy 数组填充 numpy 数组
- fonts - 在报表服务器上安装字体
- airflow-scheduler - 我们可以参数化从变量中动态读取的气流 schedule_interval 而不是作为 cron 表达式传递
- azure - 使用 Powershell 将文件上传到 Azure Blob 容器中的文件夹
- tortoisesvn - 如何在标签版本中更新 readme.txt 文件
- javascript - Express 单一响应解决方法
- angular - Angular FireStore:在集合上应用 snapshotChanges() 获取集合中的所有文档,快速消耗所有允许的读取操作
- python - 如何在 Python 中为唯一值赋值
- python - 无法从 Windows 7 中的命令行启动 Jupyter Notebook
- r - 去掉字符串开头的一个引号