亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? expr.c

?? C語言編譯器的源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
										if (lastst == comma) 
											getsym();
										tptr = gatherparms(&pnode);
										parmlist(&pnode,tptr,0);
										qnode = makenode(en_icon,0,0);
										pnode = makenode(en_void,makenode(en_icon,(char *)num,0),pnode);
										pnode = makenode(en_trapcall,qnode,pnode);
									}
									goodcode |= GF_ASSIGN;
									*node = pnode;
									return &stdint;

						case kw_D0:
						case kw_D1:
						case kw_D2:
						case kw_D3:
						case kw_D4:
						case kw_D5:
						case kw_D6:
						case kw_D7:
						case kw_D8:
						case kw_D9:
						case kw_DA:
						case kw_DB:
						case kw_DC:
						case kw_DD:
						case kw_DE:
						case kw_DF:
												tptr = xalloc(sizeof(TYP));
												*tptr = stduns;
												tptr->sname = regname;
												pnode = makenode(en_regref,(char *)(regdsize*256+lastst-kw_D0),0);
												pnode = makenode(en_ul_ref,pnode,0);
												*node = pnode;
												getsym();
												return tptr;
						case kw_A0:
						case kw_A1:
						case kw_A2:
						case kw_A3:
						case kw_A4:
						case kw_A5:
						case kw_A6:
						case kw_A7:
						case kw_A8:
						case kw_A9:
						case kw_AA:
						case kw_AB:
						case kw_AC:
						case kw_AD:
						case kw_AE:
						case kw_AF:
												tptr = xalloc(sizeof(TYP));
												*tptr = stduns;
												tptr->sname = regname;
												pnode = makenode(en_regref,(char *)(regasize*256+lastst-kw_D0),0);
												pnode = makenode(en_ul_ref,pnode,0);
												*node = pnode;
												getsym();
												return tptr;
						case kw_F0:
						case kw_F1:
						case kw_F2:
						case kw_F3:
						case kw_F4:
						case kw_F5:
						case kw_F6:
						case kw_F7:
						case kw_F8:
						case kw_F9:
						case kw_FA:
						case kw_FB:
						case kw_FC:
						case kw_FD:
						case kw_FE:
						case kw_FF:
												tptr = xalloc(sizeof(TYP));
												*tptr = stdlongdouble;
												tptr->sname = regname;
												pnode = makenode(en_regref,(char *)(regfsize *256+lastst-kw_D0),0);
												pnode = makenode(en_longdoubleref,pnode,0);
												*node = pnode;
												getsym();
												return tptr;
            case id:  
                        tptr = nameref(&pnode);
                        break;
                case iconst:
                        tptr = &stdint;
                        pnode = makenode(en_icon,(char *)ival,0);
                        getsym();
												*node = pnode;
												return tptr;
                case iuconst:
                        tptr = &stduns;
                        pnode = makenode(en_iucon,(char *)ival,0);
                        getsym();
												*node = pnode;
												return tptr;
                case lconst:
                        tptr = &stdlong;
                        pnode = makenode(en_lcon,(char *)ival,0);
                        getsym();
												*node = pnode;
												return tptr;
                case luconst:
                        tptr = &stdunsigned;
                        pnode = makenode(en_lucon,(char *)ival,0);
                        getsym();
												*node = pnode;
												return tptr;
                case cconst:
                        tptr = &stdchar;
                        pnode = makenode(en_ccon,(char *)ival,0);
                        getsym();
												*node = pnode;
												return tptr;
								case rconst:
												tptr = &stddouble;
        								pnode = xalloc(sizeof(ENODE));
								        pnode->nodetype = en_rcon;
												pnode->cflags = 0;
												pnode->v.f = rval;
												getsym();
												*node = pnode;
												return tptr;
								case lrconst:
												tptr = &stdlongdouble;
        								pnode = xalloc(sizeof(ENODE));
								        pnode->nodetype = en_lrcon;
												pnode->cflags = 0;
												pnode->v.f = rval;
												getsym();
												*node = pnode;
												return tptr;
								case fconst:
												tptr = &stdfloat;
        								pnode = xalloc(sizeof(ENODE));
								        pnode->nodetype = en_fcon;
												pnode->cflags = 0;
												pnode->v.f = rval;
												getsym();
												*node = pnode;
												return tptr;
                case sconst:
												isstring = TRUE;
                        tptr = &stdstring;
                        pnode = makenode(en_labcon,(char *)tostring(),0);
												*node = pnode;
												break;
                case lsconst:
												isstring = TRUE;
                        tptr = &stdstring;
                        pnode = makenode(en_labcon,(char *)tostring(),0);
												*node = pnode;
												break;
                case openpa:
                        getsym();
												if (lastst == star) {
/* function pointers */
																gcode = goodcode;
																goodcode &= ~(GF_AND | GF_SUPERAND);
                                getsym();
																gdf = globaldref;
																globaldref = 1;
																tptr = expression(&pnode);
																globaldref = gdf;
																if (needpunc(closepa, skm_closepa)) {
																	if (tptr->type == bt_ptrfunc) {
																		tptr = deref(&pnode,tptr);
																		goodcode = gcode;
																		if (needpunc(openpa,skm_closepa)) {
																			goodcode |= GF_ASSIGN;
																			tp1 = gatherparms(&qnode);
																			tp1->sname = tptr->sname;
																			parmlist(&qnode,tp1,tptr);
																			rnode = makenode(en_icon,(char *)tptr->btp->size,0);
																			pnode = makenode(en_void,pnode,qnode);
																			if (tptr->cflags & DF_INT)
	                              				pnode = makenode(en_intcall,rnode,pnode);
																			else
																				if (tptr->type == bt_union || tptr->type == bt_struct) {
																					if (lastsym && lastsym->pascaldefn)
	                              						pnode = makenode(en_pfcallb,rnode,pnode);
																					else
	                              						pnode = makenode(en_fcallb,rnode,pnode);
																					pnode->size = tptr->size;
																				}
																				else
																					if (lastsym && lastsym->pascaldefn)
	                              						pnode = makenode(en_pfcall,rnode,pnode);
																					else
	                              						pnode = makenode(en_fcall,rnode,pnode);
																			pnode->cflags = tptr->btp->cflags;
																			tptr = tptr->btp;
																			break;
																		}
																	}
																	else {
																		goodcode = gcode | (goodcode & GF_ASSIGN);
						                      	 break;
 																	}
																}
																else
																	goodcode = gcode | GF_ASSIGN;
																*node = pnode;
																return tptr;
												}
												else
