• 大小: 2.55MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-29
  • 语言: 其他
  • 标签: C++  sample  

资源简介

设计SAMPLE语言的语法、语义分析器,输出四元式的中间结果。 检查要求: a)启动程序后,先输出作者姓名、班级、学号(可用汉语、英语或拼音)。 b)请求输入测试程序名,键入程序名后自动开始编译。 c)输出四元式中间代码(样式见样板输出3和4)。 d)能发现程序的语法错误并输出出错信息。

资源截图

代码片段和文件信息

using namespace std;
#include“base.h“
#pragma warning(disable:4996)

extern int nowaddress;//表示下一个地址
extern bianYi parse;            //词法分析
extern item sign;            //
extern suanfu_stack STACK;     //布朗运算的栈
extern fouryuan FOMO;         //四元组表




int suanfubiao[numsuanfu + 1][numsuanfu + 1] = { -2 11 1 1 1 1 11 11 1
  -11-1-1-1-1-111-1-1-1
  -111-1-1-1-11 1-1-1-1
  -111 1-1-1-11 1-1-1-1
  -111 1-2-2 -111-2-2-2
  -111 1-2 -2-111-2-2-2
  -1-1-1-1-1-1-101-1-1-1
  11 1 1 1 1 1 1 11  11
  -1-1-1-1-1-1-1-10-1-1-1
  -1111 -2 -2-11 1-2-2-2
  -1111 -2-2-11 1-2-2-2
  -1111 -2-2-1 11 -2-2-2
};
int findfuhaobiao(int k) {
switch (k) {
case 20:return suanfu_or;
case 18:return suanfu_not;
case 1:return suanfu_and;
case 53:return suanfu_low;
case 57:return suanfu_above;
case 39:return suanfu_leftkuohao;
case 40:return suanfu_rightkuohao;
case 56:return suanfu_equ;
case 54:return suanfu_lowequ;
case 58:return suanfu_aboveequ;
case 36:
case 31:
case 13:
case 37:return suanfu_bctf;
case suanfu_end: return suanfu_jing;
default:return -1;
}
}
void superpop(int i) {
item temp[5];
int tempt = STACK.applyfortruelist();
int tempf = STACK.applyforfalselist();
//      char *op1*op2;
switch (i) {
case suanfu_above:
case suanfu_low:
case suanfu_equ:
case suanfu_aboveequ:
case suanfu_lowequ: {
for (int j = 0; j < 3; j++)
STACK.suanfu_pop(temp[j]);
STACK.optop++;
/////////truelist的2位放codebegin3位放长度
FOMO.load(nowaddress temp[1] temp[2] temp[0] 0);
// cout<“<<“ “< STACK.truelist[tempt][1] = nowaddress;
STACK.falselist[tempf][1] = nowaddress;
STACK.truelist[tempt][2] = 1;
STACK.falselist[tempf][2] = 1;
STACK.truelist[tempt][3] = nowaddress;
STACK.falselist[tempf][3] = ++nowaddress;
FOMO.load(nowaddress 0);
// cout< ++nowaddress;
item tempitem(-1 tempt);
STACK.suanfu_push(tempitem);
tempitem.x = -2;
tempitem.y = tempf;
STACK.suanfu_push(tempitem);
break;
}

case suanfu_not: {
for (int j = 0; j < 3; j++)
STACK.suanfu_pop(temp[j]);
STACK.optop += 2;
STACK.truelist[tempt][0] = _available;
STACK.falselist[tempf][0] = _available;
temp[0].x = -1;
temp[1].x = -2;
STACK.truelist[temp[1].y][0] = _unavailable;
STACK.falselist[temp[0].y][0] = _unavailable;
////////////////////真假连互换
for (int zz = 0 ww; zz<3 + (STACK.truelist[temp[1].y][2]) ? (STACK.falselist[temp[0].y][2]) : (STACK.truelist[temp[1].y][2])>(STACK.falselist[temp[0].y][2]); zz++) {
ww = STACK.truelist[temp[1].y][zz];
STACK.truelist[temp[1].y][zz] = STACK.falselist[temp[0].y][zz];
STACK.fal

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

    ..A..H.     17408  2018-12-21 14:25  语法语义分析器\.vs\词法语法语义分析器\v15\.suo

     文件    5410816  2018-12-21 14:25  语法语义分析器\.vs\词法语法语义分析器\v15\Browse.VC.db

     文件     154112  2018-12-11 20:42  语法语义分析器\Debug\词法语法语义分析器.exe

     文件    1172744  2018-12-11 20:42  语法语义分析器\Debug\词法语法语义分析器.ilk

     文件    1224704  2018-12-11 20:42  语法语义分析器\Debug\词法语法语义分析器.pdb

     文件     194560  2018-12-11 21:17  语法语义分析器\x64\Debug\词法语法语义分析器.exe

     文件     934380  2018-12-11 21:17  语法语义分析器\x64\Debug\词法语法语义分析器.ilk

     文件     880640  2018-12-11 21:17  语法语义分析器\x64\Debug\词法语法语义分析器.pdb

     文件       4399  2018-12-08 00:16  语法语义分析器\词法语法语义分析器\base.h

     文件       7797  2018-12-11 20:41  语法语义分析器\词法语法语义分析器\bool.cpp

     文件      10539  2018-12-11 20:40  语法语义分析器\词法语法语义分析器\cifa.cpp

     文件       6089  2018-12-11 20:37  语法语义分析器\词法语法语义分析器\control.cpp

     文件      57779  2018-12-11 20:41  语法语义分析器\词法语法语义分析器\Debug\bool.obj

     文件     316601  2018-12-11 20:40  语法语义分析器\词法语法语义分析器\Debug\cifa.obj

     文件      62782  2018-12-11 20:37  语法语义分析器\词法语法语义分析器\Debug\control.obj

     文件      58734  2018-12-11 20:31  语法语义分析器\词法语法语义分析器\Debug\fuzhi.obj

     文件      61383  2018-12-11 20:42  语法语义分析器\词法语法语义分析器\Debug\item.obj

     文件     273408  2018-12-11 20:42  语法语义分析器\词法语法语义分析器\Debug\vc141.idb

     文件     806912  2018-12-11 20:42  语法语义分析器\词法语法语义分析器\Debug\vc141.pdb

     文件      67175  2018-12-08 00:39  语法语义分析器\词法语法语义分析器\Debug\zhongjiandaima.obj

     文件     121814  2018-12-07 11:35  语法语义分析器\词法语法语义分析器\Debug\主函数.obj

     文件      67163  2018-12-07 11:27  语法语义分析器\词法语法语义分析器\Debug\四元式.obj

     文件      56499  2018-12-07 11:27  语法语义分析器\词法语法语义分析器\Debug\布尔运算.obj

     文件      62794  2018-12-07 11:27  语法语义分析器\词法语法语义分析器\Debug\控制.obj

     文件     121783  2018-12-08 00:50  语法语义分析器\词法语法语义分析器\Debug\源.obj

     文件     316602  2018-12-07 11:27  语法语义分析器\词法语法语义分析器\Debug\词法分析.obj

     文件        168  2018-12-11 20:42  语法语义分析器\词法语法语义分析器\Debug\词法语法语义分析器.log

     文件      10234  2018-12-11 20:42  语法语义分析器\词法语法语义分析器\Debug\词法语法语义分析器.tlog\CL.command.1.tlog

     文件      89228  2018-12-11 20:42  语法语义分析器\词法语法语义分析器\Debug\词法语法语义分析器.tlog\CL.read.1.tlog

     文件      15518  2018-12-11 20:42  语法语义分析器\词法语法语义分析器\Debug\词法语法语义分析器.tlog\CL.write.1.tlog

............此处省略49个文件信息

评论

共有 条评论