📄 y.tab.c
字号:
} break;case 115:# line 779 "gram.y"{ Vtype(yypvt[-0].p) = Ntype(yypvt[-1].p); Ntype(yypvt[-1].p) = (Ptype)yypvt[-0].p; } break;case 116:# line 785 "gram.y"{ yyval.p = new name; } break;case 117:# line 787 "gram.y"{ Ptyp(yypvt[-1].p) = Ntype(yypvt[-0].p); Ntype(yypvt[-0].p) = (Ptype)yypvt[-1].p; yyval.p = yypvt[-0].p; } break;case 118:# line 792 "gram.y"{ Vtype(yypvt[-0].p) = Ntype(yypvt[-1].p); Ntype(yypvt[-1].p) = (Ptype)yypvt[-0].p; } break;case 119:# line 796 "gram.y"{ Freturns(yypvt[-0].p) = Ntype(yypvt[-2].p); Ntype(yypvt[-2].p) = yypvt[-0].pt; yyval.p = yypvt[-2].p; } break;case 120:# line 801 "gram.y"{ Vtype(yypvt[-0].p) = Ntype(yypvt[-2].p); Ntype(yypvt[-2].p) = yypvt[-0].pt; yyval.p = yypvt[-2].p; } break;case 121:# line 808 "gram.y"{ yyval.p = new name; } break;case 122:# line 810 "gram.y"{ Ptyp(yypvt[-1].p) = Ntype(yypvt[-0].p); Ntype(yypvt[-0].p) = (Ptype)yypvt[-1].p; yyval.p = yypvt[-0].p; } break;case 123:# line 821 "gram.y"{ if (yypvt[-0].p) if (yypvt[-1].p) Sadd(yypvt[-1].p,yypvt[-0].p); else { yyval.p = slistN(yypvt[-0].p); stmt_seen = 1; } } break;case 124:# line 830 "gram.y"{ if (yypvt[-0].p) { yyval.p = slistN(yypvt[-0].p); stmt_seen = 1; } } break;case 125:# line 838 "gram.y"{ yyval.p = yypvt[-1].p; if (yyval.pe == dummy) error("empty condition"); stmt_seen = 1; } break;case 126:# line 845 "gram.y"{ cd_vec[cdi] = cd; stmt_vec[cdi] = stmt_seen; tn_vec[cdi++] = modified_tn; cd = 0; stmt_seen = 0; modified_tn = 0; } break;case 127:# line 853 "gram.y"{ Pname n = Nunlist(cd); Pstmt ss = Sunlist(yypvt[-1].p); yyval.p = new block(yypvt[-3].l,n,ss); if (modified_tn) restore(); cd = cd_vec[--cdi]; stmt_seen = stmt_vec[cdi]; modified_tn = tn_vec[cdi]; if (cdi < 0) error('i',"block level(%d)",cdi); } break;case 128:# line 863 "gram.y"{ yyval.p = new block(yypvt[-1].l,0,0); } break;case 129:# line 865 "gram.y"{ yyval.p = new block(yypvt[-2].l,0,0); } break;case 130:# line 869 "gram.y"{ yyval.p = new estmt(SM,curloc,yypvt[-0].pe,0); } break;case 131:# line 871 "gram.y"{ yyval.p = new stmt(BREAK,yypvt[-0].l,0); } break;case 132:# line 873 "gram.y"{ yyval.p = new stmt(CONTINUE,yypvt[-0].l,0); } break;case 133:# line 875 "gram.y"{ yyval.p = new estmt(RETURN,yypvt[-1].l,yypvt[-0].pe,0); } break;case 134:# line 877 "gram.y"{ yyval.p = new lstmt(GOTO,yypvt[-1].l,yypvt[-0].pn,0); } break;case 135:# line 878 "gram.y"{ stmt_seen=1; } break;case 136:# line 879 "gram.y"{ yyval.p = new estmt(DO,yypvt[-4].l,yypvt[-0].pe,yypvt[-2].ps); } break;case 138:# line 884 "gram.y"{ if (stmt_seen) yyval.p = new estmt(ASM,curloc,(Pexpr)yypvt[-2].s,0); else { Pname n = new name(make_name('A')); n->tp = new basetype(ASM,(Pname)yypvt[-2].s); if (cd) Nadd_list(cd,n); else cd=(Pname)nlistN(n); yyval.p = 0; } } break;case 139:# line 897 "gram.y"{ if (yypvt[-0].pn) if (stmt_seen) { Pname n = yypvt[-0].pn; yyval.p = new block(n->where,n,0); yyval.ps->base = DCL; } else { if (cd) Nadd_list(cd,yypvt[-0].p); else cd = (Pname)nlistN(yypvt[-0].p); yyval.p = 0; } } break;case 140:# line 910 "gram.y"{ Pname n = Pname(yypvt[-0].p); lex_unget(RC); error(&n->where,"%n's definition is nested (did you forget a ``}''?)",n); if (cd) Nadd_list(cd,yypvt[-0].p); else cd = (Pname)nlistN(yypvt[-0].p); yyval.p = 0; } break;case 142:# line 918 "gram.y"{ yyval.p = new ifstmt(yypvt[-2].l,yypvt[-1].pe,yypvt[-0].ps,0); } break;case 143:# line 920 "gram.y"{ yyval.p = new ifstmt(yypvt[-4].l,yypvt[-3].pe,yypvt[-2].ps,yypvt[-0].ps); } break;case 144:# line 922 "gram.y"{ yyval.p = new estmt(WHILE,yypvt[-2].l,yypvt[-1].pe,yypvt[-0].ps); } break;case 145:# line 923 "gram.y"{ stmt_seen=1; } break;case 146:# line 924 "gram.y"{ yyval.p = new forstmt(yypvt[-8].l,yypvt[-5].ps,yypvt[-4].pe,yypvt[-2].pe,yypvt[-0].ps); } break;case 147:# line 926 "gram.y"{ yyval.p = new estmt(SWITCH,yypvt[-2].l,yypvt[-1].pe,yypvt[-0].ps); } break;case 148:# line 927 "gram.y"{ yyval.p = yypvt[-1].pn; stmt_seen=1; } break;case 149:# line 928 "gram.y"{ Pname n = yypvt[-1].pn; yyval.p = new lstmt(LABEL,n->where,n,yypvt[-0].ps); } break;case 150:# line 931 "gram.y"{ stmt_seen=1; } break;case 151:# line 932 "gram.y"{ if (yypvt[-2].pe == dummy) error("empty case label"); yyval.p = new estmt(CASE,yypvt[-4].l,yypvt[-2].pe,yypvt[-0].ps); } break;case 152:# line 935 "gram.y"{ stmt_seen=1; } break;case 153:# line 936 "gram.y"{ yyval.p = new stmt(DEFAULT,yypvt[-3].l,yypvt[-0].ps); } break;case 154:# line 945 "gram.y"{ Pexpr e = Eunlist(yypvt[-0].p); while (e && e->e1==dummy) { if (e->e2) error("EX inEL"); delete e; e = e->e2; } yyval.p = e; } break;case 155:# line 955 "gram.y"{ Pexpr e = new expr(ELIST,yypvt[-0].pe,0); yyval.p = (PP)new elist(e);
} break;case 156:# line 959 "gram.y"{ Pexpr e = new expr(ELIST,yypvt[-0].pe,0); Eadd(yypvt[-2].p,e); } break;case 158:# line 966 "gram.y"{ Pexpr e; if (yypvt[-1].p) e = yypvt[-1].pe; else e = new expr(ELIST,dummy,0); yyval.p = new expr(ILIST,e,0); } break;case 159:# line 978 "gram.y"{ binop: yyval.p = new expr(yypvt[-1].t,yypvt[-2].pe,yypvt[-0].pe); } break;case 160:# line 979 "gram.y"{ goto binop; } break;case 161:# line 980 "gram.y"{ goto binop; } break;case 162:# line 981 "gram.y"{ goto binop; } break;case 163:# line 982 "gram.y"{ goto binop; } break;case 164:# line 983 "gram.y"{ goto binop; } break;case 165:# line 984 "gram.y"{ goto binop; } break;case 166:# line 985 "gram.y"{ goto binop; } break;case 167:# line 986 "gram.y"{ goto binop; } break;case 168:# line 987 "gram.y"{ goto binop; } break;case 169:# line 988 "gram.y"{ goto binop; } break;case 170:# line 989 "gram.y"{ goto binop; } break;case 171:# line 990 "gram.y"{ goto binop; } break;case 172:# line 991 "gram.y"{ goto binop; } break;case 173:# line 992 "gram.y"{ goto binop; } break;case 174:# line 994 "gram.y"{ yyval.p = new qexpr(yypvt[-4].pe,yypvt[-2].pe,yypvt[-0].pe); } break;case 175:# line 996 "gram.y"{ yyval.p = new expr(DELETE,yypvt[-0].pe,0); } break;case 176:# line 998 "gram.y"{ yyval.p = new expr(DELETE,yypvt[-0].pe,yypvt[-2].pe); } break;case 178:# line 1001 "gram.y"{ yyval.p = dummy; } break;case 179:# line 1005 "gram.y"{ TOK b = yypvt[-3].t; Ptype t; switch (b) { case CHAR: t = char_type; break; case SHORT: t = short_type; break; case INT: t = int_type; break; case LONG: t = long_type; break; case UNSIGNED: t = uint_type; break; case FLOAT: t = float_type; break; case DOUBLE: t = double_type; break; case VOID: t = void_type; break; default: error("illegal constructor:%k",b); t = int_type; } yyval.p = new texpr(VALUE,t,yypvt[-1].pe); } break;case 180:# line 1023 "gram.y"{ Ptype t = Ntype(yypvt[-3].p); yyval.p = new texpr(VALUE,t,yypvt[-1].pe); } break;case 181:# line 1027 "gram.y"{ Ptype t = Ntype(yypvt[-0].p); yyval.p = new texpr(NEW,t,0); } break;case 182:# line 1029 "gram.y"{ Ptype t = Ntype(yypvt[-1].p); yyval.p = new texpr(NEW,t,0); } break;case 183:# line 1031 "gram.y"{ yyval.p = new expr(yypvt[-0].t,yypvt[-1].pe,0); } break;case 184:# line 1033 "gram.y"{ yyval.p = new texpr(CAST,Ntype(yypvt[-2].p),yypvt[-0].pe); } break;case 185:# line 1035 "gram.y"{ yyval.p = new expr(DEREF,yypvt[-0].pe,0); } break;case 186:# line 1037 "gram.y"{ yyval.p = new expr(ADDROF,0,yypvt[-0].pe); } break;case 187:# line 1039 "gram.y"{ yyval.p = new expr(UMINUS,0,yypvt[-0].pe); } break;case 188:# line 1041 "gram.y"{ yyval.p = new expr(UPLUS,0,yypvt[-0].pe); } break;case 189:# line 1043 "gram.y"{ yyval.p = new expr(NOT,0,yypvt[-0].pe); } break;case 190:# line 1045 "gram.y"{ yyval.p = new expr(COMPL,0,yypvt[-0].pe); } break;case 191:# line 1047 "gram.y"{ yyval.p = new expr(yypvt[-1].t,0,yypvt[-0].pe); } break;case 192:# line 1049 "gram.y"{ yyval.p = new texpr(SIZEOF,0,yypvt[-0].pe); } break;case 193:# line 1051 "gram.y"{ yyval.p = new texpr(SIZEOF,Ntype(yypvt[-1].p),0); } break;case 194:# line 1053 "gram.y"{ yyval.p = new expr(DEREF,yypvt[-3].pe,yypvt[-1].pe); } break;case 195:# line 1055 "gram.y"{ Pexpr ee = yypvt[-1].pe; Pexpr e = yypvt[-3].pe; if (e->base == NEW) e->e1 = ee; else yyval.p = new call(e,ee); } break;case 196:# line 1063 "gram.y"{ yyval.p = new ref(REF,yypvt[-2].pe,yypvt[-0].pn); } break;case 197:# line 1065 "gram.y"{ Pname n = Ncopy(yypvt[-0].p); yyval.p = new ref(REF,yypvt[-2].pe,n); } break;case 198:# line 1067 "gram.y"{ yyval.p = new ref(DOT,yypvt[-2].pe,yypvt[-0].pn); } break;case 199:# line 1069 "gram.y"{ Pname n = Ncopy(yypvt[-0].p); yyval.p = new ref(DOT,yypvt[-2].pe,n); } break;case 200:# line 1071 "gram.y"{ yyval.p = Ncopy(yypvt[-0].p); yyval.pn->n_qualifier = sta_name; } break;case 202:# line 1074 "gram.y"{ yyval.p = yypvt[-1].p; } break;case 203:# line 1076 "gram.y"{ yyval.p = zero; } break;case 204:# line 1078 "gram.y"{ yyval.p = conN(ICON,yypvt[-0].s); } break;case 205:# line 1080 "gram.y"{ yyval.p = conN(FCON,yypvt[-0].s); } break;case 206:# line 1082 "gram.y"{ yyval.p = conN(STRING,yypvt[-0].s); } break;case 207:# line 1084 "gram.y"{ yyval.p = conN(CCON,yypvt[-0].s); } break;case 208:# line 1086 "gram.y"{ yyval.p = conN(THIS,0); } break;case 209:# line 1094 "gram.y"{ yyval.p = yypvt[-0].pn; } break;case 210:# line 1096 "gram.y"{ yyval.p = Ncopy(yypvt[-0].p); yyval.pn->n_qualifier = yypvt[-2].pn; } break;case 211:# line 1100 "gram.y"{ yyval.p = Ncopy(yypvt[-0].p); Pname nx = ktbl->look(yypvt[-2].pn->string,HIDDEN); if (nx == 0) error("non-typeN%n before ::",yyval.p); yyval.pn->n_qualifier = nx; } break;case 212:# line 1106 "gram.y"{ yyval.p = new name(oper_name(yypvt[-0].t)); yyval.pn->n_oper = yypvt[-0].t; } break;case 213:# line 1110 "gram.y"{ yyval.p = new name(oper_name(yypvt[-0].t)); yyval.pn->n_oper = yypvt[-0].t; yyval.pn->n_qualifier = yypvt[-3].pn; } break;case 214:# line 1115 "gram.y"{ yyval.p = new name(oper_name(yypvt[-0].t)); yyval.pn->n_oper = yypvt[-0].t; Pname nx = ktbl->look(yypvt[-3].pn->string,HIDDEN); if (nx == 0) error("non-typeN%n before ::",yyval.p); yyval.pn->n_qualifier = nx; } break;case 215:# line 1122 "gram.y"{ Pname n = yypvt[-0].pn; static char buf[128]; buf[0] = '_'; buf[1] = 'O'; n->tp->signature(buf+2); n->string = buf; n->tp = 0; yyval.p = n; } break;case 216:# line 1132 "gram.y"{ Pname n = yypvt[-0].pn; static char buf[128]; buf[0] = '_'; buf[1] = 'O'; n->tp->signature(buf+2); n->string = buf; n->tp = 0; n->n_qualifier = yypvt[-3].pn; yyval.p = n; } break;case 217:# line 1143 "gram.y"{ Pname n = yypvt[-0].pn;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -