rllparser.txt
来自「这是我们老师给我们的例子」· 文本 代码 · 共 535 行 · 第 1/2 页
TXT
535 行
BoolOp -><=
<=
ArithExpr ->MulExpr ArithExprPrime
MulExpr ->SimpleExpr MulExprPrime
SimpleExpr ->num
num
MulExprPrime ->ε
ε
ArithExprPrime ->ε
ε
)
then
Stmt ->AssigStmt
AssigStmt ->id = ArithExpr ;
id
=
ArithExpr ->MulExpr ArithExprPrime
MulExpr ->SimpleExpr MulExprPrime
SimpleExpr ->id
id
MulExprPrime ->ε
ε
ArithExprPrime ->- MulExpr ArithExprPrime
-
MulExpr ->SimpleExpr MulExprPrime
SimpleExpr ->id
id
MulExprPrime ->ε
ε
ArithExprPrime ->ε
ε
;
else
Stmt ->AssigStmt
AssigStmt ->id = ArithExpr ;
id
=
ArithExpr ->MulExpr ArithExprPrime
MulExpr ->SimpleExpr MulExprPrime
SimpleExpr ->id
id
MulExprPrime ->ε
ε
ArithExprPrime ->+ MulExpr ArithExprPrime
+
MulExpr ->SimpleExpr MulExprPrime
SimpleExpr ->id
id
MulExprPrime ->/ SimpleExpr MulExprPrime
/
SimpleExpr ->num
num
MulExprPrime ->ε
ε
ArithExprPrime ->ε
ε
;
Stmts ->Stmt Stmts
Stmt ->IfStmt
IfStmt ->if ( BoolExpr ) then Stmt else Stmt
if
(
BoolExpr ->ArithExpr BoolOp ArithExpr
ArithExpr ->MulExpr ArithExprPrime
MulExpr ->SimpleExpr MulExprPrime
SimpleExpr ->id
id
MulExprPrime ->ε
ε
ArithExprPrime ->ε
ε
BoolOp ->==
==
ArithExpr ->MulExpr ArithExprPrime
MulExpr ->SimpleExpr MulExprPrime
SimpleExpr ->id
id
MulExprPrime ->ε
ε
ArithExprPrime ->ε
ε
)
then
Stmt ->AssigStmt
AssigStmt ->id = ArithExpr ;
id
=
ArithExpr ->MulExpr ArithExprPrime
MulExpr ->SimpleExpr MulExprPrime
SimpleExpr ->id
id
MulExprPrime ->ε
ε
ArithExprPrime ->- MulExpr ArithExprPrime
-
MulExpr ->SimpleExpr MulExprPrime
SimpleExpr ->id
id
MulExprPrime ->ε
ε
ArithExprPrime ->ε
ε
;
else
Stmt ->AssigStmt
AssigStmt ->id = ArithExpr ;
id
=
ArithExpr ->MulExpr ArithExprPrime
MulExpr ->SimpleExpr MulExprPrime
SimpleExpr ->id
id
MulExprPrime ->ε
ε
ArithExprPrime ->- MulExpr ArithExprPrime
-
MulExpr ->SimpleExpr MulExprPrime
SimpleExpr ->id
id
MulExprPrime ->/ SimpleExpr MulExprPrime
/
SimpleExpr ->num
num
MulExprPrime ->ε
ε
ArithExprPrime ->ε
ε
;
Stmts ->Stmt Stmts
Stmt ->IfStmt
IfStmt ->if ( BoolExpr ) then Stmt else Stmt
if
(
BoolExpr ->ArithExpr BoolOp ArithExpr
ArithExpr ->MulExpr ArithExprPrime
MulExpr ->SimpleExpr MulExprPrime
SimpleExpr ->id
id
MulExprPrime ->ε
ε
ArithExprPrime ->ε
ε
BoolOp ->>
>
ArithExpr ->MulExpr ArithExprPrime
MulExpr ->SimpleExpr MulExprPrime
SimpleExpr ->num
num
MulExprPrime ->ε
ε
ArithExprPrime ->ε
ε
)
then
Stmt ->AssigStmt
AssigStmt ->id = ArithExpr ;
id
=
ArithExpr ->MulExpr ArithExprPrime
MulExpr ->SimpleExpr MulExprPrime
SimpleExpr ->id
id
MulExprPrime ->ε
ε
ArithExprPrime ->- MulExpr ArithExprPrime
-
MulExpr ->SimpleExpr MulExprPrime
SimpleExpr ->num
num
MulExprPrime ->ε
ε
ArithExprPrime ->ε
ε
;
else
Stmt ->AssigStmt
AssigStmt ->id = ArithExpr ;
id
=
ArithExpr ->MulExpr ArithExprPrime
MulExpr ->SimpleExpr MulExprPrime
SimpleExpr ->id
id
MulExprPrime ->ε
ε
ArithExprPrime ->+ MulExpr ArithExprPrime
+
MulExpr ->SimpleExpr MulExprPrime
SimpleExpr ->num
num
MulExprPrime ->ε
ε
ArithExprPrime ->ε
ε
;
Stmts ->Stmt Stmts
Stmt ->IfStmt
IfStmt ->if ( BoolExpr ) then Stmt else Stmt
if
(
BoolExpr ->ArithExpr BoolOp ArithExpr
ArithExpr ->MulExpr ArithExprPrime
MulExpr ->SimpleExpr MulExprPrime
SimpleExpr ->id
id
MulExprPrime ->ε
ε
ArithExprPrime ->ε
ε
BoolOp -><
<
ArithExpr ->MulExpr ArithExprPrime
MulExpr ->SimpleExpr MulExprPrime
SimpleExpr ->num
num
MulExprPrime ->ε
ε
ArithExprPrime ->ε
ε
)
then
Stmt ->AssigStmt
AssigStmt ->id = ArithExpr ;
id
=
ArithExpr ->MulExpr ArithExprPrime
MulExpr ->SimpleExpr MulExprPrime
SimpleExpr ->id
id
MulExprPrime ->ε
ε
ArithExprPrime ->+ MulExpr ArithExprPrime
+
MulExpr ->SimpleExpr MulExprPrime
SimpleExpr ->num
num
MulExprPrime ->ε
ε
ArithExprPrime ->ε
ε
;
else
Stmt ->AssigStmt
AssigStmt ->id = ArithExpr ;
id
=
ArithExpr ->MulExpr ArithExprPrime
MulExpr ->SimpleExpr MulExprPrime
SimpleExpr ->id
id
MulExprPrime ->ε
ε
ArithExprPrime ->- MulExpr ArithExprPrime
-
MulExpr ->SimpleExpr MulExprPrime
SimpleExpr ->num
num
MulExprPrime ->ε
ε
ArithExprPrime ->ε
ε
;
Stmts ->ε
ε
}
$
Parsing ended
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?