📄 data.h
字号:
enum symbol{nul,ident,number,plus,minus,times,eql,neq,lss,leq,gtr,geq,lparen,rparen,
becomes,beginsym,endsym,ifsym,whilesym,callsym,constsym,varsym,procsym,readsym,
writesym,forsym,divsym,semicolon,comma,period,tosym};
//reserved symbol in my language
enum object{constant,variable,procedure};
enum code{c_times,c_minus,c_eql,cj,cj_lss,cj_leq};
#define norw 11 //no.of reserved words
#define nmax 10 //max.no.of digits in numbers
#define amax 32767 //maximum address
#define txmax 100 //lenth of identifier table
#define levmax 3 //maximum depth of block nesting
//const var procedure
const al=10; //lenth of identifier
typedef struct wword
{
char w[10];
}W_WORD;
typedef struct s_sym
{
char ch;
symbol ch_sym;
}SYM;
SYM ssym[9];
typedef struct ss_table
{
char name[10];
object kind;
int val,level,adr;
}s_table;
char ch=' '; //last character read
symbol sym; //last symbol read
char id[10]; //last identifier read
int num; //last number read
int cc; //character count
int ll; //line length
int kk,err;
int depth; //record how many 'begin's depth
int cx=0; //code allocation index
char line[64];
char a[10];
int count_line=0; //record how many lines of the original file for error procedure
FILE *fp;
int out_fp; //code file
W_WORD word[12];
symbol wsym[norw];
s_table table[txmax];
typedef struct w_gcode{
int flag;
char c_code[10];//flag=1
int c_num; //flag=2
char chr; //flag=3
int T;
}W_GCODE;
int TT=0;
W_GCODE gcode[20];
W_GCODE s_1,blank;
int g=0;
int newline=0;
//FILE * result;
//FILE * f_error;
char chr1=(char)13,chr2=(char)10;
int f_eof=0;
int tx0=0; //initial table index
void init()
{
for(int i=0;i<txmax;i++)
{
memcpy(table[i].name," ",1);
table[i].val=0;
table[i].level=0;
table[i].adr=0;
}
cx=0;
tx0=0;
count_line=0;
newline=0;
g=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -