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

📄 data.h

📁 在纯DOS下运行的TurboC3_ucos2_ucgui bug改进版本
💻 H
字号:
/* data.h */

#define right_max 3
#define analyze_max 7
#define VT_max 6
#define input_max 30
#define stack_max 20

typedef enum {E,E1,T,T1,P,ana_rgt,ana_sign,empty} analyze;
typedef enum {add,mul,i,lef,VT_rgt,VT_sign,NUL} VT;
char ana_cha[][3]={"E ","E1","T ","T1","P ",") ","~ "};

typedef struct node1 {
		     analyze right[right_max];
		     int del,err;
		     } unit;
unit analyze_matrix[analyze_max][VT_max]={
      {{{empty,empty,empty},0,1},  {{empty,empty,empty},0,1},  {{E1,T,empty},0,0},          {{E1,T,empty},0,0},        {{empty,empty,empty},0,1},   {{empty,empty,empty},0,1}},
      {{{E1,T,empty},1,0},         {{empty,empty,empty},0,1},  {{empty,empty,empty},0,1},   {{empty,empty,empty},0,1}, {{empty,empty,empty},0,0},   {{empty,empty,empty},0,0}},
      {{{empty,empty,empty},0,1},  {{empty,empty,empty},0,1},  {{T1,P,empty},0,0},          {{T1,P,empty},0,0},        {{empty,empty,empty},0,1},   {{empty,empty,empty},0,1}},
      {{{empty,empty,empty},0,0},  {{T1,P,empty},1,0},         {{empty,empty,empty},0,1},   {{empty,empty,empty},0,1}, {{empty,empty,empty},0,0},   {{empty,empty,empty},0,0}},
      {{{empty,empty,empty},0,1},  {{empty,empty,empty},0,1},  {{empty,empty,empty},1,0},   {{ana_rgt,E,empty},1,0},   {{empty,empty,empty},0,1},   {{empty,empty,empty},0,1}},
      {{{empty,empty,empty},0,1},  {{empty,empty,empty},0,1},  {{empty,empty,empty},0,1},   {{empty,empty,empty},0,1}, {{empty,empty,empty},1,0},   {{empty,empty,empty},0,1}},
      {{{empty,empty,empty},0,1},  {{empty,empty,empty},0,1},  {{empty,empty,empty},0,1},   {{empty,empty,empty},0,1}, {{empty,empty,empty},0,1},   {{empty,empty,empty},0,-1}}
     };

analyze top;
VT next;

typedef struct node2 {
		     analyze data;
		     struct node2 *next;
		     } analyze_node;
analyze_node *analyze_stack;

char input_stream[input_max];
int input_ptr;

int line,num;

analyze pop()
{
analyze back;
analyze_node *pre=analyze_stack;
analyze_node *top=analyze_stack;
if(analyze_stack->next!=NULL)
  {
  top=pre->next;
  while(top->next!=NULL) pre=top,top=top->next;
  pre->next=NULL;
  }
back=top->data;
free(top);
return back;
}

void push(analyze new_analyze)
{
analyze_node *top=analyze_stack;
if(analyze_stack==NULL)
  {
  analyze_stack=(node2 *)malloc(sizeof(analyze_node));
  analyze_stack->data=new_analyze;
  analyze_stack->next=NULL;
  return;
  }
while(top->next!=NULL) top=top->next;
top->next=(node2 *)malloc(sizeof(analyze_node));
top->next->data=new_analyze;
top->next->next=NULL;
}


⌨️ 快捷键说明

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