📄 execute.h
字号:
//-----------------解释器execute .h------
#ifndef execute_comp
#define execute_comp
#include <iostream>
#include <fstream>
#include <string>
#include <string.h>
#include <ctype.h>
#include <stdio.h>
#include "scanner.h"
#include "parser.h"
using namespace std;
//-----------------四元式解释器---------------------------------
//取得四元式
struct code1 getcode(int tab)
{
if(tab>=0&&tab<codetab)
return code[tab];
else if(tab>=300&&tab<procecode)
return code[tab];
}
int cutequen=0;
//解释四元式的函数
void interpreter(struct code1 code)
{
if(code.op==5)
cout<<"---------Now begin to interprete the program!---------"<<endl;
else if(code.op==0)
table[code.result].val=table[code.ag1].val+table[code.ag2].val;
else if(code.op==1)
table[code.result].val=table[code.ag1].val-table[code.ag2].val;
else if(code.op==2)
table[code.result].val=table[code.ag1].val*table[code.ag2].val;
else if(code.op==3)
table[code.result].val=table[code.ag1].val/table[code.ag2].val;
else if(code.op==4)
table[code.result].val=table[code.ag1].val;
else if(code.op==10)
cout<<table[code.ag1].val<<endl;
else if(code.op==6)
{
if(code.result!=-1)
cutequen=code.result-1;
}
else if(code.op==7)
{
if(table[code.ag1].val>table[code.ag2].val)
cutequen=code.result-1;
}
else if(code.op==8)
{
if(table[code.ag1].val!=table[code.ag2].val)
cutequen=code.result-1;
}
else if(code.op==9)
{
if(table[code.ag1].val<table[code.ag2].val)
cutequen=code.result-1;
}
else if(code.op==12)
{
if(table[code.ag1].val>=table[code.ag2].val)
cutequen=code.result-1;
}
else if(code.op==13)
{
if(table[code.ag1].val<=table[code.ag2].val)
cutequen=code.result-1;
}
else if(code.op==14)
{
if(table[code.ag1].val=table[code.ag2].val)
cutequen=code.result-1;
}
else if(code.op==11)
cout<<"----------Finish the project!----------"<<endl;
}
//-------------解释执行函数---------
void execute()
{
while(cutequen<procecode && cutequen!=codetab)
{
interpreter(getcode(cutequen));
cutequen++;
}
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -