如何使用具有 epsilon 的语法在 SLR(1) 解析器中解析输入字符串?

问题描述 投票:0回答:1

这是我的语法:

S → (S)S | ε

而我的输入字符串,我想使用 SLR(1) 进行解析:

()()

我尝试使用这个问题中指定的方法制作DFA,但我无法解析它:(

SLR(1)涉及解析器和epsilon

这是我做的DFA 这是我的DFA,字迹不好请见谅

parsing compiler-construction grammar theory lr-grammar
1个回答
0
投票

你的 DFA 对我来说看起来不错,但它只是 LR(0) 自动机。为了制作 SLR(1) 自动机/解析器,您需要每个非终结符的 1 符号前瞻(即

S
)。这将告诉解析器何时必须减少到
S
。 (为了做到这一点,您的增强生产应该有一个输入结束符号。)

© www.soinside.com 2019 - 2024. All rights reserved.