編譯原理詞法分析

2021-08-09 09:50:48 字數 1574 閱讀 4062

(1)注意識別符號和無符號整數的重複問題,本人採用map解決。

(2)cin >> ch自動忽略空白字元。

#include 

#include

#include

#include

using

namespace

std;

struct pairs

};int isboundaries(char ch) ':

return

3; case

',':

return

4; case

';':

return

5; }

return -1;

}int isoperators(char ch1)

if (ch1 == '*')

if (ch1 == '=')

return

2; return -1;

}int iskeywords(string str)

vector

result;

map uints;

map identifiers;

void judgestrs(string str)

else

else

}}void printresult()

cout

<< endl;

cout

<< "identifieres:";

for (auto it = identifiers.begin(); it != identifiers.end(); ++it)

cout

<< endl;

cout

<< "unsigned_integer:";

for (auto it = uints.begin(); it != uints.end(); ++it)

cout

<< endl;

}int main()

// 判斷是不是操作符

if (isoperators(ch) != -1)

else

if (t.rank == 1)

tempstr += '=';

pairs newope(t.category, tempr);

result.push_back(newope);

preope = 0;

}tempstr = "";

}else

if (isboundaries(ch) != -1)

else

}printresult();

// system("pause");

return

0;}

本題難度不太,分清楚各種類別的字串並進行判斷即可。

編譯原理詞法分析

編譯原理實驗一 詞法分析練習 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 詞法分析器一般以函式的形式存在,供語法分析器呼叫。完成詞法分析任務的程式稱...

編譯原理 詞法分析

根據龍書 編譯原理 和 網易雲課堂華保健的 編譯原理 整理而成的。下面是思維導圖的筆記 技術過程 詞法分析的整體流程 2.詞法分析 詞法分析階段 生成詞法單元 一些基礎概念 模式 詞素 詞法單元的規約 串 string 語言 language 語言上的運算 正規表示式 正則集合 正規表示式的代數定律...