【编译原理】语义分析S属性定义的自下而上计算 |
您所在的位置:网站首页 › 计算器的构造原理 › 【编译原理】语义分析S属性定义的自下而上计算 |
#include #include #include using namespace std; /* E->E+T E->T T->T*F T->F F->(E) F->id */ /*初始化分析表*/ void Initial(string analysis[12][9]){ /*移进规约*/ analysis[0][0] = "s5"; analysis[0][3] = "s4"; analysis[0][6] = "1"; analysis[0][7] = "2"; analysis[0][8] = "3"; analysis[1][1] = "s6"; analysis[1][5] = "acc"; analysis[2][1] = "r2"; analysis[2][2] = "s7"; analysis[2][4] = "r2"; analysis[2][5] = "r2"; analysis[3][1] = "r4"; analysis[3][2] = "r4"; analysis[3][4] = "r4"; analysis[3][5] = "r4"; analysis[4][0] = "s5"; analysis[4][3] = "s4"; analysis[4][6] = "8"; analysis[4][7] = "2"; analysis[4][8] = "3"; analysis[5][1] = "r6"; analysis[5][2] = "r6"; analysis[5][4] = "r6"; analysis[5][5] = "r6"; analysis[6][0] = "s5"; analysis[6][3] = "s4"; analysis[6][7] = "9"; analysis[6][8] = "3"; analysis[7][0] = "s5"; analysis[7][3] = "s4"; analysis[7][8] = "10"; analysis[8][1] = "s6"; analysis[8][4] = "ss";//表示s11 analysis[9][1] = "r1"; analysis[9][2] = "s7"; analysis[9][4] = "r1"; analysis[9][5] = "r1"; analysis[10][1] = "r3"; analysis[10][2] = "r3"; analysis[10][4] = "r3"; analysis[10][5] = "r3"; analysis[11][1] = "r5"; analysis[11][2] = "r5"; analysis[11][4] = "r5"; analysis[11][5] = "r5"; /*出现错误*/ analysis[0][1] = analysis[0][2] = analysis[0][5] = analysis[4][1] = analysis[4][2] = analysis[4][5] = "e1"; analysis[6][1] = analysis[6][2] = analysis[6][5] = analysis[7][1] = analysis[7][2] = analysis[7][5] = "e1"; analysis[0][4] = analysis[1][4] = analysis[4][4] = analysis[6][4] = analysis[7][4] = "e2"; analysis[1][0] = analysis[1][2] = analysis[1][3] = analysis[8][0] = analysis[8][2] = analysis[8][3] = "e3"; analysis[8][5] = "e4"; analysis[2][0] = analysis[2][3] = "r2"; analysis[3][2] = analysis[3][3] = "r4"; analysis[5][0] = analysis[5][3] = "r6"; analysis[9][0] = analysis[9][3] = "r1"; analysis[10][0] = analysis[10][3] = "r3"; analysis[11][0] = analysis[11][3] = "r5";
} /*输出移进还是规约,规约的话输出用到的产生式*/ void print(int into) { if (into == 0) { cout |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |