📄 eqn.cc
字号:
else { if (yychar == 0) goto yyabort;#if YYDEBUG if (yydebug) { yys = 0; if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; if (!yys) yys = "illegal-symbol"; printf("yydebug: state %d, error recovery discards token %d (%s)\n", yystate, yychar, yys); }#endif yychar = (-1); goto yyloop; }yyreduce:#if YYDEBUG if (yydebug) printf("yydebug: state %d, reducing by rule %d (%s)\n", yystate, yyn, yyrule[yyn]);#endif yym = yylen[yyn]; yyval = yyvsp[1-yym]; switch (yyn) {case 2:#line 126 "/u/jjc/groff/eqn/eqn.y"{ yyvsp[0].b->top_level(); non_empty_flag = 1; }break;case 3:#line 131 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = yyvsp[0].b; }break;case 4:#line 133 "/u/jjc/groff/eqn/eqn.y"{ list_box *lb = yyvsp[-1].b->to_list_box(); if (!lb) lb = new list_box(yyvsp[-1].b); lb->append(yyvsp[0].b); yyval.b = lb; }break;case 5:#line 144 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = yyvsp[0].b; }break;case 6:#line 146 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = make_mark_box(yyvsp[0].b); }break;case 7:#line 148 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = make_lineup_box(yyvsp[0].b); }break;case 8:#line 153 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = yyvsp[0].b; }break;case 9:#line 155 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = make_limit_box(yyvsp[-2].b, 0, yyvsp[0].b); }break;case 10:#line 157 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = make_limit_box(yyvsp[-2].b, yyvsp[0].b, 0); }break;case 11:#line 159 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = make_limit_box(yyvsp[-4].b, yyvsp[-2].b, yyvsp[0].b); }break;case 12:#line 161 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = make_limit_box(yyvsp[-4].b, make_limit_box(yyvsp[-2].b, yyvsp[0].b, 0), 0); }break;case 13:#line 166 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = yyvsp[0].b; }break;case 14:#line 168 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = make_sqrt_box(yyvsp[0].b); }break;case 15:#line 170 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = make_over_box(yyvsp[-2].b, yyvsp[0].b); }break;case 16:#line 172 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = make_small_over_box(yyvsp[-2].b, yyvsp[0].b); }break;case 17:#line 177 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = yyvsp[0].b; }break;case 18:#line 179 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = make_script_box(yyvsp[-2].b, 0, yyvsp[0].b); }break;case 19:#line 184 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = yyvsp[0].b; }break;case 20:#line 186 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = make_script_box(yyvsp[-2].b, yyvsp[0].b, 0); }break;case 21:#line 188 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = make_script_box(yyvsp[-4].b, yyvsp[-2].b, yyvsp[0].b); }break;case 22:#line 193 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = split_text(yyvsp[0].str); }break;case 23:#line 195 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = new quoted_text_box(yyvsp[0].str); }break;case 24:#line 197 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = split_text(yyvsp[0].str); }break;case 25:#line 199 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = new quoted_text_box(yyvsp[0].str); }break;case 26:#line 201 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = new half_space_box; }break;case 27:#line 203 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = new space_box; }break;case 28:#line 205 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = new tab_box; }break;case 29:#line 207 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = yyvsp[-1].b; }break;case 30:#line 209 "/u/jjc/groff/eqn/eqn.y"{ yyvsp[0].pb->set_alignment(CENTER_ALIGN); yyval.b = yyvsp[0].pb; }break;case 31:#line 211 "/u/jjc/groff/eqn/eqn.y"{ yyvsp[0].pb->set_alignment(LEFT_ALIGN); yyval.b = yyvsp[0].pb; }break;case 32:#line 213 "/u/jjc/groff/eqn/eqn.y"{ yyvsp[0].pb->set_alignment(RIGHT_ALIGN); yyval.b = yyvsp[0].pb; }break;case 33:#line 215 "/u/jjc/groff/eqn/eqn.y"{ yyvsp[0].pb->set_alignment(CENTER_ALIGN); yyval.b = yyvsp[0].pb; }break;case 34:#line 217 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = yyvsp[-1].mb; }break;case 35:#line 219 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = make_delim_box(yyvsp[-3].str, yyvsp[-2].b, yyvsp[0].str); }break;case 36:#line 221 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = make_delim_box(yyvsp[-1].str, yyvsp[0].b, 0); }break;case 37:#line 223 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = make_overline_box(yyvsp[-1].b); }break;case 38:#line 225 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = make_underline_box(yyvsp[-1].b); }break;case 39:#line 227 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = make_prime_box(yyvsp[-1].b); }break;case 40:#line 229 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = make_accent_box(yyvsp[-2].b, yyvsp[0].b); }break;case 41:#line 231 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = make_uaccent_box(yyvsp[-2].b, yyvsp[0].b); }break;case 42:#line 233 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = new font_box(strsave(get_grfont()), yyvsp[0].b); }break;case 43:#line 235 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = new font_box(strsave(get_gbfont()), yyvsp[0].b); }break;case 44:#line 237 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = new font_box(strsave(get_gfont()), yyvsp[0].b); }break;case 45:#line 239 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = new fat_box(yyvsp[0].b); }break;case 46:#line 241 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = new font_box(yyvsp[-1].str, yyvsp[0].b); }break;case 47:#line 243 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = new size_box(yyvsp[-1].str, yyvsp[0].b); }break;case 48:#line 245 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = new hmotion_box(yyvsp[-1].n, yyvsp[0].b); }break;case 49:#line 247 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = new hmotion_box(-yyvsp[-1].n, yyvsp[0].b); }break;case 50:#line 249 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = new vmotion_box(yyvsp[-1].n, yyvsp[0].b); }break;case 51:#line 251 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = new vmotion_box(-yyvsp[-1].n, yyvsp[0].b); }break;case 52:#line 253 "/u/jjc/groff/eqn/eqn.y"{ yyvsp[0].b->set_spacing_type(yyvsp[-1].str); yyval.b = yyvsp[0].b; }break;case 53:#line 255 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = new vcenter_box(yyvsp[0].b); }break;case 54:#line 257 "/u/jjc/groff/eqn/eqn.y"{ yyval.b = make_special_box(yyvsp[-1].str, yyvsp[0].b); }break;case 55:#line 262 "/u/jjc/groff/eqn/eqn.y"{ int n; if (sscanf(yyvsp[0].str, "%d", &n) == 1) yyval.n = n; a_delete yyvsp[0].str; }break;case 56:#line 272 "/u/jjc/groff/eqn/eqn.y"{ yyval.pb = new pile_box(yyvsp[0].b); }break;case 57:#line 274 "/u/jjc/groff/eqn/eqn.y"{ yyvsp[-2].pb->append(yyvsp[0].b); yyval.pb = yyvsp[-2].pb; }break;case 58:#line 279 "/u/jjc/groff/eqn/eqn.y"{ yyval.pb = yyvsp[-1].pb; }break;case 59:#line 281 "/u/jjc/groff/eqn/eqn.y"{ yyvsp[-1].pb->set_space(yyvsp[-3].n); yyval.pb = yyvsp[-1].pb; }break;case 60:#line 286 "/u/jjc/groff/eqn/eqn.y"{ yyval.mb = new matrix_box(yyvsp[0].col); }break;case 61:#line 288 "/u/jjc/groff/eqn/eqn.y"{ yyvsp[-1].mb->append(yyvsp[0].col); yyval.mb = yyvsp[-1].mb; }break;case 62:#line 293 "/u/jjc/groff/eqn/eqn.y"{ yyval.col = new column(yyvsp[0].b); }break;case 63:#line 295 "/u/jjc/groff/eqn/eqn.y"{ yyvsp[-2].col->append(yyvsp[0].b); yyval.col = yyvsp[-2].col; }break;case 64:#line 300 "/u/jjc/groff/eqn/eqn.y"{ yyval.col = yyvsp[-1].col; }break;case 65:#line 302 "/u/jjc/groff/eqn/eqn.y"{ yyvsp[-1].col->set_space(yyvsp[-3].n); yyval.col = yyvsp[-1].col; }break;case 66:#line 307 "/u/jjc/groff/eqn/eqn.y"{ yyvsp[0].col->set_alignment(CENTER_ALIGN); yyval.col = yyvsp[0].col; }break;case 67:#line 309 "/u/jjc/groff/eqn/eqn.y"{ yyvsp[0].col->set_alignment(LEFT_ALIGN); yyval.col = yyvsp[0].col; }break;case 68:#line 311 "/u/jjc/groff/eqn/eqn.y"{ yyvsp[0].col->set_alignment(RIGHT_ALIGN); yyval.col = yyvsp[0].col; }break;case 69:#line 313 "/u/jjc/groff/eqn/eqn.y"{ yyvsp[0].col->set_alignment(CENTER_ALIGN); yyval.col = yyvsp[0].col; }break;case 70:#line 317 "/u/jjc/groff/eqn/eqn.y"{ yyval.str = yyvsp[0].str; }break;case 71:#line 319 "/u/jjc/groff/eqn/eqn.y"{ yyval.str = yyvsp[0].str; }break;case 72:#line 324 "/u/jjc/groff/eqn/eqn.y"{ yyval.str = yyvsp[0].str; }break;case 73:#line 326 "/u/jjc/groff/eqn/eqn.y"{ yyval.str = strsave("{"); }break;case 74:#line 328 "/u/jjc/groff/eqn/eqn.y"{ yyval.str = strsave("}"); }break;#line 1107 "y.tab.c" } yyssp -= yym; yystate = *yyssp; yyvsp -= yym; yym = yylhs[yyn]; if (yystate == 0 && yym == 0) {#if YYDEBUG if (yydebug) printf("yydebug: after reduction, shifting from state 0 to\ state %d\n", YYFINAL);#endif yystate = YYFINAL; *++yyssp = YYFINAL; *++yyvsp = yyval; if (yychar < 0) { if ((yychar = yylex()) < 0) yychar = 0;#if YYDEBUG if (yydebug) { yys = 0; if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; if (!yys) yys = "illegal-symbol"; printf("yydebug: state %d, reading %d (%s)\n", YYFINAL, yychar, yys); }#endif } if (yychar == 0) goto yyaccept; goto yyloop; } if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 && yyn <= YYTABLESIZE && yycheck[yyn] == yystate) yystate = yytable[yyn]; else yystate = yydgoto[yym];#if YYDEBUG if (yydebug) printf("yydebug: after reduction, shifting from state %d \to state %d\n", *yyssp, yystate);#endif if (yyssp >= yyss + yystacksize - 1) { goto yyoverflow; } *++yyssp = yystate; *++yyvsp = yyval; goto yyloop;yyoverflow: yyerror("yacc stack overflow");yyabort: return (1);yyaccept: return (0);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -