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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? cdecl.c

?? 微軟的基于HMM的人臉識別原代碼, 非常經(jīng)典的說
?? C
?? 第 1 頁 / 共 4 頁
字號:

	    init_ident(e1, EiC_work_tab);


	    new_var(e1);
	    EiC_work_tab = h;

	    if (EiC_lexan() == '{') {
		enum_list(e1);
		EiC_match('}', " }");
		 e1->Type = e1->Val.sym->type;
	    } else
                retractlexan();
	    break;
	} else if (t == t_enum) {
	    EiC_freetype(e1->Type);
	    e1->Type = EiC_copytype(token->Val.sym->type);
	} else
	    EiC_error("Enumeration declaration error");

	break;
      case '{':
	EiC_work_tab = h;
	enum_list(e1);
	EiC_match('}', " }");
	break;

      default:
	EiC_error("Enumeration declaration error");
	retractlexan();
    }
    EiC_work_tab = h;
}

static void enum_list(token_t * e1)
{
    int ENUMVAL = 0;
    token_t e2;
    token_t e3;
    do {
	EiC_inittoken(&e2);
	/*
	 *  now do enumerator part
	 */
	if (EiC_lexan() == ID) {
	    e2.Type = EiC_addtype(t_int, NULL);
	    setConst(e2.Type);
	    EiC_setAsBaseType(e2.Type);
	    e2.Sclass = c_enum;
	    init_ident(&e2, EiC_work_tab);
	    new_var(&e2);
	    if (EiC_lexan() == ASS) {
		EiC_inittoken(&e3);
		cond_expr(&e3);
		if (isconst(e3.Type) && EiC_gettype(e3.Type) == t_int)
		    ENUMVAL = e3.Val.ival;
		else {
		    EiC_freetoken(&e3);
		    EiC_error("Assignment must be constant");
		    break;
		}
		EiC_freetoken(&e3);
	    } else
		retractlexan();
	    e2.Sym->val.ival = ENUMVAL++;
	} else {
	    EiC_error("Expected identifier in enumeration");
	    break;
	}
    } while (EiC_lexan() == ',');
    retractlexan();
}

static void array_decl(token_t * e1)
{
    int t;
    token_t e2;
    EiC_inittoken(&e2);
    EiC_assign_expr(&e2);
    if (isconst(e2.Type)) { 
	if ((t=EiC_gettype(e2.Type)) != t_int && t != t_uint) {
	    if(sizeof(int) != sizeof(long) || t != t_ulong) {
		EiC_error("Constant int expression needed");
		e2.Val.ival = 0;
	    }
	}
    } else {
	if(!ABSDECL && /*((t == t_void && EiC_INFUNC) || */
	   EiC_gettype(e2.Type) != t_void )
	    EiC_error("Constant int expression needed");
	e2.Val.ival = 0;
    }
    e1->Type = EiC_addtype(t_array, e1->Type);
    setNumElems(e1->Type,e2.Val.ival);
    EiC_freetoken(&e2);
    EiC_match(']', " ] ");
}


static void st_un_spec(token_t * e1, int t)
{
    switch (t) {
      case structsym:
	e1->Type = EiC_addtype(t_struct, e1->Type);
	break;
      case unionsym:
	e1->Type = EiC_addtype(t_union, e1->Type);
	break;
    }
    f_st_un_spec(e1);
}

static eicstack_t stun;
static void f_st_un_spec(token_t * e1)
{
    val_t val;
    int t,nxtt;
    symentry_t *sym;
    int h = EiC_work_tab;
    EiC_work_tab = tag_tab;

    val.p.p = INSTUN;
    INSTUN = e1;
    EiC_eicpush(&stun,val);
    switch (EiC_lexan()) {
      case ID:			/* struct or union tag */
	EiC_work_tab = h;
	sym = token->Val.sym;
	t = EiC_gettype(sym->type);

	nxtt = EiC_lexan();
	retractlexan();

       	if(t==ID || (nxtt == '{' && token->Val.sym->level<EiC_S_LEVEL)) {
	    init_ident(e1, tag_tab);
	    new_var(e1);
	    setInf(e1->Type,xcalloc(1, sizeof(struct_t)));
	    if(nxtt == '{') {
		
		EiC_lexan();
		EiC_S_LEVEL++;
		s_decl_list(e1);
		EiC_match('}', " }");
		EiC_S_LEVEL--;
		if(EiC_lexan() == ';' && EiC_S_LEVEL == 1)
		    e1->Type = NULL;
		retractlexan();
		   
	    } 
	    
	} else {
	    if (t == t_struct || t == t_union) {
		EiC_freetype(e1->Type);
		e1->Type = EiC_copytype(sym->type);
	    } else {
		init_ident(e1, tag_tab);
		new_var(e1);
		setInf(e1->Type,xcalloc(1, sizeof(struct_t)));
	    }
	    if(nxtt == '{') {
		EiC_lexan();
		EiC_S_LEVEL++;
		s_decl_list(e1);
		EiC_match('}', " }");
		EiC_S_LEVEL--;
		if(EiC_lexan() == ';' && EiC_S_LEVEL == 1) {
		    EiC_freetype(e1->Type);
		    e1->Type = NULL;
		}
		retractlexan();
	    } 

	}
	break;
      case '{':
	EiC_work_tab = h;
	EiC_S_LEVEL++;
	s_decl_list(e1);
	EiC_match('}', " }");
	EiC_S_LEVEL--;
	break;
    }
    EiC_work_tab = h;
    EiC_eicpop(&stun,&val);
    INSTUN = val.p.p;

}


static void s_decl_list(token_t * e1)
{
    int f = 0, bp = EiC_ENV->lsp;
    struct_t *S;

    
    if(!EiC_getInf(e1->Type)) 
	setInf(e1->Type,xcalloc(1, sizeof(struct_t)));
    /*
    if(((struct_t*)EiC_getInf(e1->Type))->cl) {
	EiC_error("Illegal use of struct/union");
	return;
    }
    */
    
    while (1) {
	switch (EiC_lexan()) {
	  TYPESPEC:
	  TYPEQUAL:
		f = 1;
	    st_decl(e1, token->Tok);
	    break;
	  default:
	    if (!f)
		EiC_error("Struct/Union list declaration error");
	    S = EiC_getInf(e1->Type);
	    S->cl = 1;
	    /*
	     * determine structure alignment.
	     */

	    S->tsize = RoundUp(S->tsize,S->align); 
	    retractlexan();
	    EiC_reset_env_pointers(e1, bp);
	    return;
	}
    }
}

static void st_decl(token_t * e1, int t)
{
    token_t e2;
    EiC_inittoken(&e2);
    spec_qual_list(&e2, t);
    EiC_setAsBaseType(e2.Type);
    spec_declor_list(e1, &e2);
    EiC_freetype(e2.Type);

    EiC_match(';', " ; ");
}

static void spec_qual_list(token_t * e1, int t)
{
    /*type_spec(e1, t);*/
    specifier(e1,t,NULL);
    r_spec_qual_list(e1);
}

static void r_spec_qual_list(token_t * e1)
{
    switch (EiC_lexan()) {
      TYPESPEC:
	    spec_qual_list(e1, token->Tok);
	break;
      default:
	retractlexan();
    }
}

void EiC_free_un_mem(type_expr * e)
{
    struct_t *S = EiC_getInf(e);
    if (S) {
	int i;
	if(S->n) {
	    for (i = 0; i < S->n; i++) {
		xfree(S->id[i]);
		EiC_freetype(S->type[i]);
	    }
	    xfree(S->offset);
	    xfree(S->id);
	    xfree(S->type);
	}
	if(S->ntags) {
	    for(i=0;i<S->ntags;++i)
		EiC_freetype(S->tag[i]);
	    xfree(S->tag);
	}
	xfree(S);
    }
}

static void addst_un_tag(symentry_t *sym)
{
    struct_t *S;
    S = EiC_getInf(INSTUN->Val.sym->type);
    S->ntags++;
    if(S->ntags == 1)
	S->tag = (type_expr**)xmalloc(sizeof(type_expr*));
    else
	S->tag = (type_expr**)xrealloc(S->tag,
				      sizeof(type_expr*)*S->ntags);
    S->tag[S->ntags - 1] = EiC_transtype(sym->type);
    EiC_setaliases(sym->type,1);
}
	
