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

📄 as.c

📁 坦尼保姆
💻 C
📖 第 1 页 / 共 4 页
字号:
break;case 30:#line 823 "as.y"{				if (1 != 0 && (pass != 0))					newrelo(yyvsp[0].y_expr.typ, (int)yyvsp[-1].y_word|(0));				emitx(yyvsp[0].y_expr.val, (int)yyvsp[-1].y_word);			}break;case 31:#line 831 "as.y"{				if (1 != 0 && (pass != 0))					newrelo(yyvsp[0].y_expr.typ, (int)yyvsp[-3].y_word|(0));				emitx(yyvsp[0].y_expr.val, (int)yyvsp[-3].y_word);			}break;case 32:#line 840 "as.y"{	serror("expr syntax err");				yyval.y_expr.val = 0; yyval.y_expr.typ = 0x0000			;			}break;case 33:#line 844 "as.y"{	yyval.y_expr.val = yyvsp[0].y_valu; yyval.y_expr.typ = 0x0001			;}break;case 34:#line 846 "as.y"{	yyval.y_expr.val = load(yyvsp[0].y_item); 				last_it = yyvsp[0].y_item;				yyval.y_expr.typ = yyvsp[0].y_item->i_type & ~0x0080			;			}break;case 35:#line 851 "as.y"{	if (stringlen != 1)					serror("too many chars");				yyval.y_expr.val = stringbuf[0];				yyval.y_expr.typ = 0x0001			;			}break;case 36:#line 857 "as.y"{	yyval.y_expr = yyvsp[-1].y_expr;}break;case 37:#line 859 "as.y"{	yyval.y_expr.val = (yyvsp[-2].y_expr.val || yyvsp[0].y_expr.val);				yyval.y_expr.typ = combine(yyvsp[-2].y_expr.typ, yyvsp[0].y_expr.typ, 0);			}break;case 38:#line 863 "as.y"{	yyval.y_expr.val = (yyvsp[-2].y_expr.val && yyvsp[0].y_expr.val);				yyval.y_expr.typ = combine(yyvsp[-2].y_expr.typ, yyvsp[0].y_expr.typ, 0);			}break;case 39:#line 867 "as.y"{	yyval.y_expr.val = (yyvsp[-2].y_expr.val | yyvsp[0].y_expr.val);				yyval.y_expr.typ = combine(yyvsp[-2].y_expr.typ, yyvsp[0].y_expr.typ, 0);			}break;case 40:#line 871 "as.y"{	yyval.y_expr.val = (yyvsp[-2].y_expr.val ^ yyvsp[0].y_expr.val);				yyval.y_expr.typ = combine(yyvsp[-2].y_expr.typ, yyvsp[0].y_expr.typ, 0);			}break;case 41:#line 875 "as.y"{	yyval.y_expr.val = (yyvsp[-2].y_expr.val & yyvsp[0].y_expr.val);				yyval.y_expr.typ = combine(yyvsp[-2].y_expr.typ, yyvsp[0].y_expr.typ, 0);			}break;case 42:#line 879 "as.y"{	yyval.y_expr.val = (yyvsp[-2].y_expr.val == yyvsp[0].y_expr.val);				yyval.y_expr.typ = combine(yyvsp[-2].y_expr.typ, yyvsp[0].y_expr.typ, '>');			}break;case 43:#line 883 "as.y"{	yyval.y_expr.val = (yyvsp[-2].y_expr.val != yyvsp[0].y_expr.val);				yyval.y_expr.typ = combine(yyvsp[-2].y_expr.typ, yyvsp[0].y_expr.typ, '>');			}break;case 44:#line 887 "as.y"{	yyval.y_expr.val = (yyvsp[-2].y_expr.val < yyvsp[0].y_expr.val);				yyval.y_expr.typ = combine(yyvsp[-2].y_expr.typ, yyvsp[0].y_expr.typ, '>');			}break;case 45:#line 891 "as.y"{	yyval.y_expr.val = (yyvsp[-2].y_expr.val > yyvsp[0].y_expr.val);				yyval.y_expr.typ = combine(yyvsp[-2].y_expr.typ, yyvsp[0].y_expr.typ, '>');			}break;case 46:#line 895 "as.y"{	yyval.y_expr.val = (yyvsp[-2].y_expr.val <= yyvsp[0].y_expr.val);				yyval.y_expr.typ = combine(yyvsp[-2].y_expr.typ, yyvsp[0].y_expr.typ, '>');			}break;case 47:#line 899 "as.y"{	yyval.y_expr.val = (yyvsp[-2].y_expr.val >= yyvsp[0].y_expr.val);				yyval.y_expr.typ = combine(yyvsp[-2].y_expr.typ, yyvsp[0].y_expr.typ, '>');			}break;case 48:#line 903 "as.y"{	yyval.y_expr.val = (yyvsp[-2].y_expr.val >> yyvsp[0].y_expr.val);				yyval.y_expr.typ = combine(yyvsp[-2].y_expr.typ, yyvsp[0].y_expr.typ, 0);			}break;case 49:#line 907 "as.y"{	yyval.y_expr.val = (yyvsp[-2].y_expr.val << yyvsp[0].y_expr.val);				yyval.y_expr.typ = combine(yyvsp[-2].y_expr.typ, yyvsp[0].y_expr.typ, 0);			}break;case 50:#line 911 "as.y"{	yyval.y_expr.val = (yyvsp[-2].y_expr.val + yyvsp[0].y_expr.val);				yyval.y_expr.typ = combine(yyvsp[-2].y_expr.typ, yyvsp[0].y_expr.typ, '+');			}break;case 51:#line 915 "as.y"{	yyval.y_expr.val = (yyvsp[-2].y_expr.val - yyvsp[0].y_expr.val);				yyval.y_expr.typ = combine(yyvsp[-2].y_expr.typ, yyvsp[0].y_expr.typ, '-');			}break;case 52:#line 919 "as.y"{	yyval.y_expr.val = (yyvsp[-2].y_expr.val * yyvsp[0].y_expr.val);				yyval.y_expr.typ = combine(yyvsp[-2].y_expr.typ, yyvsp[0].y_expr.typ, 0);			}break;case 53:#line 923 "as.y"{	if (yyvsp[0].y_expr.val == 0) {					if (pass == 2)						serror("divide by zero");					yyval.y_expr.val = 0;				} else					yyval.y_expr.val = (yyvsp[-2].y_expr.val / yyvsp[0].y_expr.val);				yyval.y_expr.typ = combine(yyvsp[-2].y_expr.typ, yyvsp[0].y_expr.typ, 0);			}break;case 54:#line 932 "as.y"{	if (yyvsp[0].y_expr.val == 0) {					if (pass == 2)						serror("divide by zero");					yyval.y_expr.val = 0;				} else					yyval.y_expr.val = (yyvsp[-2].y_expr.val % yyvsp[0].y_expr.val);				yyval.y_expr.typ = combine(yyvsp[-2].y_expr.typ, yyvsp[0].y_expr.typ, 0);			}break;case 55:#line 941 "as.y"{	yyval.y_expr.val = yyvsp[0].y_expr.val;				yyval.y_expr.typ = combine(0x0001			, yyvsp[0].y_expr.typ, 0);			}break;case 56:#line 945 "as.y"{	yyval.y_expr.val = -yyvsp[0].y_expr.val;				yyval.y_expr.typ = combine(0x0001			, yyvsp[0].y_expr.typ, 0);			}break;case 57:#line 949 "as.y"{	yyval.y_expr.val = ~yyvsp[0].y_expr.val;				yyval.y_expr.typ = combine(0x0001			, yyvsp[0].y_expr.typ, 0);			}break;case 58:#line 953 "as.y"{	yyval.y_expr.val = DOTVAL;				yyval.y_expr.typ = DOTTYP|0x0400;			}break;case 61:#line 961 "as.y"{	if ((yyvsp[0].y_expr.typ & ~0x0080			) != 0x0001			)					serror("must be absolute");				yyval.y_valu = yyvsp[0].y_expr.val;			}break;case 62:#line 968 "as.y"{	yyval.y_valu = 0;}break;case 63:#line 970 "as.y"{	yyval.y_valu = yyvsp[0].y_valu;}break;case 64:#line 974 "as.y"{	yyval.y_valu = 0;}break;case 65:#line 976 "as.y"{	yyval.y_valu = yyvsp[0].y_valu;}break;case 68:#line 995 "as.y"{	emit1(yyvsp[0].y_word);}break;case 69:#line 998 "as.y"{	emit1(yyvsp[0].y_word);}break;case 70:#line 1000 "as.y"{	emit2(yyvsp[0].y_word);}break;case 71:#line 1002 "as.y"{	branch(yyvsp[-1].y_word,yyvsp[0].y_expr);}break;case 72:#line 1004 "as.y"{	pushop(yyvsp[-1].y_word);}break;case 73:#line 1006 "as.y"{	emit1(yyvsp[-1].y_word);				newrelo(yyvsp[0].y_expr.typ, 1			);				emit1(yyvsp[0].y_expr.val);			}break;case 74:#line 1013 "as.y"{	if (yyvsp[0].y_word!=2) serror("register error");				emit1(yyvsp[-1].y_word+010);			}break;case 75:#line 1017 "as.y"{	addop(yyvsp[-1].y_word);}break;case 76:#line 1019 "as.y"{	rolop(yyvsp[-1].y_word);}break;case 77:#line 1021 "as.y"{	incop(yyvsp[-1].y_word);}break;case 78:#line 1023 "as.y"{	imul(yyvsp[-1].y_word);}break;case 79:#line 1025 "as.y"{	regsize(yyvsp[-1].y_word); emit1(0366|(yyvsp[-1].y_word&1)); ea_1(yyvsp[-1].y_word&070);}break;case 80:#line 1027 "as.y"{	regsize(yyvsp[-1].y_word); emit1(0366|(yyvsp[-1].y_word&1)); ea_1(yyvsp[-1].y_word&070);}break;case 81:#line 1029 "as.y"{	callop(yyvsp[-1].y_word&0xFFFF);}break;case 82:#line 1031 "as.y"{	emit1(yyvsp[-3].y_word>>8);				newrelo(yyvsp[0].y_expr.typ, 2			);				emit2(yyvsp[0].y_expr.val);				newrelo(yyvsp[-2].y_expr.typ, 2			);				emit2(yyvsp[-2].y_expr.val);			}break;case 83:#line 1042 "as.y"{	emit1(0377); ea_2(yyvsp[-1].y_word&0xFF);}break;case 84:#line 1044 "as.y"{	if (!(((((yyvsp[-2].y_valu) + 0x8000L) & ~0xFFFFL) == 0))) nofit(); if (!(((((yyvsp[0].y_valu) + 0x80) & ~((int)0xFF)) == 0))) nofit();				emit1(yyvsp[-3].y_word); emit2((int)yyvsp[-2].y_valu); emit1((int)yyvsp[0].y_valu);			}break;case 85:#line 1048 "as.y"{	emit1(yyvsp[-3].y_word); ea_2(yyvsp[-2].y_word<<3);}break;case 86:#line 1050 "as.y"{	emit1(yyvsp[-3].y_word); ea_2(yyvsp[0].y_word<<3);}break;case 87:#line 1052 "as.y"{	emit1(0xF); emit1(yyvsp[-3].y_word);				ea_2(yyvsp[-2].y_word<<3);			}break;case 88:#line 1056 "as.y"{	regsize(1); emit1(0xF); emit1(yyvsp[-1].y_word&07); 				ea_1(yyvsp[-1].y_word&070);			}break;case 89:#line 1060 "as.y"{	if (!(((yyvsp[-2].y_valu & 077) == yyvsp[-2].y_valu))) nofit();				emit1(0330 | yyvsp[-2].y_valu>>3);				ea_2((yyvsp[-2].y_valu&7)<<3);			}break;case 90:#line 1065 "as.y"{	if (yyvsp[0].y_valu==3)					emit1(0314);				else {					emit1(0315); emit1(yyvsp[0].y_valu);				}			}break;case 91:#line 1072 "as.y"{	emit1(yyvsp[0].y_word);}break;case 92:#line 1074 "as.y"{	emit1(yyvsp[-1].y_word-1);				newrelo(yyvsp[0].y_expr.typ, 2			);				emit2(yyvsp[0].y_expr.val);			}break;case 93:#line 1081 "as.y"{	xchg(yyvsp[-1].y_word);}break;case 94:#line 1083 "as.y"{	test(yyvsp[-1].y_word);}break;case 95:#line 1085 "as.y"{	mov(yyvsp[-1].y_word);}break;case 96:#line 1106 "as.y"{	if (!((yyvsp[-1].y_valu & 07) == yyvsp[-1].y_valu)) {					serror("illegal index in FP stack");				}				yyval.y_valu = yyvsp[-1].y_valu;			}break;case 97:#line 1113 "as.y"{	mrg_2 = 6; exp_2 = yyvsp[-1].y_expr;				{rel_2 =  relonami;  relonami = 0;};			}break;case 98:#line 1117 "as.y"{	exp_2.val = 0; exp_2.typ = 0x0001			; indexed();}break;case 99:#line 1119 "as.y"{	exp_2 = yyvsp[-1].y_expr; indexed();				{rel_2 =  relonami;  relonami = 0;};			}break;case 100:#line 1124 "as.y"{	mrg_2 = sr_m[yyvsp[-1].y_word];}break;case 101:#line 1126 "as.y"{	mrg_2 = dr_m[yyvsp[-4].y_word][yyvsp[-1].y_word];}break;case 103:#line 1130 "as.y"{	mrg_2 = yyvsp[0].y_word | 0300;}break;case 104:#line 1132 "as.y"{	mrg_2 = yyvsp[0].y_word | 0310;}break;case 105:#line 1134 "as.y"{	mrg_2 = yyvsp[0].y_word | 020;}break;case 106:#line 1136 "as.y"{	mrg_2 = 040; exp_2 = yyvsp[0].y_expr;				{rel_2 =  relonami;  relonami = 0;};			}break;case 107:#line 1141 "as.y"{	mrg_1 = mrg_2; exp_1 = exp_2;				{rel_1 =  rel_2;  rel_2 = 0;};			}break;#line 1848 "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 + -