编译原理LAB2状态转换图LR(0)
2016-11-02 19:30:01 0 举报
编译原理LAB2状态转换图LR(0)是一个用于描述编译器中语法分析器的状态转换过程的有向图。它基于LR(0)算法,该算法是一种自顶向下的分析方法,可以识别上下文无关文法(Context-Free Grammar, CFG)中的语法结构。在状态转换图中,节点表示分析栈中的状态,边表示根据语法规则进行状态转换的操作。通过遍历状态转换图,可以实现对输入文法的正确解析。
作者其他创作
大纲/内容
I32:Ls - while ( Cs ) { Code · }
I55:E - E + · TT - · T * FT - · FF - · ( E )F - · idF - · num
{
}
I21/I24/I25
)
E
I36:Cb - if ( Cs ) { Code } else { · Code }…………
I12:Cb - if ( · Cs ) { Code } else { Code }Cb - if ( · Cs ) { Code }Cs - · id comparison idCs - · id comparison numCs - · num comparison num
id
(
*
I22:Cb - if ( Cs ) · { Code } else { Code }Cb - if ( Cs ) · { Code }
I134:Ls - while ( Cs ) { Code } ·
I9:Vd - int · id = E ;
I42:Cs - num comparison · num
num
I23:Ls - while ( Cs ) · { Code }
int
I51:T - T * · FF - · ( E )F - · idF - · num
I5:S - int main ( ) · { Code }
I44:Cs - id comparison num ·
=
I21:As - id = E · ;E - E · + T
main
$
;
I6:S - int main ( ) { · Code }Code - · Cb CodeCode - · Ls CodeCode - · Vd CodeCode - · As CodeCode - e · Cb - · if ( Cs ) { Code } else { Code }Cb - · if ( Cs ) { Code }Ls - · while ( Cs ) { Code }Vd - · int id = E ;Vd - · double id = E ;As - id = E ;
I11:As - id · = E ;
I56:E - E + T ·T - T · * F
Accept
I58:S - int main ( ) { Code } ·
L12/L13
I60:Code - X Code ·
I52:E - E · + TF - ( E · )
I39:Cs - id · comparison idCs - id · comparison num
I59:Code - X · Code…………
I33:Cb - if ( Cs ) { Code } · else { Code }Cb - if ( Cs ) { Code } ·
Code
X
I15:Vd - double id · = E ;
I50:T - F ·
I52:T - T * F ·
F
I27:Cb - if ( Cs ) { · Code } else { Code }Cb - if ( Cs ) { · Code }…………
double
I25:Vd - double id = E · ;E - E · + T
Cs
I16/I19/I20
I7:Cb - if · ( Cs ) { Code } else { Code }Cb - if · ( Cs ) { Code }
I37:Cb - if ( Cs ) { Code } else { Code · }
I17:Cb - if ( Cs · ) { Code } else { Code }Cb - if ( Cs · ) { Code }
I41:Cs - id comparison · idCs - id comparison · num
comparison
I29:Vd - int id = E ; ·
I19:Vd - int id = · E ;E - · E + T…………
I14:Vd - int id · = E ;
if
I10:Vd - double · id = E ;
I54:F - ( E ) ·
I13:Ls - while ( · Cs ) { Code }Cs - · id comparison idCs - · id comparison numCs - · num comparison num
I18:Ls - while ( Cs · ) { Code }
T
I0:S' - · SS - · int main ( ) { Code }
I43:Cs - id comparison id ·
I8:Ls - while · ( Cs ) { Code }
while
S
I26:As - id = E ; ·
I16:As - id = · E ;E - · E + T…………
I49:F - num ·
I20:Vd - double id = · E ;E - · E + T…………
I28:Ls - while ( Cs ) { · Code }…………
I40:Cs - num · comparison num
I4:S - int main ( · ) { Code }
I3:S - int main · ( ) { Code }
I31:Cb - if ( Cs ) { Code · } else { Code }Cb - if ( Cs ) { Code · }
I57:S - int main ( ) { Code · }
else
I30:Vd - double id = E ; ·
I35:Cb - if ( Cs ) { Code } else · { Code }
I24:Vd - int id = E · ;E - E · + T
I45:Cs - num comparison num ·
I2:S - int · main ( ) { Code }
I48:F - id ·
+
I38:Cb - if ( Cs ) { Code } else { Code } ·
I47:F - ( · E )…………
I1:S' - S ·
I46:E - T ·T - T · * F
0 条评论
下一页