castcont:
                          if( !castbegin(lastst) ) {
/* an expression in parenthesis */
																gcode = goodcode;
																goodcode &= ~(GF_AND | GF_SUPERAND);
																gdf = globaldref;
																globaldref = 0;
																tptr = expression(&pnode);
																globaldref = gdf;
																goodcode = gcode | (goodcode & GF_ASSIGN);
                                needpuncexp(closepa,skm_closepa);
																goto contfor;
                                }
                          else    {       /* cast operator */
/* a cast */
																declid[0] = 0;
                                decl(0); /* do cast declaration */
                                decl1();
                                tptr = head;
                                if (needpunc(closepa, 0)) {
																	gcode = goodcode;
																	goodcode &= ~(GF_AND | GF_SUPERAND);
																	gdf = globaldref;
																	globaldref = 0;
                                	if( (unary(&pnode)) == 0 ) {
                                        generror(ERR_IDEXPECT,0,0);
                                        tptr = 0;
                                	}
																	globaldref = gdf;
																	goodcode = gcode | (goodcode & GF_ASSIGN);
																	pnode->cflags = tptr->cflags;
																	if (tptr) {
																		promote_type(tptr, &pnode);
																	}
																}
																else
																	return(0);
													}
												*node = pnode;
												return tptr;
                default:
                        return 0;
                }
