編譯原理系列 實驗一詞法分析

2022-06-24 21:24:11 字數 1365 閱讀 2048

目錄根據pl/0語言的文法規範,編寫pl/0語言的詞法分析程式。要求:

把詞法分析器設計成乙個獨立一遍的過程。

詞法分析器的輸出形式採用二元式序列,即:(單詞種類, 單詞的值)。

【樣例輸入】

const a=10;

var b,c;

begin

read(b);

c:=a+b;

write(c)

end.

【樣例輸出】

(constsym,const)

(ident,a)

(eql,=)

(number,10)

(semicolon,;)

(varsym,var)

(ident,b)

(comma,,)

(ident,c)

(semicolon,;)

(beginsym,begin)

(readsym,read)

(lparen,()

(ident,b)

(rparen,))

(semicolon,;)

(ident,c)

(becomes,:=)

(ident,a)

(plus,+)

(ident,b)

(semicolon,;)

(writesym,write)

(lparen,()

(ident,c)

(rparen,))

(endsym,end)

(period,.)

#include#include#include#include#include#include#include#includeusing namespace std;

mapwords;

std::map::iterator it;//words的指標

void words_init()

int main()

string inputs = ins;

// 處理輸入串

int insize=inputs.length();

string word;

for(int i=0; i')else if(inputs[i]=='='){

word+=inputs[i];

cout << "(" =

else if(inputs[i]=='>'){

word=inputs[i++];

if(inputs[i]=='='){

word+=inputs[i];

cout<

編譯原理課程實驗一 詞法分析

鞏固對詞法分析的基本功能和原理的認識。能夠應用自動機的知識進行詞法分析。理解並處理詞法分析中的異常和錯誤。掌握詞法分析的基本功能,並將其實現。詞法分析程式應具有較好的可擴充套件性,應清晰明確。除對相關問題的全面考慮外,還需對區域性作一些優化考慮 如符號表 給出語言的詞法規則描述 針對這種單詞的狀態轉...

編譯實驗 一 詞法分析

編譯原理課程即將結束,開始了在校中最麻煩的實驗,編譯實驗.同在乙個系,其他班的編譯實驗分成好幾塊,簡短的文法,源 連線 詞法分析流程圖 首先要做的第一步就是寫資料結構以及完成單詞表。詞法分析的任務就是將一段程式 分割單詞,把單詞資訊寫出來。例如在 while a 2 do a a 1 中進行詞法分析...

實驗一 詞法分析

1 實驗要求 1 從源程式檔案中讀取有效字元流並將其分析識別單詞符號,轉換成二元組內部表示形式輸出。2 視覺化方式展示詞法分析識別過程或者詞法分析器工作原理 選做 3 實驗時間4學時。4 實驗完成後,要提交實驗報告 包括源程式清單 2 實驗內容 2.1主程式設計考慮 主程式的說明部分為各種 和變數安...