作业十一——LL(1)文法的判断,递归下降分析程序 判断是否为LL(1)文法 选取有多个产生式的求select,只有一条产生式的无需求select 同一个非终结符之间求交集,全部判断为空后则为LL(1)文法 求FIRST集 是每条产生式右边所出现的首个终结符的集合 求FOLLOW集 是针对非终结符,找到产生式右边跟在非终结符后的终结符,#为输入串的结束符 求SELECT集 当产生式不推导出ε时,就为FIRST 当产生式推到出ε时,就为(FIRST(A->ε)-{ε})∪FOLLOW{A} 2.法…
1. 文法 G(S): (1)S -> AB (2)A ->Da|ε (3)B -> cC (4)C -> aADC |ε (5)D -> b|ε 验证文法 G(S)是不是 LL(1)文法? 解: FIRST集: FIRST(Da)={b,a} FIRST(ε)={ε} FIRST(aADC)={a} FIRST(b)={b} FOLLOW集: FOLLOW(A)=FIRST(B)+FIRST(B)+FIRST(B)+FOLLOW(C)={c,a,b,#} FOLLOW(C)…
1. 文法 G(S): (1)S -> AB (2)A ->Da|ε (3)B -> cC (4)C -> aADC |ε (5)D -> b|ε 验证文法 G(S)是不是 LL(1)文法? FIRST集: FIRST(A) = { b , a , ε} FIRST(C) = { a , ε} FIRST(D) = { b , ε} FOLLOW集: FOLLOW (A) = { c , b , a , ε} FOLLOW (C) = { # } FOLLOW (D) = {…
1. 文法 G(S): (1)S -> AB (2)A ->Da|ε (3)B -> cC (4)C -> aADC |ε (5)D -> b|ε 验证文法 G(S)是不是 LL(1)文法? 解: Select(A -> Da) = First(Da) = {b,a} Select(A -> ε) = (Follow(ε)-{ε})∪Follow(A) = {b,a,c,ε} Select(C -> aADC) = First(aADC) = {a} Sel…
1. 文法 G(S): (1)S -> AB (2)A ->Da|ε (3)B -> cC (4)C -> aADC |ε (5)D -> b|ε 验证文法 G(S)是不是 LL(1)文法? 解:因为 First(Da)={b, a} First(ε)={ε} First(aADC)={a} First(b)={b} Follow(A)={c.b.a, #} FIRST(B) FIRST(D), FIRST(C), FOLLOW(C) Follow(C)={#} Follow…
1. 文法 G(S): (1)S -> AB (2)A ->Da | ε (3)B -> cC (4)C -> aADC | ε (5)D -> b | ε 验证文法 G(S)是不是 LL(1)文法? FIRST集: FIRST(A) → { a,b } FIRST(Da) → { a,b } FIRST(ε)→{ ε } FIRST(cC)→{ a,c } FIRST(b)→{ b } FOLLOW集: FOLLOW(S)→{ # } FOLLOW(A)→{ a,b,c,#…
1. 文法 G(S): (1)S -> AB (2)A ->Da|ε (3)B -> cC (4)C -> aADC |ε (5)D -> b|ε 验证文法 G(S)是不是 LL(1)文法? FIRST(Da)={b,a} FIRST(ε)={ε} FIRST(aADC)={a} FIRST(b)={b} FOLLOW(A)={c,b,a,#} FOLLOW(C)={#,} FOLLOW(D)={a,#} SELECT(A->Da)=FIRST(Da)={b,a} SE…
递归下降程序 递归下降程序一般是针对某一个文法的.而递归下降的预测分析是为每一个非终结符号写一个分析过程,由于文法本身是递归的,所以这些过程也是递归的. 以上是前提. Sample 假如给的是正规式子,首先要做的是将其改为文法表示: \((int | float) id(,id)^*\) 以上式子为例,将其改为文法表示 \(D --> TL\) \(T-->int | float\) \(L--> L,id | id\) 然后消除其左递归 \(D --> TL\) \(T-->…
1. 文法 G(S): (1)S -> AB (2)A ->Da|ε (3)B -> cC (4)C -> aADC |ε (5)D -> b|ε 验证文法 G(S)是不是 LL(1)文法? 答: 证明:FIRST(Da) = {b, a} FIRST(ε) = {ε} FIRST(aADC) = {a} FIRST(b) = {b} FOLLOW(A) = {c, b, a, #} FOLLOW(C) = {#,} FOLLOW(D) = {a, #} SELECT(A -…
判断微信及小程序环境 1.H5页面引入jweixin-1.3.2.js 2. var ua = window.navigator.userAgent.toLowerCase(); if(ua.match(/MicroMessenger/i) == 'micromessenger'){ //判断是否是微信环境 //微信环境 wx.miniProgram.getEnv(function(res) { if (res.miniprogram) { // 小程序环境下逻辑 }else { //非小程序环…