编译原理的lr分析表 自己编写的代码。很好用的代码哦 希望对大家有帮助
2022-05-15 18:11:12 2KB LR分析表
1
设计一个给定LR分析表,输入一个句子,能由依据LR分析法判别句子的合法性。
2021-11-22 11:16:54 10KB lr分析,并判断其合法性
1
设计一个给定LR分析表,输入一个句子,能由依据LR分析表输出与句子对应的语法树。能对语法树生成过程进行模拟。(算法参见教材)
1
LR分析器工作过程算法描述: 一个LR分析器的工作过程可看成是栈里的状态序列,已规约串和输入串所构成的三元式的变化过程。分析开始时的初始三元式为 (s0, #, a1a2……an#) 其中,s0为分析器的初态;#为句子的左括号;a1a2……an为输入串;其后的#为结束符(句子右括号)。分析过程每步的结果可表示为 (s0s1……sm, #X1X2……Xm ai, ai+1……an#) 分析器的下一步动作是由栈顶状态sm和现行输入符号ai所唯一决定的。即,执行ACTION(sm,ai)所规定的动作。经执行每种可能的动作之后,三元式的变化情形是: (1) 若ACTION(sm,ai)为移进,且s = GOTO(sm,ai),则三元式变成: (s0s1……sm s, #X1X2……Xm ai, ai+1……an#) (2) 若ACTION(sm,ai)= {A→β},则按照产生式A→β进行规约。此时三元式变为 (s0s1……sm s, #X1X2……Xm A, ai ai+1……an#) 此处s = GOTO(Sm-r,A),r为β的长度,β = Xm-r+1……Xm。 (3) 若ACTION(sm,ai)为“接受”,则三元式不再变化,变化过程终止,宣布分析成功。 (4) 若ACTION(sm,ai)为“报错”,则三元式的变化过程终止,报告错误。 一个LR分析器的工作过程就是一步一步的变换三元式,直至执行“接受”或“报错”为止。
2019-12-21 22:23:04 12.74MB 编译原理实验 LR分析表 LR分析器
1