(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 語言上的運算 正規表示式 正則集合 正規表示式的代數定律...