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

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

?? types.c

?? C編譯器源碼是我到處找來的,看了之后很有收獲
?? C
字號:
/*
 * 68K/386 32-bit C compiler.
 *
 * copyright (c) 1997, David Lindauer
 * 
 * This compiler is intended for educational use.  It may not be used
 * for profit without the express written consent of the author.
 *
 * It may be freely redistributed, as long as this notice remains intact
 * and either the original sources or derived sources 
 * are distributed along with any executables derived from the originals.
 *
 * The author is not responsible for any damages that may arise from use
 * of this software, either idirect or consequential.
 *
 * v1.35 March 1997
 * David Lindauer, gclind01@starbase.spd.louisville.edu
 *
 * Credits to Mathew Brandt for original K&R C compiler
 *
 */
#include        <stdio.h>
#include        "expr.h"
#include        "c.h"

extern int prm_cplusplus;
extern char *tn_void;
extern char *tn_char;
extern char *tn_int;
extern char *tn_long;
extern char *tn_short;
extern char *tn_unsigned;
extern char *tn_ellipse;
extern char *tn_float;
extern char *tn_double;
extern char *tn_longdouble;

int exactype(TYP *typ1, TYP *typ2)
{
	SYM *s1,*s2;
	while (typ1 && typ2) {
		if (typ1->type != typ2->type) {
		  if ((typ1->type != bt_func && typ1->type != bt_ifunc) ||
					(typ2->type != bt_ifunc && typ2->type != bt_func))
				return 0;
		}
		else switch(typ1->type) {
			case bt_ptrfunc:
			case bt_ifunc:
			case bt_func:
				if (!exactype(typ1->btp,typ2->btp))
					return 0;
				s1 = typ1->lst.head;
				s2 = typ2->lst.head;
				while (s1 && s2 && (s1 != (SYM *)-1) && (s2 != (SYM *)-1)) {
					if (!exactype(s1->tp,s2->tp))
						return 0;
					s1 = s1->next;
					s2 = s1->next;
				}
				return s1 == s2;
			case bt_struct:
			case bt_union:
			case bt_class:
				if (!typ1->sname || !typ2->sname)
					return 0;
				return(!strcmp(typ1->sname,typ2->sname));
			case bt_pointer:
				if (typ1->val_flag != typ2->val_flag || (typ1->size && typ2->size && typ1->size != typ2->size))
					return 0;
		}
		typ1=typ1->btp;
		typ2=typ2->btp;
	}
	return !(typ1 || typ2);
}
int checktype(TYP *typ1, TYP *typ2)
{
#ifdef CPLUSPLUS
	if (prm_cplusplus)
		return exactype(typ1,typ2);
#endif
	if (typ1->type == typ2->type)
		return TRUE;
	else                                                 
		if ((typ2->type == bt_ptrfunc && (typ1->type == bt_ifunc || typ1->type == bt_func))
					 || (typ1->type == bt_ptrfunc && (typ2->type == bt_ifunc || typ2->type == bt_func)))
			return(TRUE);
		else
			if (typ1->type == bt_enum) {
				switch (typ2->type) {
					case bt_long: case bt_unsigned:
					case bt_short: case bt_unsignedshort:
					case bt_char: case bt_unsignedchar:
						return(TRUE);
				}
			}
			else
				if (typ2->type == bt_enum) {
					switch (typ1->type) {
						case bt_long: case bt_unsigned:
						case bt_short: case bt_unsignedshort:
						case bt_char: case bt_unsignedchar:
							return(TRUE);
					}
				}
				else
					return FALSE;
}
int checktypeassign(TYP *typ1, TYP *typ2)
{
#ifdef CPLUSPLUS
	if (prm_cplusplus)
		return exactype(typ1,typ2);
#endif
	while (typ1 && typ2 && typ1->type == typ2->type && typ1->size == typ2->size) {
		if (isscalar(typ1))
			return TRUE;
		typ1 = typ1->btp;
		typ2 = typ2->btp;
	}
	if (!typ1 && !typ2)
		return(TRUE);
	return(FALSE);
}
#ifdef CPLUSPLUS
static TYP *unmang2(char *buf, TYP *tp, int *ptr, int **ptrs)
{
	SYM *sp;
		switch (tp->type) {
			case bt_ptrfunc: {
					unmang2(buf,tp->btp,ptr,ptrs);
					buf = putptr(buf+strlen(buf),ptr,ptrs);
					sp = tp->lst.head;
					strcat(buf,"(*) (");
					if (sp != (SYM *)-1) {
						while (sp) {
							unmang2(buf+strlen(buf),sp->tp,ptr,ptrs);
							sp = sp->next;
						}
					}
					strcat(buf,")");
					buf = buf + strlen(buf);
					return 0;
				}
			case bt_float:
				strcpy(buf,tn_float);
				buf = putptr(buf,ptr,ptrs);
				return 0;
			case bt_double:
				strcpy(buf,tn_double);
				buf = putptr(buf,ptr,ptrs);
				return 0;
			case bt_longdouble:
				strcpy(buf,tn_longdouble);
				buf = putptr(buf,ptr,ptrs);
				return 0;
			case bt_unsigned:
				strcpy(buf,tn_unsigned);
				buf = buf + strlen(buf);
			case bt_long:
				strcpy(buf,tn_int);
				buf = putptr(buf,ptr,ptrs);
				return 0;
			case bt_unsignedshort:
				strcpy(buf,tn_unsigned);
				buf = buf + strlen(buf);
			case bt_short:
				strcpy(buf,tn_short);
				buf = putptr(buf,ptr,ptrs);
				return 0;
			case bt_unsignedchar:
				strcpy(buf,tn_unsigned);
				buf = buf + strlen(buf);
			case bt_char:
				strcpy(buf,tn_char);
				buf = putptr(buf,ptr,ptrs);
				return 0;
			case bt_void:
				strcpy(buf,tn_void);
				buf = putptr(buf,ptr,ptrs);
				return 0;
			case bt_pointer:
				(*ptrs)[(*ptr)++] = 0;
				return tp->btp;
			case bt_ref:
				(*ptrs)[(*ptr)++] = 1;
				return tp->btp;
			case bt_ellipse:
				strcpy(buf,tn_ellipse);
				return 0;
		}
	return 0;
}
char * typenum(char *buf, TYP *typ)
{
	int ptr = 0;
	char ptrs[50];
	*buf++ = '(';
	while (typ) {
		typ = unmang2(buf,typ,&ptr,ptrs);
		buf = buf+strlen(buf);
		if (typ) 
			*buf++ = ',';
		else
			*buf++ = ')';
	}
	*buf=0;
	return buf;
}
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩综合不卡| 精品午夜久久福利影院| 国产区在线观看成人精品| 91精品国产免费久久综合| 欧洲国产伦久久久久久久| 91国内精品野花午夜精品 | 91.com视频| 欧美日韩国产高清一区二区| 欧美视频精品在线观看| 欧美在线免费视屏| 欧美日韩精品是欧美日韩精品| 精品视频全国免费看| 欧美日韩成人高清| 日韩欧美色综合| 精品久久人人做人人爱| 久久老女人爱爱| 亚洲欧洲成人精品av97| 一区二区三区四区国产精品| 亚洲精品自拍动漫在线| 视频在线在亚洲| 国产九色sp调教91| av电影在线观看完整版一区二区 | 国产精品久久久久三级| 亚洲激情欧美激情| 日韩二区三区在线观看| 国产综合色产在线精品| 高清国产一区二区三区| 欧美影院午夜播放| 91精品婷婷国产综合久久竹菊| 久久伊人蜜桃av一区二区| 欧美国产丝袜视频| 一区二区在线观看免费视频播放 | 日韩精品一区二区三区四区视频 | 中文字幕在线观看不卡| 一区av在线播放| 美日韩一区二区| caoporn国产精品| 制服.丝袜.亚洲.另类.中文| 久久亚洲综合色一区二区三区| 亚洲手机成人高清视频| 蜜桃久久精品一区二区| 97精品电影院| 精品国产伦一区二区三区观看方式| 国产精品久久久久久户外露出| 五月天精品一区二区三区| 国产美女av一区二区三区| 欧美自拍丝袜亚洲| 久久久久久影视| 日本欧美在线看| 91片黄在线观看| 美女网站视频久久| av中文字幕不卡| 精品电影一区二区| 一卡二卡欧美日韩| 成人av影院在线| 精品国产91久久久久久久妲己 | 亚洲色图欧洲色图| 国产美女视频一区| 欧美一级xxx| 午夜视黄欧洲亚洲| www.欧美色图| 中文字幕不卡一区| 久久se精品一区精品二区| 欧美撒尿777hd撒尿| 日韩理论片在线| 国产成人精品亚洲日本在线桃色| 欧美一区二区在线免费观看| 亚洲一区二区精品久久av| 99视频有精品| 综合久久给合久久狠狠狠97色| 国产福利视频一区二区三区| 久久久天堂av| 国产一区二区成人久久免费影院 | 欧美三级在线视频| 亚洲精品视频在线观看免费| 成人自拍视频在线| 国产视频不卡一区| 国产成人精品亚洲日本在线桃色 | 日韩精品资源二区在线| 日韩极品在线观看| 制服丝袜亚洲网站| 日韩精品五月天| 日韩一区二区在线免费观看| 日韩国产在线观看| 日韩一级大片在线| 久久99精品国产.久久久久久 | 亚洲成人一区在线| 欧美日韩一区二区在线观看| 亚洲va欧美va人人爽| 日韩一区二区在线免费观看| 国产麻豆精品一区二区| 国产日韩欧美精品一区| 99精品国产热久久91蜜凸| 亚洲精品伦理在线| 欧美人伦禁忌dvd放荡欲情| 蜜臀av一级做a爰片久久| 精品日韩一区二区| 国产一区二区三区av电影 | 欧美日韩日本视频| 秋霞电影网一区二区| 久久久久97国产精华液好用吗| 国产**成人网毛片九色 | 一区二区在线电影| 6080亚洲精品一区二区| 国产一区二区三区在线观看免费 | eeuss鲁片一区二区三区在线看| 亚洲一区二区在线视频| 日韩一区二区在线观看视频| 成人毛片在线观看| 亚洲国产精品久久久久婷婷884| 日韩午夜在线影院| 高清国产一区二区三区| 偷拍亚洲欧洲综合| 久久久精品tv| 精品视频1区2区3区| 岛国精品在线观看| 日韩专区一卡二卡| 久久久一区二区| 欧美日韩夫妻久久| a级精品国产片在线观看| 丝袜诱惑亚洲看片| 自拍偷拍亚洲综合| 欧美本精品男人aⅴ天堂| 色婷婷国产精品久久包臀| 精品一区二区精品| 一区二区高清在线| 国产欧美日韩激情| 欧美一区二区视频在线观看2022| 91麻豆国产香蕉久久精品| 久久99国产乱子伦精品免费| 亚洲bt欧美bt精品| 国产精品你懂的| 久久精品水蜜桃av综合天堂| 56国语精品自产拍在线观看| 在线观看视频欧美| 成人激情图片网| 国产成人综合网| 国产毛片精品视频| 免费观看久久久4p| 日日摸夜夜添夜夜添国产精品| 一区二区三区在线观看网站| 最近中文字幕一区二区三区| 国产日韩亚洲欧美综合| 日韩欧美成人一区二区| 7777精品伊人久久久大香线蕉的 | 日韩电影免费在线观看网站| 亚洲伦理在线精品| 中文字幕在线观看不卡| 国产精品欧美久久久久无广告| 久久综合av免费| 精品对白一区国产伦| 26uuuu精品一区二区| 日韩精品专区在线| 日韩视频国产视频| 日韩天堂在线观看| 欧美α欧美αv大片| 久久久亚洲欧洲日产国码αv| 欧美成人精品高清在线播放| 日韩美女视频一区二区在线观看| 欧美一区二区三区白人| 日韩三级在线免费观看| 日韩美女一区二区三区四区| 久久久www成人免费毛片麻豆| 久久夜色精品国产噜噜av| 国产日韩欧美精品在线| 成人免费在线播放视频| 亚洲视频在线观看三级| 亚洲一区二区三区四区五区黄| 午夜精品一区二区三区三上悠亚| 亚洲成a人在线观看| 日韩国产在线观看一区| 久久成人综合网| 国产99一区视频免费| 99久久777色| 欧美精品第1页| 久久综合九色综合欧美就去吻| 国产精品久久久久四虎| 亚洲成人免费观看| 激情五月播播久久久精品| 成人美女在线视频| 欧美精品18+| 久久久不卡影院| 亚洲成人动漫精品| 国产一区二区三区| 色一情一伦一子一伦一区| 5858s免费视频成人| 国产午夜精品一区二区三区嫩草| 亚洲欧美日韩综合aⅴ视频| 同产精品九九九| 粉嫩av亚洲一区二区图片| 欧美三级日韩在线| 久久久久久久性| 亚洲妇熟xx妇色黄| 国内不卡的二区三区中文字幕 | 一区二区不卡在线视频 午夜欧美不卡在| 日韩激情av在线| 91丨porny丨蝌蚪视频| 精品国产精品网麻豆系列| 亚洲欧美国产毛片在线| 国产在线观看免费一区|