詞法分析步驟

2021-08-22 14:40:06 字數 1954 閱讀 4717

詞法分析:

乙個函式能使用的區域性變數,就從下面面的三步分析而來。

第一步:先分析引數

第二步:再分析變數宣告

第三步:再分析函式宣告

具體步驟:

0:

函式執行前的一瞬間,生成active object(活動物件),下稱ao

1:

1.1 函式宣告的引數形成ao的屬性,值全是undefined

1.2 接收實參,形成ao相應屬性的值。

2:

分析變數宣告宣告宣告,var age;

如果ao上還沒有age屬性,則新增ao屬性,值是undefined

如果ao上已有age屬性,則不做任何變化。

3:

分析函式宣告,如: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...