從左向右逐行掃瞄源程式的字元,識別出各個單詞,確定單詞的型別。將識別出的單詞轉換成統一的機內表示——詞法單元(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...