是否有一个很好的在线资源,其中包含一些主要解析算法(LL(1)、LR(1)、LR(0)、LALR(1))的语法集合?我发现了许多属于这些家族的单独语法,但据我所知,没有什么好的资源可以让人编写大量示例语法。
有人知道这样的资源吗?
最佳答案
来自维基百科的示例
LL(1)
语法
S -> F
S -> ( S + F )
F -> a
输入
( a + a )
解析步骤
S -> "(" S "+" F ")"
-> ( "F" + F )
-> ( "a" + F )
-> ( a + "a" )
LR(0)
语法
(1) E → E * B
(2) E → E + B
(3) E → B
(4) B → 0
(5) B → 1
输入
1 + 1
解析步骤
need to build a parser table and traverse through states.
LR(1)
语法
S’ -> S S
S -> C C
C -> c C | d
输入
cd
解析步骤
large table
LALR
语法
A -> C x A | ε
B -> x C y | x C
C -> x B x | z
输入
xxzxx
解析步骤
traverse large parser table
您可能还想看看
关于parsing - LL(1)、LR(1)、LR(0)、LALR(1) 语法示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6480634/