📄 lrtable.h
字号:
//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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -