lrtable.h

来自「编译原理 中的LR分析 控制台程序设计与实现」· C头文件 代码 · 共 33 行

H
33
字号
//typedef enum{i,	+,	*,	(,	),	#,	E,	T,	F }ExpNum;

//文法为:       E->E+T|T      T->T*F|F      F->(E)|i 
//
//  式子编号为:(1) E->E+T 
//				(2) E->T
//				(3) T->T*F
//				(4) T->F
//				(5) F->(E)
//				(6) F->i

#define STATE  12
#define STRING  9

//下表为此文法的LR分析表,根据教材101页分析所制,详情请参考教材101页
int table[STATE][STRING]={
//					i,		+,	  *,  	 (,	     ),	   #,	  E,    T,	   F
//********************************************************|*********************
/* 0*/			    {-5,    0,     0,     -4,    0,    0,     1,    2,    3},  
/* 1*/				{0,		-6,     0,     0,    0,    999,   0,    0,    0},      
/* 2*/				{0,     12,    -7,    0,    12,    12,    0,    0,    0},      
/* 3*/				{0,     14,    14,    0,    14,    14,    0,    0,    0},      
/* 4*/				{-5,    0,     0,     -4,    0,    0,     8,    2,    3},      
/* 5*/				{0,     16,    16,    0,    16,    16,    0,    0,    0},      
/* 6*/				{-5,    0,     0,     -4,    0,    0,     0,    9,    3},      
/* 7*/				{-5,    0,     0,     -4,    0,    0,     0,    0,    10},      
/* 8*/				{0,     0,      0,    0,    -11,   0,     0,    0,    0},      
/* 9*/				{0,     11,    -7,    0,    11,    11,    0,    0,    0},      
/*10*/				{0,    13,    13,     0,    13,    13,    0,    0,    0},      
/*11*/				{0,    15,    15,     0,    15,    15,    0,    0,    0}
//**********************************************************|********************				
				};  
//小于0为进栈,大于10为归约,0表示出错,1到10表示状态转移,999表示接受

⌨️ 快捷键说明

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