static void addst_un_mem(token_t * e1, token_t * e2)
{
    struct_t *S;
    int off, s;

    S = EiC_getInf(e1->Type);
    if (S->n == 0) {
	S->id = (char **) xcalloc(1, sizeof(char *));
	S->offset = (int *) xcalloc(1, sizeof(int));
	S->type = (type_expr **) xcalloc(1, sizeof(type_expr *));
    } else {
	/*
	 * first check for duplication of names
	 */
	int i;
	for(i=0;i<S->n;++i) 
	    if(strcmp(S->id[i], e2->Val.sym->id) == 0)
		EiC_error("Duplication of identifier in struct/union");

	S->id = (char **) xrealloc(S->id,
				   (S->n + 1) * sizeof(char *));
	S->offset = (int *) xrealloc(S->offset,
				     (S->n + 1) * sizeof(int));
	S->type = (type_expr **) xrealloc(S->type,
					  (S->n + 1) * sizeof(type_expr *));
    }

    if(isconst(e2->Type)) {
	unsetConst(e2->Type);
	setConstp(e2->Type);
    }

    if(EiC_gettype(e2->Type) == t_enum)
      cast_t_enum(e2);

    S->id[S->n] = (char *) EiC_strsave(e2->Val.sym->id);
    S->type[S->n] = EiC_transtype(e2->Type);
    
    
    if(!(s = EiC_get_sizeof(S->type[S->n]))) {
     EiC_error("Incomplete data type for struct/union member %s",S->id[S->n]);
    }
    off = EiC_get_align(e2->Type);
	
    if (EiC_gettype(e1->Type) == t_struct) {
        
	S->offset[S->n] = RoundUp(S->tsize,off);
	S->tsize += s + S->offset[S->n] - S->tsize;
    } else { /* handle union */	
	S->offset[S->n] = 0;
	S->tsize = S->tsize > s ? S->tsize : s;
    }
    /*
     * structure alignment is equal to the
     * maximum alignment of its members.
     */
    if(S->align < off)
	S->align = off;
    S->n++;
}

static void spec_declor_list(token_t * e1, token_t * e2)
{
    int ftime = 1, cl;
    token_t e3;
    cl = ((struct_t*)EiC_getInf(e1->Type))->cl;
    do {
	switch (EiC_lexan()) {
	  case '*':
	  case ID:
	  case '(':
	  case ':':
	    EiC_inittoken(&e3);
	    e3.Type = EiC_transtype(e2->Type);
	    st_declor(&e3, token->Tok);
	    if (EiC_gettype(e3.Type) == t_struct ||
		EiC_gettype(e3.Type) == t_union) {
		struct_t *S;
		S = EiC_getInf(e3.Type);
		if (!S->cl)	/* check for closure */
		    EiC_error("Illegal Struct/Union member");
	    }
	    /* if structure/union is already closed,
	     * then assume structure is being re-entered.
	     */
	    if (e3.Val.sym && !cl) {
		e3.Type = EiC_revtype(e3.Type);
		if (ftime)
		    EiC_setaliases(e2->Type, 1);
		addst_un_mem(e1, &e3);
		if (ftime) {
		    EiC_setaliases(e3.Type, 1);
		    ftime = 0;
		}
	    }
	    EiC_freetype(e3.Type);
	    EiC_remsym(e3.Val.sym);
	    break;
	  default:
	    retractlexan();
	    EiC_error("Struct/Union member declaration error");
	}
    } while (EiC_lexan() == ',');
    retractlexan();
}

static void st_declor(token_t * e1, int t)
{
    switch (t) {
      case '*':
      case ID:
      case '(':
	  decl(e1, t);
	  /*setBoundaryLimits(e1);*/
	  f_st_declor();
	  establish_id(e1);
	  break;
      case ':':
	  EiC_error("Bit fields not supported");
	  break;
    }
}

static void f_st_declor()
{
    if (EiC_lexan() == ':')
	EiC_error("Bit fields not supported");
    else
	retractlexan();
}

int EiC_type_name(token_t * e1)
{
    switch (EiC_lexan()) {
      TYPEQUAL:
      TYPESPEC:
	spec_qual_list(e1, token->Tok);
	EiC_setAsBaseType(e1->Type);
	switch (EiC_lexan()) {
	  case '*':
	  case '(':
	  case '[':
	    abs_decl(e1, token->Tok);
	    e1->Type = EiC_revtype(e1->Type);
	    break;
	  default:
	    retractlexan();
	}
	break;
      default:
	retractlexan();
	return 0;
    }
    return 1;
}

