freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

編譯原理之詞法分析(留存版)

  

【正文】 ual ? = 記號(hào)的正規(guī)文法 (續(xù) ) Wensheng Li BUPT 2022 44/78 ? 賦值號(hào)的文法 assign_op ? :equal equal ? = ? 標(biāo)點(diǎn)符號(hào)的文法 single ? + | | * | / | ( | ) | : | ? | 。 (11) retract:過(guò)程,向前掃描指針 forward后退一個(gè)字符。 ELSE return (關(guān)鍵字的記號(hào), )。 IF (C==?=?) return(relop, GE)。 BREAK。 // end of case ?/? DEFAULT: error()。 ……} CASE 1: SWITCH (C) { CASE ?a?..?z?: cat。 %} /* 正規(guī)定義式 */ delim [ \t\n] ws {delim}+ letter [AZaz] digit [09] id {letter}({letter}|{digit})* num {digit}+(\.{digit}+)?(E[+\]?{digit}+)? %% Wensheng Li BUPT 2022 66/78 /* 規(guī)則部分 */ {ws} {/* 沒(méi)有動(dòng)作,也不返回 */} if { return(IF)。 return(RELOP)。 return(RELOP)。 – 出現(xiàn)在括號(hào)中的任何東西都直接抄寫(xiě)到詞法分析器,不作為正規(guī)定義和翻譯規(guī)則的一部分。 state=2。 GOTO loop_1。 BREAK。 ELSE { retract。 get_char。 (5) forward:字符指針,向前掃描指針。 ? 狀態(tài)之間邊的形成 – 對(duì)產(chǎn)生式 A?aB,從 A狀態(tài)到 B狀態(tài)畫(huà)一條標(biāo)記為 a的邊 – 對(duì)產(chǎn)生式 A?a,從 A狀態(tài)到終態(tài)畫(huà)一條標(biāo)記為 a的邊 – 對(duì)產(chǎn)生式 A??,從 A狀態(tài)到終態(tài)畫(huà)一條標(biāo)記為 ?的邊 Wensheng Li BUPT 2022 39/78 無(wú)符號(hào)數(shù)的右線性文法的狀態(tài)轉(zhuǎn)換圖 num num1 num2 num3 num4 num5 digits 0 2 4 digit 1 digit 3 digit 6 digit other 7 digit E E 5 +/ digit digit * other . other num ? digit num1 num1 ? digit num1 | . num2 | E num4 | ? num2 ? digit num3 num3 ? digit num3 | E num4 | ? num4 ? + digits | digits | digit num5 digits ? digit num5 num5 ? digit num5 | ? Wensheng Li BUPT 2022 40/78 詞法分析程序的設(shè)計(jì)與實(shí)現(xiàn) 步驟: 1. 給出描述該語(yǔ)言各種單詞符號(hào)的詞法規(guī)則 2. 畫(huà)出狀態(tài)轉(zhuǎn)換圖 3. 根據(jù)狀態(tài)轉(zhuǎn)換圖構(gòu)造詞法分析器 一、文法及狀態(tài)轉(zhuǎn)換圖 1. 語(yǔ)言說(shuō)明 2. 記號(hào)的正規(guī)文法 3. 狀態(tài)轉(zhuǎn)換圖 二、詞法分析程 序 的構(gòu)造 三、詞法分析程 序 的實(shí)現(xiàn) 1. 輸出形式 2. 設(shè)計(jì)全局變量和過(guò)程 3. 編制詞法分析程 序 Wensheng Li BUPT 2022 41/78 一、文法及狀態(tài)轉(zhuǎn)換圖 ? 語(yǔ)言說(shuō)明 標(biāo)識(shí)符 :以字母開(kāi)頭的、后跟字母或數(shù)字組成的符號(hào)串。 ELSE IF (向前指針在右半?yún)^(qū)的終點(diǎn) ) { 讀入字符串 , 填充左半?yún)^(qū) 。 ? 可以加強(qiáng)編譯程 序 的可移植性 – 在詞法分析程 序 中處理特殊的或非標(biāo)準(zhǔn)的符號(hào)。 eof … Wensheng Li BUPT 2022 15/78 測(cè)試指針的過(guò)程 (1) IF (向前指針在左半?yún)^(qū)的終點(diǎn) ) { 讀入字符串 , 填充右半?yún)^(qū) 。 機(jī)內(nèi)表示 外部表示 構(gòu)詞規(guī)則 ? 記號(hào)的種類(lèi) Wensheng Li BUPT 2022 19/78 記號(hào)的屬性 ? 詞法分析程序在識(shí)別出一個(gè)記號(hào)后,要把與之有關(guān)的信息作為它的屬性保留下來(lái)。 ? 注釋頭符號(hào)的文法 note ? / star star ? * 記號(hào)的正規(guī)文法 (續(xù) ) Wensheng Li BUPT 2022 45/78 狀態(tài)轉(zhuǎn)換圖 讀去注釋狀態(tài) 錯(cuò)誤處理狀態(tài) digit E other * 3 5 digit 2 digit 4 digit 7 digit digit . E 6 +/ digit other * other * 0 letter 1 letter / digit other * 8 = other * 9 = other * = : 10 = other * + / / * / ( / ) / 。 (12) reserve:函數(shù),查保留字表,若此函數(shù)的返回值為 0,則表示 token中的字符串是標(biāo)識(shí)符,否則為保留字。 BREAK。 ELSE { retract。 CASE ?。 } //end of switch 編制詞法分析器(續(xù)) Wensheng Li BUPT 2022 58/78 編制詞法分析器(方法二) token=??。 state=1。 } then { return(THEN)。 } “=” { yylval=GE。 } “=” { yylval=LE。} CASE 2: ……… } } Wensheng Li BUPT 2022 59/78 軟件工具 LEX ? 使用 LEX的流程 : LEX源程序 LEX編譯器 C編譯器 或 字符流源程序 記號(hào)序列 ,可以作為獨(dú)立運(yùn)行的詞法分析器 Wensheng Li BUPT 2022 60/78 說(shuō)明部分 %% 翻譯規(guī)則 %% 輔助過(guò)程 主要內(nèi)容 一、 LEX源程序 1. 說(shuō)明部分 2. 翻譯規(guī)則 3. 輔助過(guò)程 二、 LEX的工作原理 1. LEX的工作過(guò)程 2. 處理二義性問(wèn)題的兩條規(guī)則 3. LEX工作過(guò)程舉例 Wensheng Li BUPT 2022 61/78 一、 LEX源程序 —— ? 包括: – 變量說(shuō)明 – 標(biāo)識(shí)符常量說(shuō)明 – 正規(guī)定義 ? 正規(guī)定義中的名字可在翻譯規(guī)則中用作正規(guī)表達(dá)式的成分 ? C語(yǔ)言的說(shuō)明必須用分界符 “ %{ ”和 “ }% ”括起來(lái)。 CASE?0?..?9?: cat。 IF (C==?/?) BREAK。 CASE ?+? : return(?+?, )。 ELSE IF (C==??) return(relop, NE)。 SWITCH (C) { CASE ?a?..?z?: WHILE (letter || digit) { cat。 (4) lexemebegin:字符指針,指向輸入緩沖區(qū)中當(dāng)前單詞的開(kāi)始位置。 1 2 3 x y Wensheng Li BUPT 2022 36/78 標(biāo)識(shí)符的狀態(tài)轉(zhuǎn)換圖 ? 標(biāo)識(shí)符的文法產(chǎn)生式: id ? letter rid rid ? ? | letter rid | digit rid ? 標(biāo)識(shí)符的狀態(tài)轉(zhuǎn)換圖 0 1 2 letter/digit letter other * Wensheng Li BUPT 2022 37/78 利用狀態(tài)轉(zhuǎn)換圖識(shí)別記號(hào) ? 語(yǔ)句 DO99K= 中 標(biāo)識(shí)符 DO99K 的識(shí)別過(guò)程: 0 1 2 letter/digit letter other * 狀態(tài) 0
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1