編譯原理 詞法分析 掃瞄(Scanning)

2021-10-04 00:03:05 字數 606 閱讀 7200

從左向右逐行掃瞄源程式的字元,識別出各個單詞,確定單詞的型別。將識別出的單詞轉換成統一的機內表示——詞法單元(token)形式

token:《種別碼,屬性值》

單次型別

種別種別碼

1關鍵字

program,if,else,then,…

一詞一碼

2標識碼

變數名,陣列名,記錄名,過程名,…

多詞一碼3常量

整型,浮點型,字元型,布林型,…

一型一碼

4運算子

算術(+ - * /),關係(> < == !=),邏輯(& | ~ )

一詞一碼 或 一型一碼

5界限符

;()= …

一詞一碼

由於標識碼事先未知,故使用多詞一碼。為了區別不同的標識碼,使用token的第二個分量——屬性值來存放不同的標識碼的字面值。

例:詞法分析後得到的token序列

輸入 while(vaue!=100)

輸出:

單詞token序列

while

(value

!=100

)< rp, - >

編譯原理詞法分析

編譯原理實驗一 詞法分析練習 include include include define tokenmax 100 define progmax 1000 define k esc 27 void analytics 詞法分析 void scanner 輸入掃瞄 bool isletter cha...

詞法分析(編譯原理)

詞法分析 英語 lexical analysis 是電腦科學中將字串行轉換為單詞 token 序列的過程。進行詞法分析的程式或者函式叫作詞法分析器 lexical analyzer,簡稱lexer 也叫掃瞄器 scanner 詞法分析器一般以函式的形式存在,供語法分析器呼叫。完成詞法分析任務的程式稱...

編譯原理詞法分析

1 注意識別符號和無符號整數的重複問題,本人採用map解決。2 cin ch自動忽略空白字元。include include include include using namespace std struct pairs int isboundaries char ch return 3 case...