static void abs_decl(token_t * e1, int t)
{
    type_expr *P = NULL;
    ABSDECL++;
    switch (t) {
      case '*':
	P = pointer();
	f_abs_decl(e1);
	if(P)
	    e1->Type = EiC_catTypes(P,e1->Type);
	break;
      case '(':
      case '[':
	dir_abs_decl(e1, t);
	break;
      case ID:
	EiC_error("extraneous identifier `%s'",token->Val.sym->id);
	break;
    }
    ABSDECL--;
}

static void f_abs_decl(token_t * e1)
{
    switch (EiC_lexan()) {
      case '(':
      case '[':
	dir_abs_decl(e1, token->Tok);
	break;
      case ID:
	EiC_error("extraneous identifier `%s'",token->Val.sym->id);
	break;
      default:
	retractlexan();
    }
}

static void dir_abs_decl(token_t * e1, int t)
{
    switch (t) {
      case '(':
	f1_dir_abs(e1);
	EiC_f2_dir_abs(e1);
	break;
      case '[':
	array_decl(e1);
	EiC_f2_dir_abs(e1);
	break;

    }
}

static void f1_dir_abs(token_t * e1)
{
    switch (EiC_lexan()) {
      case ')':
      TYPEQUAL:
      STORECLASS:
      TYPESPEC:
	retractlexan();
	ff_dir_decl(e1);
	EiC_remlevel(EiC_S_LEVEL+1);
	break;
      case '*':
      case '(':
      case '[':
	abs_decl(e1, token->Tok);
	EiC_match(')', " )");
	break;

      default:
	EiC_error("Abstract declaration error");
    }
}

static void EiC_f2_dir_abs(token_t * e1)
{
    switch (EiC_lexan()) {
      case '[':
	array_decl(e1);
	EiC_f2_dir_abs(e1);
	break;
      case '(':
	ff_dir_decl(e1);
	EiC_remlevel(EiC_S_LEVEL+1);
	EiC_f2_dir_abs(e1);
	break;
      default:
	retractlexan();
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产乱码精品一区二区三区五月婷 | 乱一区二区av| 免费观看一级特黄欧美大片| 午夜a成v人精品| 免费成人在线播放| 国产乱人伦偷精品视频不卡| 国产精品1区2区| 色综合一个色综合| 欧美日韩一区在线观看| 精品久久一区二区| 国产精品乱子久久久久| 亚洲自拍偷拍麻豆| 麻豆成人免费电影| 欧美偷拍一区二区| 91精品国产一区二区三区香蕉| 精品国精品国产尤物美女| 久久婷婷一区二区三区| 亚洲综合小说图片| 丰满岳乱妇一区二区三区| 99re8在线精品视频免费播放| 欧美日免费三级在线| 久久久久久久久久看片| 一区二区三区在线观看网站| 国模大尺度一区二区三区| 色94色欧美sute亚洲13| 久久久久久久一区| 日本在线不卡视频一二三区| 粉嫩嫩av羞羞动漫久久久| 欧美日韩日日骚| 亚洲黄色录像片| 欧美人与z0zoxxxx视频| 中文字幕亚洲不卡| 粉嫩av一区二区三区| 欧美tickling挠脚心丨vk| 香蕉久久夜色精品国产使用方法 | 成人欧美一区二区三区1314| 狠狠色丁香婷综合久久| 欧美一区二区三区免费在线看| 亚洲欧洲在线观看av| 91美女片黄在线| 亚洲风情在线资源站| 欧美三级蜜桃2在线观看| 午夜精品一区在线观看| 欧美色图天堂网| 视频一区二区国产| 欧美精品在线一区二区三区| 亚洲国产成人91porn| 日本道色综合久久| 婷婷国产v国产偷v亚洲高清| 欧美日韩二区三区| 久久综合综合久久综合| 精品电影一区二区| 国产91丝袜在线观看| ㊣最新国产の精品bt伙计久久| 91免费版在线| 国产不卡在线视频| 亚洲色图视频免费播放| 欧美午夜精品久久久| 日本在线不卡一区| 欧美极品美女视频| 欧美一区二区久久| 91碰在线视频| 国产一区二区三区免费观看| 一区二区在线看| 精品久久久久久久一区二区蜜臀| 国产精品亚洲午夜一区二区三区| 亚洲精选免费视频| 久久这里只有精品视频网| 欧美日韩精品综合在线| 成人毛片在线观看| 国产综合色在线视频区| 亚洲午夜激情av| 亚洲色欲色欲www| 久久久久久久久伊人| 日韩欧美在线网站| 欧美日韩午夜在线视频| 色综合久久综合网| 不卡的av在线播放| 3atv在线一区二区三区| 在线观看日韩毛片| 91在线视频网址| 一区二区在线观看视频| 日韩欧美国产麻豆| 欧美男女性生活在线直播观看| 国产91在线|亚洲| 蜜臀91精品一区二区三区| 久久色在线观看| 精品国产欧美一区二区| 日韩一区二区三区在线视频| 日本久久电影网| 欧美日本韩国一区| 日韩精品一区二区三区中文不卡 | 欧美精品 国产精品| 精品视频一区 二区 三区| 波波电影院一区二区三区| 国产精品一二三| 色综合中文字幕| 91精品国产色综合久久不卡蜜臀| 欧美一区二区三区小说| 久久色视频免费观看| 久久久综合激的五月天| 国产精品美女久久久久av爽李琼| 中文字幕成人av| 亚洲综合视频网| 国产精品一区三区| 在线一区二区视频| 久久久久久9999| 亚洲国产精品一区二区尤物区| 美女一区二区三区在线观看| 丁香亚洲综合激情啪啪综合| 欧美精品高清视频| 亚洲午夜羞羞片| 国产精品亚洲一区二区三区在线| 91福利在线免费观看| 中文乱码免费一区二区| 青娱乐精品在线视频| 91免费在线播放| 国产精品久久久久久久久免费樱桃 | 久久久久久久综合色一本| 亚洲精品视频在线观看免费| 国产一区二区三区精品视频| 欧美性视频一区二区三区| 久久久久久久综合| 国产精品中文字幕日韩精品| 91精品国产一区二区| 蜜臀av国产精品久久久久| 欧美日本免费一区二区三区| 亚洲一区二区高清| 一本一道综合狠狠老| 亚洲男人天堂av| 色综合天天天天做夜夜夜夜做| 国产精品美女一区二区三区| 成人做爰69片免费看网站| 国产精品久久久久四虎| 91丝袜呻吟高潮美腿白嫩在线观看| 国产精品国产自产拍高清av王其| 大白屁股一区二区视频| 亚洲少妇最新在线视频| 在线亚洲一区观看| 日韩av网站在线观看| 欧美xxxxx牲另类人与| 国产91富婆露脸刺激对白| 国产精品乱码一区二三区小蝌蚪| 成人av在线资源网| 亚洲国产成人av网| 欧美精品一区二区三区四区| 丁香婷婷综合五月| 亚州成人在线电影| 久久久久久久久久看片| 欧美影院一区二区三区| 日韩va亚洲va欧美va久久| 国产欧美日韩久久| 777亚洲妇女| 97精品视频在线观看自产线路二| 偷窥国产亚洲免费视频| 中文字幕第一区综合| 91精品国产色综合久久久蜜香臀| 国产不卡在线一区| 久久精品国产99| 亚洲午夜一区二区| 亚洲精品久久久久久国产精华液| 精品久久人人做人人爽| 欧美日韩不卡一区| 播五月开心婷婷综合| 国产精品一区二区不卡| 午夜电影久久久| 午夜一区二区三区视频| 亚洲三级在线免费观看| 国产精品网曝门| 国产清纯美女被跳蛋高潮一区二区久久w | 欧美性xxxxxx少妇| 91丨porny丨中文| 国产不卡视频在线播放| 国产精品911| 国模大尺度一区二区三区| 国产一区二区三区黄视频 | 亚洲成av人**亚洲成av**| 制服.丝袜.亚洲.中文.综合| 国产乱码精品1区2区3区| 婷婷成人激情在线网| 日产国产高清一区二区三区| 日韩和欧美一区二区三区| 午夜精品影院在线观看| 亚洲第一成年网| 免费精品99久久国产综合精品| 偷拍亚洲欧洲综合| 国内成+人亚洲+欧美+综合在线 | 色诱视频网站一区| 欧美日韩五月天| 欧美日韩一区二区三区免费看| 欧美在线观看你懂的| 欧美性色aⅴ视频一区日韩精品| 91久久线看在观草草青青| 欧美人狂配大交3d怪物一区| 欧美日韩国产另类不卡| 久久久久久免费网| 亚洲色图.com| 国产精品小仙女| 在线播放中文字幕一区| 国产天堂亚洲国产碰碰|