1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
| ========================================== 请输入文法GS(一行一行的输入生成式,end表示结束): S->S+T S->T T->T*F T->F F->i F->(S) end =================直接尝试================== 首符集First是: T*F : [(, i] T : [T, (, i] F : [F, (, i] i : [i] S+T : [(, i] (S) : [(]
随符集Follow是: S : [#, ), +] T : [#, ), *, +] F : [#, ), *, +]
Select集是: T->F : [F, (, i] T->T*F : [(, i] F->(S) : [(] S->T : [T, (, i] S->S+T : [(, i] F->i : [i]
是否是LL(1)文法呢?: false =================尝试改造================== 提取公因子...
消除左递归...
处理后,首符集First是: (S)A : [(] ε : [ε] *FB : [*] (S)B : [(] +TA : [+] iA : [i] i : [i] iB : [i] (S) : [(]
处理后,随符集Follow是: A : [#, )] B : [#, ), +] S : [#, )] T : [#, ), +] F : [#, ), *, +]
处理后,Select集是: A->ε : [#, )] F->(S) : [(] T->(S)B : [(] B->*FB : [*] S->(S)A : [(] B->ε : [#, ), +] A->+TA : [+] F->i : [i] S->iA : [i] T->iB : [i]
处理后,是否是LL(1)文法呢?: true ========================================== 请输入要检查的串: i+i*i
【推导】S->iA 【匹配】i 【推导】A->+TA 【匹配】+ 【推导】T->iB 【匹配】i 【推导】B->*FB 【匹配】* 【推导】F->i 【匹配】i 【推导】B->ε 【推导】A->ε 接受!!!自顶向下分析成功!
|