1ea2af5c8SJung-uk Kim typedef int YYINT; 20c8de5b0SBaptiste Daroussin const YYINT calc_lhs[] = { -1, 30c8de5b0SBaptiste Daroussin 0, 0, 0, 1, 1, 2, 2, 2, 2, 2, 40c8de5b0SBaptiste Daroussin 2, 2, 2, 2, 2, 2, 3, 3, 50c8de5b0SBaptiste Daroussin }; 60c8de5b0SBaptiste Daroussin const YYINT calc_len[] = { 2, 70c8de5b0SBaptiste Daroussin 0, 3, 3, 1, 3, 3, 3, 3, 3, 3, 80c8de5b0SBaptiste Daroussin 3, 3, 3, 2, 1, 1, 1, 2, 90c8de5b0SBaptiste Daroussin }; 100c8de5b0SBaptiste Daroussin const YYINT calc_defred[] = { 1, 110c8de5b0SBaptiste Daroussin 0, 0, 17, 0, 0, 0, 0, 0, 0, 3, 120c8de5b0SBaptiste Daroussin 0, 15, 14, 0, 2, 0, 0, 0, 0, 0, 130c8de5b0SBaptiste Daroussin 0, 0, 18, 0, 6, 0, 0, 0, 0, 9, 140c8de5b0SBaptiste Daroussin 10, 11, 150c8de5b0SBaptiste Daroussin }; 160c8de5b0SBaptiste Daroussin const YYINT calc_dgoto[] = { 1, 170c8de5b0SBaptiste Daroussin 7, 8, 9, 180c8de5b0SBaptiste Daroussin }; 190c8de5b0SBaptiste Daroussin const YYINT calc_sindex[] = { 0, 200c8de5b0SBaptiste Daroussin -40, -7, 0, -55, -38, -38, 1, -29, -247, 0, 210c8de5b0SBaptiste Daroussin -38, 0, 0, 22, 0, -38, -38, -38, -38, -38, 220c8de5b0SBaptiste Daroussin -38, -38, 0, -29, 0, 51, 60, -20, -20, 0, 230c8de5b0SBaptiste Daroussin 0, 0, 240c8de5b0SBaptiste Daroussin }; 250c8de5b0SBaptiste Daroussin const YYINT calc_rindex[] = { 0, 260c8de5b0SBaptiste Daroussin 0, 0, 0, 2, 0, 0, 0, 9, -9, 0, 270c8de5b0SBaptiste Daroussin 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280c8de5b0SBaptiste Daroussin 0, 0, 0, 10, 0, -6, 14, 5, 13, 0, 290c8de5b0SBaptiste Daroussin 0, 0, 300c8de5b0SBaptiste Daroussin }; 310c8de5b0SBaptiste Daroussin const YYINT calc_gindex[] = { 0, 320c8de5b0SBaptiste Daroussin 0, 65, 0, 330c8de5b0SBaptiste Daroussin }; 340c8de5b0SBaptiste Daroussin const YYINT calc_table[] = { 6, 350c8de5b0SBaptiste Daroussin 16, 6, 10, 13, 5, 11, 5, 22, 17, 23, 360c8de5b0SBaptiste Daroussin 15, 15, 20, 18, 7, 19, 22, 21, 4, 5, 370c8de5b0SBaptiste Daroussin 0, 20, 8, 12, 0, 0, 21, 16, 16, 0, 380c8de5b0SBaptiste Daroussin 0, 16, 16, 16, 13, 16, 0, 16, 15, 15, 390c8de5b0SBaptiste Daroussin 0, 0, 7, 15, 15, 7, 15, 7, 15, 7, 400c8de5b0SBaptiste Daroussin 8, 12, 0, 8, 12, 8, 0, 8, 22, 17, 410c8de5b0SBaptiste Daroussin 0, 0, 25, 20, 18, 0, 19, 0, 21, 13, 420c8de5b0SBaptiste Daroussin 14, 0, 0, 0, 0, 24, 0, 0, 0, 0, 430c8de5b0SBaptiste Daroussin 26, 27, 28, 29, 30, 31, 32, 22, 17, 0, 440c8de5b0SBaptiste Daroussin 0, 0, 20, 18, 16, 19, 22, 21, 0, 0, 450c8de5b0SBaptiste Daroussin 0, 20, 18, 0, 19, 0, 21, 0, 0, 0, 460c8de5b0SBaptiste Daroussin 0, 0, 0, 0, 16, 0, 0, 13, 0, 0, 470c8de5b0SBaptiste Daroussin 0, 0, 0, 0, 0, 15, 0, 0, 7, 0, 480c8de5b0SBaptiste Daroussin 0, 0, 0, 0, 0, 0, 8, 12, 0, 0, 490c8de5b0SBaptiste Daroussin 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 500c8de5b0SBaptiste Daroussin 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 510c8de5b0SBaptiste Daroussin 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 520c8de5b0SBaptiste Daroussin 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 530c8de5b0SBaptiste Daroussin 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540c8de5b0SBaptiste Daroussin 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 550c8de5b0SBaptiste Daroussin 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 560c8de5b0SBaptiste Daroussin 0, 0, 0, 0, 0, 2, 3, 4, 3, 12, 570c8de5b0SBaptiste Daroussin }; 580c8de5b0SBaptiste Daroussin const YYINT calc_check[] = { 40, 590c8de5b0SBaptiste Daroussin 10, 40, 10, 10, 45, 61, 45, 37, 38, 257, 600c8de5b0SBaptiste Daroussin 10, 10, 42, 43, 10, 45, 37, 47, 10, 10, 610c8de5b0SBaptiste Daroussin -1, 42, 10, 10, -1, -1, 47, 37, 38, -1, 620c8de5b0SBaptiste Daroussin -1, 41, 42, 43, 41, 45, -1, 47, 37, 38, 630c8de5b0SBaptiste Daroussin -1, -1, 38, 42, 43, 41, 45, 43, 47, 45, 640c8de5b0SBaptiste Daroussin 38, 38, -1, 41, 41, 43, -1, 45, 37, 38, 650c8de5b0SBaptiste Daroussin -1, -1, 41, 42, 43, -1, 45, -1, 47, 5, 660c8de5b0SBaptiste Daroussin 6, -1, -1, -1, -1, 11, -1, -1, -1, -1, 670c8de5b0SBaptiste Daroussin 16, 17, 18, 19, 20, 21, 22, 37, 38, -1, 680c8de5b0SBaptiste Daroussin -1, -1, 42, 43, 124, 45, 37, 47, -1, -1, 690c8de5b0SBaptiste Daroussin -1, 42, 43, -1, 45, -1, 47, -1, -1, -1, 700c8de5b0SBaptiste Daroussin -1, -1, -1, -1, 124, -1, -1, 124, -1, -1, 710c8de5b0SBaptiste Daroussin -1, -1, -1, -1, -1, 124, -1, -1, 124, -1, 720c8de5b0SBaptiste Daroussin -1, -1, -1, -1, -1, -1, 124, 124, -1, -1, 730c8de5b0SBaptiste Daroussin -1, -1, -1, -1, -1, 124, -1, -1, -1, -1, 740c8de5b0SBaptiste Daroussin -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 750c8de5b0SBaptiste Daroussin -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 760c8de5b0SBaptiste Daroussin -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 770c8de5b0SBaptiste Daroussin -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 780c8de5b0SBaptiste Daroussin -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 790c8de5b0SBaptiste Daroussin -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 800c8de5b0SBaptiste Daroussin -1, -1, -1, -1, -1, 256, 257, 258, 257, 258, 810c8de5b0SBaptiste Daroussin }; 820c8de5b0SBaptiste Daroussin #ifndef YYDEBUG 830c8de5b0SBaptiste Daroussin #define YYDEBUG 0 840c8de5b0SBaptiste Daroussin #endif 850c8de5b0SBaptiste Daroussin const char *const calc_name[] = { 860c8de5b0SBaptiste Daroussin 870c8de5b0SBaptiste Daroussin "end-of-file",0,0,0,0,0,0,0,0,0,"'\\n'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 880c8de5b0SBaptiste Daroussin 0,0,0,0,0,0,"'%'","'&'",0,"'('","')'","'*'","'+'",0,"'-'",0,"'/'",0,0,0,0,0,0,0, 890c8de5b0SBaptiste Daroussin 0,0,0,0,0,0,"'='",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 900c8de5b0SBaptiste Daroussin 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'|'",0,0,0,0,0,0, 910c8de5b0SBaptiste Daroussin 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 920c8de5b0SBaptiste Daroussin 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 930c8de5b0SBaptiste Daroussin 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 940c8de5b0SBaptiste Daroussin 0,0,0,0,0,0,"DIGIT","LETTER","UMINUS",0,0,0,0,0,"illegal-symbol", 950c8de5b0SBaptiste Daroussin }; 96*c5b5d71aSJung-uk Kim #if YYDEBUG 970c8de5b0SBaptiste Daroussin const char *const calc_rule[] = { 980c8de5b0SBaptiste Daroussin "$accept : list", 990c8de5b0SBaptiste Daroussin "list :", 1000c8de5b0SBaptiste Daroussin "list : list stat '\\n'", 1010c8de5b0SBaptiste Daroussin "list : list error '\\n'", 1020c8de5b0SBaptiste Daroussin "stat : expr", 1030c8de5b0SBaptiste Daroussin "stat : LETTER '=' expr", 1040c8de5b0SBaptiste Daroussin "expr : '(' expr ')'", 1050c8de5b0SBaptiste Daroussin "expr : expr '+' expr", 1060c8de5b0SBaptiste Daroussin "expr : expr '-' expr", 1070c8de5b0SBaptiste Daroussin "expr : expr '*' expr", 1080c8de5b0SBaptiste Daroussin "expr : expr '/' expr", 1090c8de5b0SBaptiste Daroussin "expr : expr '%' expr", 1100c8de5b0SBaptiste Daroussin "expr : expr '&' expr", 1110c8de5b0SBaptiste Daroussin "expr : expr '|' expr", 1120c8de5b0SBaptiste Daroussin "expr : '-' expr", 1130c8de5b0SBaptiste Daroussin "expr : LETTER", 1140c8de5b0SBaptiste Daroussin "expr : number", 1150c8de5b0SBaptiste Daroussin "number : DIGIT", 1160c8de5b0SBaptiste Daroussin "number : number DIGIT", 1170c8de5b0SBaptiste Daroussin 1180c8de5b0SBaptiste Daroussin }; 1190c8de5b0SBaptiste Daroussin #endif 120