亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
国产suv精品一区二区883| 国产不卡在线视频| 亚洲私人影院在线观看| 国产精品美女视频| 日韩毛片一二三区| 亚洲精品日韩一| 亚洲午夜免费电影| 亚洲成人午夜影院| 丝袜亚洲另类欧美| 成人高清视频在线| 国产自产高清不卡| 成人晚上爱看视频| 国产成人综合自拍| 91日韩一区二区三区| 精品污污网站免费看| 欧美一区二区人人喊爽| 日韩三级精品电影久久久 | 五月天久久比比资源色| 亚洲成人www| 韩国av一区二区| 成人app软件下载大全免费| 91美女片黄在线| 欧美伦理电影网| 久久―日本道色综合久久| 亚洲国产精品成人综合| 一级日本不卡的影视| 日韩电影免费在线看| 丁香婷婷综合色啪| 精品视频一区三区九区| www亚洲一区| 国产经典欧美精品| 色噜噜夜夜夜综合网| 日韩免费观看高清完整版在线观看| wwww国产精品欧美| 夜夜精品浪潮av一区二区三区| 日本不卡视频一二三区| 成人综合日日夜夜| 4438x成人网最大色成网站| 久久久久久99久久久精品网站| 一区二区三区精密机械公司| 卡一卡二国产精品| 色综合久久中文综合久久97| 欧美xxxxxxxxx| 亚洲欧洲日产国码二区| 久久99在线观看| 欧美三级三级三级爽爽爽| 精品国产制服丝袜高跟| 亚洲国产wwwccc36天堂| 国产999精品久久| 5858s免费视频成人| 亚洲手机成人高清视频| 国产伦精品一区二区三区免费| 欧美午夜精品久久久久久孕妇| 久久日韩粉嫩一区二区三区| 五月婷婷色综合| 日本韩国欧美国产| 国产女人aaa级久久久级 | 国产精品伦理一区二区| 麻豆91在线看| 欧美日韩美女一区二区| 亚洲视频狠狠干| 国产99一区视频免费| 欧美草草影院在线视频| 午夜精品久久久久久久久久久| 99久久精品国产观看| 国产欧美一区二区三区在线老狼| 香蕉加勒比综合久久| 欧美综合色免费| 国产精品家庭影院| 国产98色在线|日韩| 国产亚洲欧美一区在线观看| 精油按摩中文字幕久久| 日韩精品影音先锋| 久久99国产精品麻豆| 日韩精品一区在线观看| 免费看欧美女人艹b| 91麻豆精品久久久久蜜臀| 日韩中文字幕1| 日韩视频在线观看一区二区| 蜜臀久久久久久久| 日韩精品影音先锋| 国产麻豆精品theporn| 亚洲国产精品成人综合 | 国内精品不卡在线| 欧美成人猛片aaaaaaa| 韩国一区二区三区| 欧美精品一区二区久久久| 韩国女主播一区| 欧美精品一区二区在线观看| 国产一区二区三区美女| 国产精品美日韩| 97国产一区二区| 一区二区三区在线不卡| 欧美在线|欧美| 男男gaygay亚洲| www亚洲一区| eeuss国产一区二区三区| 亚洲欧美一区二区三区国产精品| 欧美性淫爽ww久久久久无| 丝瓜av网站精品一区二区| 日韩欧美专区在线| 国产不卡视频在线播放| 亚洲精品国产a| 日韩一级黄色片| 国产成人一级电影| 一区二区三区久久久| 精品理论电影在线观看 | 亚洲欧美一区二区三区孕妇| 欧美日本视频在线| 国产一区二区三区观看| 亚洲人123区| 精品噜噜噜噜久久久久久久久试看| 成人性色生活片| 天天综合日日夜夜精品| 国产视频不卡一区| 欧美人动与zoxxxx乱| 国产成人在线观看免费网站| 午夜久久久久久久久久一区二区| 欧美精品一区二区三区一线天视频| jlzzjlzz欧美大全| 免费不卡在线观看| 亚洲黄色在线视频| 国产清纯在线一区二区www| 欧美日韩国产综合一区二区三区| 国产剧情在线观看一区二区| 午夜欧美电影在线观看| 日本一区二区免费在线| 日韩欧美久久久| 色婷婷激情综合| 国产伦精品一区二区三区免费| 亚洲国产精品一区二区久久| 中文字幕精品一区二区精品绿巨人| 777色狠狠一区二区三区| www.亚洲色图| 国产精品中文字幕日韩精品 | 欧美国产综合一区二区| 91精品国产综合久久精品性色| av网站一区二区三区| 久久精品国产秦先生| 天堂成人免费av电影一区| 亚洲欧美日韩在线不卡| 久久婷婷一区二区三区| 91麻豆精品国产91久久久久久久久 | 亚洲自拍偷拍av| 亚洲欧美一区二区三区极速播放 | 亚洲私人影院在线观看| 国产精品色婷婷久久58| 日韩精品专区在线影院重磅| 欧美日韩国产在线播放网站| 在线视频你懂得一区| av不卡免费电影| 成人精品免费网站| 成年人网站91| www.欧美亚洲| av网站一区二区三区| 成人一区在线看| 丁香亚洲综合激情啪啪综合| 国产精品一区二区在线观看不卡 | 亚洲综合999| 亚洲国产日韩a在线播放| 一区二区三区日韩欧美| 亚洲精品国产一区二区精华液 | 免费成人你懂的| 美女www一区二区| 免费成人美女在线观看| 玖玖九九国产精品| 国产精品一品二品| jlzzjlzz亚洲日本少妇| 在线一区二区三区| 欧美另类久久久品| 欧美福利电影网| 日韩一区二区三区高清免费看看| 日韩视频在线一区二区| 国产日韩欧美综合在线| 亚洲国产精品国自产拍av| 亚洲色欲色欲www在线观看| 洋洋成人永久网站入口| 丝袜美腿高跟呻吟高潮一区| 精品在线观看视频| 成人激情图片网| 欧美怡红院视频| 日韩一区二区免费在线电影| 久久久亚洲精华液精华液精华液| 国产精品区一区二区三| 一区二区三区日本| 久久99久久精品| 99久久久久免费精品国产| 欧美色综合网站| 久久久国产精品麻豆| 一区二区三区在线播| 精品制服美女久久| 91黄色激情网站| 久久久久久免费| 一级特黄大欧美久久久| 国产一区在线观看视频| 欧美伊人久久久久久久久影院 | 狠狠色狠狠色综合系列| 色综合久久66| 欧美变态tickling挠脚心| 亚洲人成精品久久久久久|