⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 parse_noyacc.c

📁 nedit 是一款linux下的开发源码的功能强大的编辑器
💻 C
📖 第 1 页 / 共 5 页
字号:
        yychar = (-1);        if (yyerrflag > 0)  --yyerrflag;        goto yyloop;    }    if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&            yyn <= YYTABLESIZE && yycheck[yyn] == yychar)    {        yyn = yytable[yyn];        goto yyreduce;    }    if (yyerrflag) goto yyinrecovery;#if defined(lint) || defined(__GNUC__)    goto yynewerror;#endifyynewerror:    yyerror("syntax error");#if defined(lint) || defined(__GNUC__)    goto yyerrlab;#endifyyerrlab:    ++yynerrs;yyinrecovery:    if (yyerrflag < 3)    {        yyerrflag = 3;        for (;;)        {            if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&                    yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)            {#if YYDEBUG                if (yydebug)                    printf("%sdebug: state %d, error recovery shifting\ to state %d\n", YYPREFIX, *yyssp, yytable[yyn]);#endif                if (yyssp >= yysslim && yygrowstack())                {                    goto yyoverflow;                }                *++yyssp = yystate = yytable[yyn];                *++yyvsp = yylval;                goto yyloop;            }            else            {#if YYDEBUG                if (yydebug)                    printf("%sdebug: error recovery discarding state %d\n",                            YYPREFIX, *yyssp);#endif                if (yyssp <= yyss) goto yyabort;                --yyssp;                --yyvsp;            }        }    }    else    {        if (yychar == 0) goto yyabort;#if YYDEBUG        if (yydebug)        {            yys = 0;            if (yychar <= YYMAXTOKEN) yys = yyname[yychar];            if (!yys) yys = "illegal-symbol";            printf("%sdebug: state %d, error recovery discards token %d (%s)\n",                    YYPREFIX, yystate, yychar, yys);        }#endif        yychar = (-1);        goto yyloop;    }yyreduce:#if YYDEBUG    if (yydebug)        printf("%sdebug: state %d, reducing by rule %d (%s)\n",                YYPREFIX, yystate, yyn, yyrule[yyn]);#endif    yym = yylen[yyn];    yyval = yyvsp[1-yym];    switch (yyn)    {case 1:#line 89 "parse.y"{                ADD_OP(OP_RETURN_NO_VAL); return 0;            }break;case 2:#line 92 "parse.y"{                ADD_OP(OP_RETURN_NO_VAL); return 0;            }break;case 3:#line 95 "parse.y"{                ADD_OP(OP_RETURN_NO_VAL); return 0;            }break;case 4:#line 98 "parse.y"{                return 1;            }break;case 11:#line 110 "parse.y"{                SET_BR_OFF(yyvsp[-3].inst, GetPC());            }break;case 12:#line 113 "parse.y"{                SET_BR_OFF(yyvsp[-6].inst, (yyvsp[-2].inst+1)); SET_BR_OFF(yyvsp[-2].inst, GetPC());            }break;case 13:#line 116 "parse.y"{                ADD_OP(OP_BRANCH); ADD_BR_OFF(yyvsp[-5].inst);                SET_BR_OFF(yyvsp[-3].inst, GetPC()); FillLoopAddrs(GetPC(), yyvsp[-5].inst);            }break;case 14:#line 120 "parse.y"{                FillLoopAddrs(GetPC()+2+(yyvsp[-3].inst-(yyvsp[-5].inst+1)), GetPC());                SwapCode(yyvsp[-5].inst+1, yyvsp[-3].inst, GetPC());                ADD_OP(OP_BRANCH); ADD_BR_OFF(yyvsp[-7].inst); SET_BR_OFF(yyvsp[-5].inst, GetPC());            }break;case 15:#line 125 "parse.y"{                Symbol *iterSym = InstallIteratorSymbol();                ADD_OP(OP_BEGIN_ARRAY_ITER); ADD_SYM(iterSym);                ADD_OP(OP_ARRAY_ITER); ADD_SYM(yyvsp[-3].sym); ADD_SYM(iterSym); ADD_BR_OFF(0);            }break;case 16:#line 130 "parse.y"{                    ADD_OP(OP_BRANCH); ADD_BR_OFF(yyvsp[-4].inst+2);                    SET_BR_OFF(yyvsp[-4].inst+5, GetPC());                    FillLoopAddrs(GetPC(), yyvsp[-4].inst+2);            }break;case 17:#line 135 "parse.y"{                ADD_OP(OP_BRANCH); ADD_BR_OFF(0);                if (AddBreakAddr(GetPC()-1)) {                    yyerror("break outside loop"); YYERROR;                }            }break;case 18:#line 141 "parse.y"{                ADD_OP(OP_BRANCH); ADD_BR_OFF(0);                if (AddContinueAddr(GetPC()-1)) {                    yyerror("continue outside loop"); YYERROR;                }            }break;case 19:#line 147 "parse.y"{                ADD_OP(OP_RETURN);            }break;case 20:#line 150 "parse.y"{                ADD_OP(OP_RETURN_NO_VAL);            }break;case 21:#line 154 "parse.y"{                ADD_OP(OP_ASSIGN); ADD_SYM(yyvsp[-2].sym);            }break;case 22:#line 157 "parse.y"{                ADD_OP(OP_ADD); ADD_OP(OP_ASSIGN); ADD_SYM(yyvsp[-2].sym);            }break;case 23:#line 160 "parse.y"{                ADD_OP(OP_SUB); ADD_OP(OP_ASSIGN); ADD_SYM(yyvsp[-2].sym);            }break;case 24:#line 163 "parse.y"{                ADD_OP(OP_MUL); ADD_OP(OP_ASSIGN); ADD_SYM(yyvsp[-2].sym);            }break;case 25:#line 166 "parse.y"{                ADD_OP(OP_DIV); ADD_OP(OP_ASSIGN); ADD_SYM(yyvsp[-2].sym);            }break;case 26:#line 169 "parse.y"{                ADD_OP(OP_MOD); ADD_OP(OP_ASSIGN); ADD_SYM(yyvsp[-2].sym);            }break;case 27:#line 172 "parse.y"{                ADD_OP(OP_BIT_AND); ADD_OP(OP_ASSIGN); ADD_SYM(yyvsp[-2].sym);            }break;case 28:#line 175 "parse.y"{                ADD_OP(OP_BIT_OR); ADD_OP(OP_ASSIGN); ADD_SYM(yyvsp[-2].sym);            }break;case 29:#line 178 "parse.y"{                ADD_OP(OP_ARRAY_DELETE); ADD_IMMED((void *)yyvsp[-1].nArgs);            }break;case 30:#line 181 "parse.y"{                ADD_OP(OP_ARRAY_ASSIGN); ADD_IMMED((void *)yyvsp[-3].nArgs);            }break;case 31:#line 184 "parse.y"{                ADD_OP(OP_ARRAY_REF_ASSIGN_SETUP); ADD_IMMED((void *)1); ADD_IMMED((void *)yyvsp[-3].nArgs);                ADD_OP(OP_ADD);                ADD_OP(OP_ARRAY_ASSIGN); ADD_IMMED((void *)yyvsp[-3].nArgs);            }break;case 32:#line 189 "parse.y"{                ADD_OP(OP_ARRAY_REF_ASSIGN_SETUP); ADD_IMMED((void *)1); ADD_IMMED((void *)yyvsp[-3].nArgs);                ADD_OP(OP_SUB);                ADD_OP(OP_ARRAY_ASSIGN); ADD_IMMED((void *)yyvsp[-3].nArgs);            }break;case 33:#line 194 "parse.y"{                ADD_OP(OP_ARRAY_REF_ASSIGN_SETUP); ADD_IMMED((void *)1); ADD_IMMED((void *)yyvsp[-3].nArgs);                ADD_OP(OP_MUL);                ADD_OP(OP_ARRAY_ASSIGN); ADD_IMMED((void *)yyvsp[-3].nArgs);            }break;case 34:#line 199 "parse.y"{                ADD_OP(OP_ARRAY_REF_ASSIGN_SETUP); ADD_IMMED((void *)1); ADD_IMMED((void *)yyvsp[-3].nArgs);                ADD_OP(OP_DIV);                ADD_OP(OP_ARRAY_ASSIGN); ADD_IMMED((void *)yyvsp[-3].nArgs);            }break;case 35:#line 204 "parse.y"{                ADD_OP(OP_ARRAY_REF_ASSIGN_SETUP); ADD_IMMED((void *)1); ADD_IMMED((void *)yyvsp[-3].nArgs);                ADD_OP(OP_MOD);                ADD_OP(OP_ARRAY_ASSIGN); ADD_IMMED((void *)yyvsp[-3].nArgs);            }break;case 36:#line 209 "parse.y"{                ADD_OP(OP_ARRAY_REF_ASSIGN_SETUP); ADD_IMMED((void *)1); ADD_IMMED((void *)yyvsp[-3].nArgs);                ADD_OP(OP_BIT_AND);                ADD_OP(OP_ARRAY_ASSIGN); ADD_IMMED((void *)yyvsp[-3].nArgs);            }break;case 37:#line 214 "parse.y"{                ADD_OP(OP_ARRAY_REF_ASSIGN_SETUP); ADD_IMMED((void *)1); ADD_IMMED((void *)yyvsp[-3].nArgs);                ADD_OP(OP_BIT_OR);                ADD_OP(OP_ARRAY_ASSIGN); ADD_IMMED((void *)yyvsp[-3].nArgs);            }break;case 38:#line 219 "parse.y"{                ADD_OP(OP_ARRAY_REF_ASSIGN_SETUP); ADD_IMMED((void *)0); ADD_IMMED((void *)yyvsp[-2].nArgs);                ADD_OP(OP_INCR);                ADD_OP(OP_ARRAY_ASSIGN); ADD_IMMED((void *)yyvsp[-2].nArgs);            }break;case 39:#line 224 "parse.y"{                ADD_OP(OP_ARRAY_REF_ASSIGN_SETUP); ADD_IMMED((void *)0); ADD_IMMED((void *)yyvsp[-2].nArgs);                ADD_OP(OP_DECR);                ADD_OP(OP_ARRAY_ASSIGN); ADD_IMMED((void *)yyvsp[-2].nArgs);            }break;case 40:#line 229 "parse.y"{                ADD_OP(OP_ARRAY_REF_ASSIGN_SETUP); ADD_IMMED((void *)0); ADD_IMMED((void *)yyvsp[-1].nArgs);                ADD_OP(OP_INCR);                ADD_OP(OP_ARRAY_ASSIGN); ADD_IMMED((void *)yyvsp[-1].nArgs);            }break;case 41:#line 234 "parse.y"{                ADD_OP(OP_ARRAY_REF_ASSIGN_SETUP); ADD_IMMED((void *)0); ADD_IMMED((void *)yyvsp[-1].nArgs);                ADD_OP(OP_DECR);                ADD_OP(OP_ARRAY_ASSIGN); ADD_IMMED((void *)yyvsp[-1].nArgs);            }break;case 42:#line 239 "parse.y"{                ADD_OP(OP_SUBR_CALL);                ADD_SYM(PromoteToGlobal(yyvsp[-3].sym)); ADD_IMMED((void *)yyvsp[-1].nArgs);            }break;case 43:#line 243 "parse.y"{                ADD_OP(OP_PUSH_SYM); ADD_SYM(yyvsp[0].sym); ADD_OP(OP_INCR);                ADD_OP(OP_ASSIGN); ADD_SYM(yyvsp[0].sym);            }break;case 44:#line 247 "parse.y"{                ADD_OP(OP_PUSH_SYM); ADD_SYM(yyvsp[-1].sym); ADD_OP(OP_INCR);                ADD_OP(OP_ASSIGN); ADD_SYM(yyvsp[-1].sym);            }break;case 45:#line 251 "parse.y"{                ADD_OP(OP_PUSH_SYM); ADD_SYM(yyvsp[0].sym); ADD_OP(OP_DECR);                ADD_OP(OP_ASSIGN); ADD_SYM(yyvsp[0].sym);            }break;case 46:#line 255 "parse.y"{                ADD_OP(OP_PUSH_SYM); ADD_SYM(yyvsp[-1].sym); ADD_OP(OP_DECR);                ADD_OP(OP_ASSIGN); ADD_SYM(yyvsp[-1].sym);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -