资源简介
这是编译原理的语法分析实验,输入格式为 A~Z和+-*/() ,并且以#结尾
代码片段和文件信息
// BianYiYuanLi2.cpp: 定义控制台应用程序的入口点。
//
#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‘&&SYM <= ‘z‘) ||
if ((SYM(ST) >= ‘A‘&&SYM(ST) <= ‘Z‘))
{
ADVANCE(ST);
return;
}
else {
if (SYM(ST) != ‘(‘) {
//std::cout << “ERROR“ << std::endl;
TZ = 1;
return;
}
else {
ADVANCE(ST);
E(TZ ST);
if (SYM(ST) != ‘)‘)
{
std::cout << “ERROR“ << std::endl;
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“ << std::endl;
//接受输入的表达式
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;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-06-18 20:58 编译原理--语法分析 实验\
目录 0 2018-06-18 20:58 编译原理--语法分析 实验\BianYiYuanLi2\
文件 2800 2018-06-18 20:42 编译原理--语法分析 实验\BianYiYuanLi2\BianYiYuanLi2.cpp
文件 8223 2018-06-18 18:36 编译原理--语法分析 实验\BianYiYuanLi2\BianYiYuanLi2.vcxproj
文件 1258 2018-06-18 18:36 编译原理--语法分析 实验\BianYiYuanLi2\BianYiYuanLi2.vcxproj.filters
文件 165 2018-06-18 18:36 编译原理--语法分析 实验\BianYiYuanLi2\BianYiYuanLi2.vcxproj.user
文件 328 2018-06-18 18:36 编译原理--语法分析 实验\BianYiYuanLi2\stdafx.cpp
文件 366 2018-06-18 18:36 编译原理--语法分析 实验\BianYiYuanLi2\stdafx.h
文件 370 2018-06-18 18:36 编译原理--语法分析 实验\BianYiYuanLi2\targetver.h
文件 1453 2018-06-18 18:36 编译原理--语法分析 实验\BianYiYuanLi2.sln
- 上一篇:MFC数据库ODBC编程-教务管理系统
- 下一篇:语法分析C实现
相关资源
- Opencv C++数字图像处理——空域增强
- opencv和C++版相机标定
- 计算机图形学基础教程 VisualC++版 习
- 深入应用C++11完整版本.pdf.rar
- 大规模C++ 程序设计高清pdf
- 人群计数-c++实现内有caffemodel和deplo
- LL(1)文法自动生成语法分析程序的
- C++(qt)游戏实战项目:坦克大战(源
- Visual C++ Build Tools 2015 离线包.part7/7
- c++从入门到精通第2版
- Qt5.9C++开发指南 源码 资源.zip
- windows pe 权威指南.pdf C++反汇编与逆向
- VC++运行库一键安装
- yolov3+opencv3.4.2 C++源码
- Qt5.9 c++开发指南.part1.rar
- 编译原理--递归下降分析程序C++
- 编译原理 词法分析 源代码
- 深入理解C++11:C++11新特性解析与应用
- C++Test9.5的插件版3
- C++ Primer 5th Edition 中文 第5版 PDF 扫描
- c++builder 6技术大全
- MSVisualC++运行库/Microsoft Visual C++(20
- 信息学奥赛一本通C++版配套光盘文件
- C++并发编程实战 pdf
- C++程序设计谭浩强100%完整·清华大学
- Devc++ 5.11 绿色版
- C++程序设计 基础、编程抽象与算法策
- 《C++Primer》第五版中文版.zip
- CAD应用程序开发详解 Visual C++与Open
- 数字图像处理与机器视觉:第二版V
评论
共有 条评论