⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 execute.h

📁 完成一个完整的编译程序
💻 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 + -