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

📄 pl.h

📁 编译器
💻 H
字号:
#include <iostream.h>
#include <fstream.h>
#include <string.h>
#include <stdio.h>

#define norw 13
//#define txmax 100	
#define nmax 14	
#define al 10	
#define amax 2047	
#define levmax 3		
#define cxmax 200

enum symbol { 
	nul,		number,		plus,		minus,		times,		
	slash,		eql,		lparen,		rparen,	
};
#define symnum 8

enum fct{lit,opr,lod,sto,cal,inte,jmp,jpc};
#define fctnum 8

struct instruction
{
	enum fct f;
	int l;
	int a;
};

ofstream fas;
ofstream fa;
ofstream fa1;
ofstream fa2;
bool listswitch;
bool tableswitch;
char ch;
enum symbol sym;
//
int num;
int cc,ll;
int cx;
char line[81];
char a[al+1];
struct instruction code[cxmax];
enum symbol wsym[norw];
enum symbol ssym[256];
char mnemonic[fctnum][5];

//

ifstream fin;
ofstream fout;
char fname[al];
int err;

#define getsymdo					if(-1==getsym()) return -1
#define getchdo						if(-1==getch())return -1
#define testdo(a,b,c)				if(-1==test(a,b,c))return -1
#define gendo(a,b,c)				if(-1==gen(a,b,c)) return -1
#define expressiondo(a,b,c)			if(-1==expression(a,b,c)) return -1
#define factordo(a,b,c)				if(-1==factor(a,b,c)) return -1
#define termdo(a,b,c)				if(-1==term(a,b,c)) return -1
#define conditiondo(a,b,c)			if(-1==condition(a,b,c)) return -1
#define statementdo(a,b,c)			if(-1==statement(a,b,c)) return -1
#define constdeclarationdo(a,b,c)	if(-1==constdeclaration(a,b,c)) return -1
#define vardeclarationdo(a,b,c)     if(-1==vardeclaration(a,b,c))return -1
void error(int n);
int getsym();
int getch();
void init();
int gen(enum fct x,int y,int z);
//int test(bool *s1,bool *s2,int n);
//int inset(int e,bool* s);
//int addset(bool* sr,bool* s1,bool* s2,int n);
//int subset(bool* sr,bool* s1,bool* s2,int n);
//int mulset(bool* sr,bool* s1,bool* s2,int n);
//int block(int lev,int tx,bool* fsys);
void interpret();
//int factor(bool* fsys,int * ptx,int lev);
int factor();
//int term(bool* fsys,int *ptx,int lev);
int term();
//int condition(bool* fsys,int *ptx,int lev);
//int expression(bool* fsys,int *ptx,int lev);
int expression();
//int statement(bool* fsys,int *ptx,int lev);
//void listcode(int cx0);
void listcode();
//int vardeclaration(int *ptx,int lev,int *pdx);
//int constdeclaration(int *ptx,int lev,int *pdx);
//int position(char* idt,int tx);
//void enter (enum object k,int* ptx,int lev ,int * pdx);
//int base(int l,int *s ,int b);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -