詞法分析:
乙個函式能使用的區域性變數,就從下面面的三步分析而來。具體步驟:第一步:先分析引數
第二步:再分析變數宣告
第三步:再分析函式宣告
0:
函式執行前的一瞬間,生成active object(活動物件),下稱ao1:
1.1 函式宣告的引數形成ao的屬性,值全是undefined2:1.2 接收實參,形成ao相應屬性的值。
分析變數宣告宣告宣告,var age;3:如果ao上還沒有age屬性,則新增ao屬性,值是undefined
如果ao上已有age屬性,則不做任何變化。
分析函式宣告,如:function foo(){}則把函式賦給ao.foo屬性
注:如果此前有foo屬性,則會被無情的覆蓋。
function
t2(age)
t2();
分析過程:
0:形成ao = {}
1:
1.1分析形參ao
1.2接收實參ao
2:分析變數宣告,發現ao上已有age屬性,不做任何變化。
執行過程:
ao.age = 99;
alert(age);//99
// 這題要仔細分析哦
function
t3(greet)
alert(greet);
}t3(null);
詞法分析:
0:形成ao = {}
1:
1.1分析形參 ao =
1.2接收實參ao
2:分析變數宣告,發現ao上已有greet屬性,不做任何變化。
3:分析函式宣告,被無情覆蓋,所以ao = }
執行過程:
greet = 『hello』;
alert(greet);
alert(greet);
結果當然是alert出來兩個hello。
function
a(b)
b();
}a(1);
詞法分析:
0:形成ao = {}
1:
1.1 分析形參 ao =
1.2 接收實參 ao =
2:分析變數宣告,沒有變數宣告
3:分析函式宣告,之前的ao.b屬性全部被無情覆蓋,ao = }
執行過程:
alert(b);
b(); //由作用域尋找到a函式中的b,即function,然後alert出來。
思考:如果把上面的**修改後,如下,結果又是如何?
function
a(b)
b();
}a(1);
詞法分析程式
上課沒聽啥,一邊看書,一邊做的。基本上,老師的要求是實現了,能把乙個句子 也可以是一整個程式,但還不完善,由於時間急,很多情況來不及考慮了 中的單詞項分析出它是保留字,還是識別符號,運算子等等。開始是在控制台下做得,也比較純正 lex.h ifndef lex h define lex h incl...
06 05 詞法分析
include include include define keywordsum 11 char scanin 300 scanout 300 用於接收輸入輸出檔名 file fin,fout 用於指向輸入輸出檔案的指標 char keyword keywordsum char singlewor...
詞法分析程式設計
實驗目的 1 理解詞法分析在編譯程式中的作用 2 加深對有窮自動機模型的理解 3 掌握詞法分析程式的實現方法和技術 實驗內容 對下述單詞表定義的語言設計編制乙個詞法分析器。各種單詞符號對應的種別碼如下表 單詞符號 種別編碼 begin1if 2then 3while4do 5end 6l l d 1...