目錄根據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主程式設計考慮 主程式的說明部分為各種 和變數安...