資源簡(jiǎn)介
這是編譯原理的語(yǔ)法分析實(shí)驗(yàn),輸入格式為 A~Z和+-*/() ,并且以#結(jié)尾

代碼片段和文件信息
//?BianYiYuanLi2.cpp:?定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。
//
#include?“stdafx.h“
#include?
#include?
void?E(int&?TZ?std::string&?ST);
void?ADVANCE(std::string&?ST)?{
ST.erase(0?1);
}
char?SYM(std::string&?ST)?{
std::string::iterator?it?=?ST.begin();
return?*it;
}
void?F(int&?TZ?std::string&?ST)?{//(SYM?>=?‘a(chǎn)‘&&SYM?<=?‘z‘)?||?
if?((SYM(ST)?>=?‘A‘&&SYM(ST)?<=?‘Z‘))
{
ADVANCE(ST);
return;
}
else?{
if?(SYM(ST)?!=?‘(‘)?{
//std::cout?<“ERROR“?< TZ?=?1;
return;
}
else?{
ADVANCE(ST);
E(TZ?ST);
if?(SYM(ST)?!=?‘)‘)
{
std::cout?<“ERROR“?< TZ?=?1;
return;
}
else?{
ADVANCE(ST);
return;
}
}
}
}
void?T(int&?TZ?std::string&?ST)?{
F(TZ?ST);
while?(SYM(ST)?==?‘*‘?||?SYM(ST)?==?‘/‘)?{
ADVANCE(ST);
F(TZ?ST);
}
}
void?E(int&?TZ?std::string&?ST)?{
do?{
T(TZ?ST);
if?(SYM(ST)?==?‘+‘?||?SYM(ST)?==?‘-‘)?{
ADVANCE(ST);
}
else?{
return;
}
}?while?(true);
}
int?main()
{
while?(true)?{
std::cout?<“Input?expression“?<
//接受輸入的表達(dá)式
std::string?ST;
std::cin?>>?ST;
int?TZ?=?0;
E(TZ?ST);
if?(SYM(ST)?!=?‘#‘?||?TZ?==?1)
{
std::cout?<“ERROR?AGAIN!“;
TZ?=?0;
}
else?{
std::cout?<“RIGHT?AGAIN!“;
}
system(“pause“);
}
return?0;
}
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????目錄???????????0??2018-06-18?20:58??編譯原理--語(yǔ)法分析?實(shí)驗(yàn)\
?????目錄???????????0??2018-06-18?20:58??編譯原理--語(yǔ)法分析?實(shí)驗(yàn)\BianYiYuanLi2\
?????文件????????2800??2018-06-18?20:42??編譯原理--語(yǔ)法分析?實(shí)驗(yàn)\BianYiYuanLi2\BianYiYuanLi2.cpp
?????文件????????8223??2018-06-18?18:36??編譯原理--語(yǔ)法分析?實(shí)驗(yàn)\BianYiYuanLi2\BianYiYuanLi2.vcxproj
?????文件????????1258??2018-06-18?18:36??編譯原理--語(yǔ)法分析?實(shí)驗(yàn)\BianYiYuanLi2\BianYiYuanLi2.vcxproj.filters
?????文件?????????165??2018-06-18?18:36??編譯原理--語(yǔ)法分析?實(shí)驗(yàn)\BianYiYuanLi2\BianYiYuanLi2.vcxproj.user
?????文件?????????328??2018-06-18?18:36??編譯原理--語(yǔ)法分析?實(shí)驗(yàn)\BianYiYuanLi2\stdafx.cpp
?????文件?????????366??2018-06-18?18:36??編譯原理--語(yǔ)法分析?實(shí)驗(yàn)\BianYiYuanLi2\stdafx.h
?????文件?????????370??2018-06-18?18:36??編譯原理--語(yǔ)法分析?實(shí)驗(yàn)\BianYiYuanLi2\targetver.h
?????文件????????1453??2018-06-18?18:36??編譯原理--語(yǔ)法分析?實(shí)驗(yàn)\BianYiYuanLi2.sln
評(píng)論
共有 條評(píng)論