contfor:
/* modifiers that can appear after an expression */
        for(;;) {
								int i;
                switch( lastst ) {
                        case autoinc:
												case autodec:
																if (isstring)
																	generror(ERR_INVALIDSTRING,0,0);
                                if( tptr->type == bt_pointer )
                                        i = tptr->btp->size;
                                else
                                        i = 1;
																if (i == 0)
																	generror(ERR_ZEROPTR,0,0);
                                if(! lvalue(pnode) ) 
                                  generror(ERR_LVALUE,0,0);
																if (pnode->cflags & DF_CONST)
																	generror(ERR_MODCONS,0,0);
							
                                pnode = makenode(lastst==autoinc ? en_ainc : en_adec,pnode,(char *)i);
																goodcode |= GF_ASSIGN;
                                getsym();
																break;
                        case openbr:    /* build a subscript reference */
																flag = 1;
                                if( tptr->type != bt_pointer )
                                        generrorexp(ERR_NOPOINTER,0,skm_closebr);
                                else
                                        tptr = tptr->btp;
                                getsym();
                                qnode = makenode(en_icon,(char *)tptr->size,0);
																gcode = goodcode;
																goodcode &= ~(GF_AND | GF_SUPERAND);
																gdf = globaldref;
																globaldref = 0;
																tp2 = expression(&rnode);
																globaldref = gdf;
																goodcode = gcode & ~GF_ASSIGN;
																if (!isscalar(tp2) || tp2->type == bt_float || tp2->type == bt_double || tp2->type == bt_longdouble)
                                  generror(ERR_ARRAYMISMATCH,0,0);
                                qnode = makenode(en_pmul,qnode,rnode);
                                pnode = makenode(en_add,pnode,qnode);
																pnode->cflags = tptr->cflags;
                                if( tptr->val_flag == 0 )
                                        tptr = deref(&pnode,tptr);
                                needpuncexp(closebr,skm_closebr);
                            		break;
                        case pointsto: /* pointer reference */
                                if( tptr->type != bt_pointer ) {
                                        generror(ERR_NOPOINTER,0,0);
																				while (lastst == pointsto || lastst == dot) {
																					getsym();
																					getsym();
																				}
																				break;
																}
                                else
                                        tptr = tptr->btp;
																pnode->cflags = tptr->cflags;
                                if( tptr->val_flag == 0 ) {
                                        pnode = makenode(en_l_ref,pnode,0);
																				pnode->cflags = tptr->cflags;
																}
																
/*
 *      fall through to dot operation
 */
                        case dot:
																if (isstring)
																	generror(ERR_INVALIDSTRING,0,0);
                                getsym();       /* past -> or . */
                                if( lastst != id )
                                        generror(ERR_IDEXPECT,0,0);
                                else    {
                                        sp = search(nm=litlate(lastid),&tptr->lst);
                                        if( sp == 0 ) {
                        												tptr = &stdmatch;
																								pnode = makenode(en_nacon,&undef,0);
                                                gensymerror(ERR_UNDEFINED,nm);
																								getsym();
																								while (lastst == pointsto || lastst == dot) {
																									getsym();
																									getsym();
																								}
																				}
                                        else    {
																									
                                                tp2 = sp->tp;
																								if (pnode->nodetype == en_fcallb || pnode->nodetype == en_pfcallb) {
																									if (pnode->nodetype == en_pfcallb) 
																										pnode = makenode(en_pcallblock,dummyvar(pnode->size,tp2),pnode);
																									else
																										pnode = makenode(en_callblock,dummyvar(pnode->size,tp2),pnode);
																											
																								}
                                                qnode = makenode(en_icon,(char *)sp->value.i,0);
                                                pnode = makenode(en_add,pnode,qnode);
																								pnode->cflags = tptr->cflags | pnode->v.p[0]->cflags;
																								tp2->uflags |= tptr->uflags;
																								tptr = tp2; 
                                                if( tptr->val_flag == 0 )
                                                    tptr = deref(&pnode,tptr);
																								if (tp2->bits != -1) {
																									qnode = pnode;
																									pnode = makenode(en_bits,qnode,0);
																									pnode->bits = tp2->bits;
																									pnode->startbit = tp2->startbit;
																									pnode->cflags = tptr->cflags | pnode->v.p[0]->cflags;
																								}
                                        }
                                        getsym();       /* past id */
                                }
                                break;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国精品国产尤物美女| 国产午夜精品久久久久久久| 韩国女主播成人在线| 亚洲免费观看在线视频| 日韩三级视频中文字幕| av在线综合网| 蜜臀久久久99精品久久久久久| 国产精品第一页第二页第三页| 日韩三级视频在线观看| 色综合天天狠狠| 国产精品一区二区三区乱码 | 精品美女一区二区三区| 99久久精品免费看国产| 国产毛片精品视频| 亚洲成a人片在线不卡一二三区| 国产色综合一区| 日韩欧美色综合网站| 欧美日韩激情一区二区三区| 成人精品视频.| 国产又黄又大久久| 青青草原综合久久大伊人精品| 亚洲美女淫视频| 国产精品少妇自拍| 精品国产91久久久久久久妲己 | 精品少妇一区二区三区免费观看 | 欧美日韩色一区| 色综合视频一区二区三区高清| 国产精品性做久久久久久| 日本伊人色综合网| 亚洲国产精品精华液网站| 国产精品久久久久四虎| 欧美国产精品专区| 精品国产免费人成电影在线观看四季| 欧美日韩一区在线| 色婷婷激情一区二区三区| 91在线播放网址| 99视频精品在线| 99久久国产综合精品女不卡| 盗摄精品av一区二区三区| 韩国视频一区二区| 韩国理伦片一区二区三区在线播放| 日本成人在线网站| 麻豆国产欧美一区二区三区| 日韩极品在线观看| 午夜精品一区二区三区电影天堂| 亚洲一区二区三区小说| 一区二区在线观看免费| 亚洲摸摸操操av| 亚洲视频在线一区观看| 亚洲人成电影网站色mp4| 1024亚洲合集| 亚洲一区影音先锋| 亚洲va中文字幕| 视频精品一区二区| 麻豆精品一区二区三区| 黄页视频在线91| 国产不卡免费视频| 不卡的av网站| 色婷婷一区二区三区四区| 在线观看一区不卡| 777欧美精品| 精品福利二区三区| 日本一区二区视频在线观看| 日韩一区中文字幕| 午夜国产不卡在线观看视频| 蜜臀av性久久久久蜜臀aⅴ | 国内精品视频一区二区三区八戒| 精品无人码麻豆乱码1区2区 | 国产成人综合在线观看| 成人在线综合网| 在线观看国产一区二区| 日韩限制级电影在线观看| 久久久久久电影| 亚洲六月丁香色婷婷综合久久 | 国产精品综合在线视频| 不卡欧美aaaaa| 在线观看欧美日本| 欧美va亚洲va国产综合| 国产精品久久久久久久久免费相片| 一区二区三区中文在线观看| 日本午夜精品一区二区三区电影| 福利一区二区在线观看| 欧美视频三区在线播放| 久久一日本道色综合| 国产精品不卡一区| 婷婷久久综合九色综合绿巨人 | 国产成人99久久亚洲综合精品| 一本久久精品一区二区| 色综合色综合色综合色综合色综合 | 欧美激情一区二区三区| 国产精品不卡视频| 久久精品国产成人一区二区三区| 久久99国产精品久久99| 一本一道久久a久久精品| 欧美日韩一区二区在线观看 | 一区二区三区欧美激情| 激情av综合网| 色乱码一区二区三区88| 亚洲精品在线免费播放| 亚洲欧洲成人精品av97| 蜜芽一区二区三区| 成人免费看片app下载| 91精品国产91久久久久久一区二区 | 综合中文字幕亚洲| 精品午夜久久福利影院| 欧美亚洲综合网| 3atv一区二区三区| 依依成人精品视频| 一区二区三区不卡视频在线观看| 久草精品在线观看| 欧美视频一区二区三区四区 | 欧美激情综合网| 日日骚欧美日韩| 蜜乳av一区二区| 在线国产电影不卡| 国产精品久久一级| 奇米影视一区二区三区| 欧美亚洲图片小说| 国产欧美一区二区精品秋霞影院| 久久综合综合久久综合| 欧美在线视频全部完| 国产精品成人网| 国产精品一区二区三区网站| 日韩一区二区在线看| 亚洲色图视频网站| 成人18精品视频| 精品国产乱码久久| 蜜臀精品久久久久久蜜臀| 在线中文字幕一区二区| 亚洲桃色在线一区| 国产成人av电影| 国产欧美在线观看一区| 日韩高清一区在线| 欧美日产国产精品| 亚洲乱码国产乱码精品精可以看 | 欧美放荡的少妇| 亚洲成人精品在线观看| voyeur盗摄精品| 国产精品天干天干在线综合| 久久精品国产一区二区三区免费看 | 免费亚洲电影在线| 欧美日韩色综合| 亚洲h在线观看| 91福利资源站| 亚洲成国产人片在线观看| 岛国精品在线观看| 国产精品不卡在线观看| 日韩av一二三| 精品久久久久一区| 婷婷久久综合九色综合绿巨人 | 久久精品国产亚洲5555| 欧美区在线观看| 老司机精品视频导航| 欧美大片在线观看一区| 九一久久久久久| 欧美成人一级视频| 国产91精品免费| 精品少妇一区二区三区视频免付费 | 中文字幕av一区 二区| 国产经典欧美精品| 欧美国产精品一区二区三区| 国产精品白丝jk黑袜喷水| 国产精品久久久久一区| 99精品视频在线观看| 亚洲一二三级电影| 欧美日韩一区久久| 久久丁香综合五月国产三级网站| 欧美日韩日日摸| 久久精品噜噜噜成人88aⅴ| 日韩一区二区在线看| 蜜桃一区二区三区在线观看| 日韩欧美在线观看一区二区三区| 免费在线观看精品| 久久久精品2019中文字幕之3| 成人免费看片app下载| 欧美激情一区二区三区蜜桃视频| 日本高清无吗v一区| 综合激情网...| 欧美日韩国产a| 国产高清在线观看免费不卡| 国产精品天干天干在观线| 欧美性感一区二区三区| 日本中文在线一区| 亚洲欧美在线高清| 欧美二区三区91| 成人免费精品视频| 亚洲高清免费在线| 日本一区二区三区电影| 国产在线不卡视频| 一区二区三区不卡视频| 欧美xfplay| 91猫先生在线| 国产成人高清视频| 亚洲乱码国产乱码精品精可以看 | 国产一区二区三区免费观看| 亚洲精品欧美专区| 欧美精品久久久久久久多人混战| 高清成人免费视频| 美女爽到高潮91| 自拍偷拍欧美精品|