1 2#ifndef yyparse 3#define yyparse calc_parse 4#endif /* yyparse */ 5 6#ifndef yylex 7#define yylex calc_lex 8#endif /* yylex */ 9 10#ifndef yyerror 11#define yyerror calc_error 12#endif /* yyerror */ 13 14#ifndef yychar 15#define yychar calc_char 16#endif /* yychar */ 17 18#ifndef yyval 19#define yyval calc_val 20#endif /* yyval */ 21 22#ifndef yylval 23#define yylval calc_lval 24#endif /* yylval */ 25 26#ifndef yydebug 27#define yydebug calc_debug 28#endif /* yydebug */ 29 30#ifndef yynerrs 31#define yynerrs calc_nerrs 32#endif /* yynerrs */ 33 34#ifndef yyerrflag 35#define yyerrflag calc_errflag 36#endif /* yyerrflag */ 37 38#ifndef yylhs 39#define yylhs calc_lhs 40#endif /* yylhs */ 41 42#ifndef yylen 43#define yylen calc_len 44#endif /* yylen */ 45 46#ifndef yydefred 47#define yydefred calc_defred 48#endif /* yydefred */ 49 50#ifndef yydgoto 51#define yydgoto calc_dgoto 52#endif /* yydgoto */ 53 54#ifndef yysindex 55#define yysindex calc_sindex 56#endif /* yysindex */ 57 58#ifndef yyrindex 59#define yyrindex calc_rindex 60#endif /* yyrindex */ 61 62#ifndef yygindex 63#define yygindex calc_gindex 64#endif /* yygindex */ 65 66#ifndef yytable 67#define yytable calc_table 68#endif /* yytable */ 69 70#ifndef yycheck 71#define yycheck calc_check 72#endif /* yycheck */ 73 74#ifndef yyname 75#define yyname calc_name 76#endif /* yyname */ 77 78#ifndef yyrule 79#define yyrule calc_rule 80#endif /* yyrule */ 81#define YYPREFIX "calc_" 82const short calc_lhs[] = { -1, 83 0, 0, 0, 1, 1, 2, 2, 2, 2, 2, 84 2, 2, 2, 2, 2, 2, 3, 3, 85}; 86const short calc_len[] = { 2, 87 0, 3, 3, 1, 3, 3, 3, 3, 3, 3, 88 3, 3, 3, 2, 1, 1, 1, 2, 89}; 90const short calc_defred[] = { 1, 91 0, 0, 17, 0, 0, 0, 0, 0, 0, 3, 92 0, 15, 14, 0, 2, 0, 0, 0, 0, 0, 93 0, 0, 18, 0, 6, 0, 0, 0, 0, 9, 94 10, 11, 95}; 96const short calc_dgoto[] = { 1, 97 7, 8, 9, 98}; 99const short calc_sindex[] = { 0, 100 -40, -7, 0, -55, -38, -38, 1, -29, -247, 0, 101 -38, 0, 0, 22, 0, -38, -38, -38, -38, -38, 102 -38, -38, 0, -29, 0, 51, 60, -20, -20, 0, 103 0, 0, 104}; 105const short calc_rindex[] = { 0, 106 0, 0, 0, 2, 0, 0, 0, 9, -9, 0, 107 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108 0, 0, 0, 10, 0, -6, 14, 5, 13, 0, 109 0, 0, 110}; 111const short calc_gindex[] = { 0, 112 0, 65, 0, 113}; 114const short calc_table[] = { 6, 115 16, 6, 10, 13, 5, 11, 5, 22, 17, 23, 116 15, 15, 20, 18, 7, 19, 22, 21, 4, 5, 117 0, 20, 8, 12, 0, 0, 21, 16, 16, 0, 118 0, 16, 16, 16, 13, 16, 0, 16, 15, 15, 119 0, 0, 7, 15, 15, 7, 15, 7, 15, 7, 120 8, 12, 0, 8, 12, 8, 0, 8, 22, 17, 121 0, 0, 25, 20, 18, 0, 19, 0, 21, 13, 122 14, 0, 0, 0, 0, 24, 0, 0, 0, 0, 123 26, 27, 28, 29, 30, 31, 32, 22, 17, 0, 124 0, 0, 20, 18, 16, 19, 22, 21, 0, 0, 125 0, 20, 18, 0, 19, 0, 21, 0, 0, 0, 126 0, 0, 0, 0, 16, 0, 0, 13, 0, 0, 127 0, 0, 0, 0, 0, 15, 0, 0, 7, 0, 128 0, 0, 0, 0, 0, 0, 8, 12, 0, 0, 129 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 130 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 132 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 134 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 136 0, 0, 0, 0, 0, 2, 3, 4, 3, 12, 137}; 138const short calc_check[] = { 40, 139 10, 40, 10, 10, 45, 61, 45, 37, 38, 257, 140 10, 10, 42, 43, 10, 45, 37, 47, 10, 10, 141 -1, 42, 10, 10, -1, -1, 47, 37, 38, -1, 142 -1, 41, 42, 43, 41, 45, -1, 47, 37, 38, 143 -1, -1, 38, 42, 43, 41, 45, 43, 47, 45, 144 38, 38, -1, 41, 41, 43, -1, 45, 37, 38, 145 -1, -1, 41, 42, 43, -1, 45, -1, 47, 5, 146 6, -1, -1, -1, -1, 11, -1, -1, -1, -1, 147 16, 17, 18, 19, 20, 21, 22, 37, 38, -1, 148 -1, -1, 42, 43, 124, 45, 37, 47, -1, -1, 149 -1, 42, 43, -1, 45, -1, 47, -1, -1, -1, 150 -1, -1, -1, -1, 124, -1, -1, 124, -1, -1, 151 -1, -1, -1, -1, -1, 124, -1, -1, 124, -1, 152 -1, -1, -1, -1, -1, -1, 124, 124, -1, -1, 153 -1, -1, -1, -1, -1, 124, -1, -1, -1, -1, 154 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 155 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 156 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 158 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 159 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 160 -1, -1, -1, -1, -1, 256, 257, 258, 257, 258, 161}; 162#ifndef YYDEBUG 163#define YYDEBUG 0 164#endif 165#if YYDEBUG 166const char *yyname[] = { 167 168"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, 1690,0,0,0,0,0,"'%'","'&'",0,"'('","')'","'*'","'+'",0,"'-'",0,"'/'",0,0,0,0,0,0,0, 1700,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, 1710,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, 1720,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, 1730,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, 1740,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, 1750,0,0,0,0,0,"DIGIT","LETTER","UMINUS", 176}; 177const char *yyrule[] = { 178"$accept : list", 179"list :", 180"list : list stat '\\n'", 181"list : list error '\\n'", 182"stat : expr", 183"stat : LETTER '=' expr", 184"expr : '(' expr ')'", 185"expr : expr '+' expr", 186"expr : expr '-' expr", 187"expr : expr '*' expr", 188"expr : expr '/' expr", 189"expr : expr '%' expr", 190"expr : expr '&' expr", 191"expr : expr '|' expr", 192"expr : '-' expr", 193"expr : LETTER", 194"expr : number", 195"number : DIGIT", 196"number : number DIGIT", 197 198}; 199#endif 200