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

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

?? error.c

?? 本程序集是Allen I. Holub所寫的《Compiler Design in C》一書(shū)的附隨軟件
?? C
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
/*
 * 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
 *
 */
/* 
 * error handler
 */
#include        <stdio.h>
#include 				<string.h>
#include        "expr.h"
#include        "c.h"
#include        "errors.h"
#include 				"diag.h"

extern int prm_errfile;
extern FILE *errFile;
extern int global_flag;
extern FILE *listFile;
extern int errlineno;
extern char *errfile;
extern int prm_asmfile;
extern FILE *outputFile;
extern int prm_maxerr;
extern int prm_diag;
extern int prm_listfile;
extern int lastch;
extern enum e_sym lastst;
extern char lastid[];
extern int lineno;
extern FILE            *inclfile[10];  /* shared with preproc */
extern int             incldepth;      /* shared with preproc */
extern char *infile;
extern SYM *currentfunc;
extern int prm_warning,prm_cplusplus;

int diagcount = 0;
ERRORS *errlist = 0;
static ERRORS *errtail = 0;
static ERRORS *curerr = 0; 
static char expectlist[] = { "########################=##############,:;#[]{}()" };
static int errline;

/* table of which warnings are enabled */
char nowarn[ERR_MAX];
/* table of warning keywords for the -w command line option
 */
char warnarray[ERR_MAX][4] = { 
	"all","","","","","","","",
	"","","","","","","","",
	"","","","","","","","",
	"","","","","","","","",
	"","","","","cln","","","",
	"","","","","","","","",
	"","","","","","ret","sun","sud",
	"sas","npo","urc","fun","cno","ieq","","nco",
	"lad","","","zer","dpc","nsf","lun","pro",
	"cnv","","irg","san","ssu","","","",
	"","","tua","","tui","","","",
	"","","","","","","","",
	"","","","","","suz","fsu","lli",
  "","","","","","spc","","",
	"","","","","","","","",
  "","","","","",""
};
int             total_errors = 0;
void initerr(void)
{
                                errlist = errtail = curerr = 0;
        total_errors = 0;
                                diagcount  = 0;                 
	errline = 0;
}
/*
 * handling for warnings on the command line
 */
void warning_setup(char select, char *string)
{
	int bool = FALSE;
	while (*string) {
		int i;
		if (string[0] == '-') {
			bool = TRUE;
			string++;
		}
		else
			if (string[0] == '+')
				string++;
		for (i=0; i < ERR_MAX; i++)
			if (!strncmp(warnarray[i],string,3)) {
				if (i== 0) {
					int j;
					for (j =0; j < ERR_MAX; j++)
						nowarn[j] = (unsigned char)bool;
				}
				else
					nowarn[i] = (unsigned char)bool;
				string += 3;
				break;
			}
		if (i==ERR_MAX) {
			fatal("Invalid warning");
		}
	}
}
#ifdef DIAGNOSTICS
void diag(char *s)
/*
 * internal diags come here
 */
{ 
        diagcount++;
  if (prm_diag) {
                printf("DIAG - %s\n",s);
                if (prm_errfile && errFile)
                        fprintf(errFile,"/*DIAG - %s*/",s);
                if (prm_listfile && listFile)
                        fprintf(listFile,"/*DIAG - %s*/",s);
                if (prm_asmfile)
                        fprintf(outputFile,"DIAG - %s\n",s);
        }
}
#endif
int printerr(char *buf, ERRORS *err)
/*
 * subroutine gets the error code and returns whether it is an error or
 * warning
 */
{
        int errlvl = 0;
        switch (err->errornumber) {
								case ERR_NOCASE:
                        sprintf(buf,"Expected 'case' or 'default'");
                        break;
                case ERR_PUNCT:
                        sprintf(buf,"Expected '%c'",expectlist[(int)err->data]);
                        break;
                case ERR_INSERT:
                        sprintf(buf,"Inserted '%c'",expectlist[(int)err->data]);
                        break;
                case ERR_NEEDCHAR:
                        sprintf(buf,"Expected '%c'",(char)err->data);
                        break;
                case ERR_ILLCHAR:
                        sprintf(buf,"Illegal character '%c'",(char)err->data);
                        break;
                case ERR_NEEDCONST:
                        sprintf(buf,"Constant value expected");
                        break;
                case ERR_UNDEFINED:
                        sprintf(buf,"Undefined symbol '%s'", (char *)err->data);
                        break;
                case ERR_DUPSYM:
                        sprintf(buf,"Duplicate symbol '%s'", (char *)err->data);
                        break;
                case ERR_IDENTEXPECT:
                        sprintf(buf,"Expected '%s'",(char *)err->data);
                        break;
                case ERR_IDEXPECT:
                        sprintf(buf,"Identifier expected");
                        break;
                case ERR_INITSIZE:
                        sprintf(buf,"Too many initializers");
                        break;
                case ERR_NOINIT:
                        sprintf(buf,"Cannot initialize '%s'",(char *)err->data);
                        break;
                case ERR_PREPROCID:
                        sprintf(buf,"Invalid preprocessor directive '%s'",(char *)err->data);
                        break;
                case ERR_INCLFILE:
                        sprintf(buf,"File name expected in #include directive");
                        break;
                case ERR_CANTOPEN:
                        sprintf(buf,"Cannot open file \"%s\" for read access",(char *)err->data);
                        break;
                case ERR_ILLCLASS:
                        sprintf(buf,"Illegal storage class specifier '%s'",(char *)err->data);
                        break;
                case ERR_ILLCLASS2:
                        sprintf(buf,"Illegal storage class specifier on '%s'",(char *)err->data);
                        break;
                case ERR_DUPCASE:
                        sprintf(buf,"Duplicate case %d",(int)err->data);
                        break;
                case ERR_RETMISMATCH:
                        sprintf(buf,"Type mismatch in return");
                        break;
                case ERR_ARGMISMATCH:
                        sprintf(buf,"Type mismatch in arg '%s'",(char *)err->data);
                        break;
                case ERR_ARGLENSHORT:
                        sprintf(buf,"Argument list too short in redeclaration of function '%s'",(char *)err->data);
                        break;
                case ERR_ARGLENLONG:
                        sprintf(buf,"Argument list too long in redeclaration of function '%s'",(char*)err->data);
                        break;
                case ERR_DECLMISMATCH:
                        sprintf(buf,"Type mismatch in redeclaration of '%s'",(char *)err->data);
                        break;
                case ERR_CALLMISMATCH:
                        sprintf(buf,"Type mismatch in arg %s",(char *)err->data);
                        break;
                case ERR_CALLLENSHORT:
                        sprintf(buf,"Argument list too short %s",(char *)err->data);
                        break;
                case ERR_CALLLENLONG:
                        sprintf(buf,"Argument list too long %s",(char *)err->data);
                        errlvl = 1;
                        break;
                case ERR_LABEL:
                        sprintf(buf,"'%s' is not a label",(char *)err->data);
                        break;
                case ERR_NOPOINTER:
                        sprintf(buf,"Pointer type expected");
                        break;
                case ERR_LVALUE:
                        sprintf(buf,"Lvalue expected");
                        break;
                case ERR_NOFUNC:
                        sprintf(buf,"'%s' is not a function",(char *)err->data);
                        break;
                case ERR_MISMATCH:
                        sprintf(buf,"Type mismatch");
                        break;
                case ERR_ELSE:
                        sprintf(buf,"Misplaced else");
                        break;
                case ERR_EXPREXPECT:
                        sprintf(buf,"Expression expected");
                        break;
                case ERR_DEREF:
                        sprintf(buf,"Illegal pointer");
                        break;
                case ERR_UNEXPECT:
                        if (lastst == id)
                                sprintf(buf,"Unexpected '%s'",lastid);
                        else
                                sprintf(buf,"Unexpected '%c'",lastch);
                        break;
                case ERR_ILLTYPE:
                        sprintf(buf,"Illegal typedef of '%s'",(char *)err->data);
                        break;
                case ERR_ARRAYMISMATCH:
                        sprintf(buf,"Non-scalar array index");
                        break;
                case ERR_PREPROCMATCH:
                        sprintf(buf,"Unbalanced preprocessor directives");
                        break;
                case ERR_MACROSUBS:
                        sprintf(buf,"Macro substitution error");
                        break;
                case ERR_DECLEXPECT:
                        sprintf(buf,"Declaration expected");
                        break;
                case ERR_INVFLOAT:
                        sprintf(buf,"Invalid floating point");
                        break;
                case ERR_INVTRAP:
                        sprintf(buf,"Invalid trap id");
                        break;
                case ERR_BFILLEGAL:
                        sprintf(buf,"Cannot use bit field as a non-member");
                        break;
                case ERR_BFTOOBIG:
                        sprintf(buf,"Bit field too big");
                        break;
                case ERR_BFTYPE:
                        sprintf(buf,"Bit field only allowed on scalar types");
                        break;
                case ERR_ERROR:
                        sprintf(buf,"User error: %s",(char *)err->data);

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧洲国内综合视频| 成人精品免费网站| 激情综合网天天干| 国产91精品一区二区麻豆网站| 国产成人精品三级麻豆| 日本韩国视频一区二区| 欧美一区二区三区免费观看视频| 26uuuu精品一区二区| 国产精品久久久爽爽爽麻豆色哟哟| 亚洲美女视频在线观看| 男人的天堂亚洲一区| 国产99久久久国产精品免费看| 天堂久久一区二区三区| 国产在线视频一区二区三区| eeuss影院一区二区三区| 欧美日韩一区二区三区四区五区| 精品国内片67194| 555夜色666亚洲国产免| 国产精品水嫩水嫩| 亚州成人在线电影| 国产盗摄视频一区二区三区| 欧美无砖砖区免费| 日本一区二区综合亚洲| 亚洲1区2区3区视频| 成人深夜福利app| 91麻豆精品91久久久久久清纯 | 一区二区三区欧美久久| 蜜桃视频在线一区| 色久综合一二码| 久久久影视传媒| 天天综合日日夜夜精品| 一区二区三区四区蜜桃 | 国产女主播视频一区二区| 亚洲一级片在线观看| 开心九九激情九九欧美日韩精美视频电影 | 亚洲国产日韩综合久久精品| 亚洲一区二区综合| 国产69精品久久99不卡| 日韩一区二区三区在线| 一区二区日韩av| 高清视频一区二区| 日韩欧美国产三级| 亚洲一卡二卡三卡四卡 | 亚洲免费伊人电影| 国产成人三级在线观看| 风间由美性色一区二区三区| 欧美电影免费观看高清完整版在线| 亚洲一区视频在线| 成人av先锋影音| 2欧美一区二区三区在线观看视频| 亚洲成人高清在线| 91影视在线播放| 中文在线免费一区三区高中清不卡 | 国产成人福利片| 欧美成人猛片aaaaaaa| 久久婷婷国产综合国色天香| 日本强好片久久久久久aaa| 91久久精品网| 亚洲视频免费观看| 成人av动漫在线| 久久久久久亚洲综合影院红桃| 免费xxxx性欧美18vr| 欧美精品精品一区| 亚洲一区二区三区四区五区黄| 色综合天天狠狠| 综合亚洲深深色噜噜狠狠网站| 大尺度一区二区| 欧美丝袜丝nylons| 曰韩精品一区二区| 91年精品国产| 亚洲视频每日更新| 欧美影院精品一区| 亚洲国产va精品久久久不卡综合| 91久久国产综合久久| 亚洲综合色自拍一区| 欧美视频在线播放| 亚洲大型综合色站| 欧美久久久久久久久中文字幕| 精品免费日韩av| 久久精品国产精品亚洲红杏| 日韩一区二区三区视频在线| 久久av老司机精品网站导航| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 麻豆精品在线看| 精品久久久久久无| 精品一区二区在线视频| 色嗨嗨av一区二区三区| 亚洲综合清纯丝袜自拍| 欧美日韩日日骚| 偷拍亚洲欧洲综合| 欧美第一区第二区| 国产超碰在线一区| 《视频一区视频二区| 色婷婷av一区二区三区gif| 亚洲一区免费视频| 7777精品伊人久久久大香线蕉的| 美脚の诱脚舐め脚责91| 久久久久久久久免费| 成人激情免费电影网址| 亚洲六月丁香色婷婷综合久久 | 亚洲第一久久影院| 日韩欧美国产麻豆| 成人av电影在线| 亚洲黄色免费网站| 日韩精品一区二| caoporm超碰国产精品| 亚洲一区二区精品视频| 日韩精品一区二区三区在线 | 国产精品不卡视频| 欧美性三三影院| 奇米色777欧美一区二区| 久久久亚洲精品一区二区三区| av中文字幕不卡| 天天影视色香欲综合网老头| 欧美不卡一区二区| 国产成人精品亚洲777人妖| 亚洲一区在线免费观看| 精品久久久久99| 99riav一区二区三区| 亚洲第一精品在线| 久久精品一区二区三区av| 91麻豆免费视频| 免费高清在线一区| 国产精品日韩成人| 欧美精品1区2区3区| 亚洲自拍偷拍图区| 日韩一区二区在线免费观看| 成人app下载| 日韩av中文在线观看| 中文字幕制服丝袜一区二区三区 | 久久亚洲一区二区三区四区| 91麻豆自制传媒国产之光| 精东粉嫩av免费一区二区三区 | 欧美日韩精品系列| 国产高清不卡二三区| 亚洲福利一区二区| 国产无一区二区| 国产在线视频一区二区三区| 亚洲成人激情av| 中文字幕乱码一区二区免费| 欧美精品在线一区二区三区| www.综合网.com| 久久精品国产色蜜蜜麻豆| 亚洲午夜激情网页| 久久久精品综合| 在线播放中文一区| 91老师片黄在线观看| 国产精品1024| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲天堂久久久久久久| 色综合久久久久综合体| 国产曰批免费观看久久久| 午夜电影网一区| 亚洲乱码国产乱码精品精小说| 国产精品丝袜在线| 久久综合久久鬼色中文字| 欧美剧情片在线观看| 欧美色网站导航| 在线观看精品一区| aaa亚洲精品| 国产aⅴ综合色| 国产自产高清不卡| 日本不卡在线视频| 亚洲成人av一区二区三区| 亚洲免费av网站| 国产精品伦一区| 日本一区二区三区免费乱视频 | 成人免费看片app下载| 精品午夜一区二区三区在线观看| 日本一区中文字幕| 天天av天天翘天天综合网| 亚洲一区二区视频| 亚洲另类色综合网站| 中文字幕综合网| 国产色91在线| 欧美高清一级片在线观看| 国产亚洲精品7777| 久久免费偷拍视频| 久久久亚洲欧洲日产国码αv| 久久天天做天天爱综合色| 精品国产乱码久久久久久浪潮| 欧美一区二区三区性视频| 欧美一区二区三区公司| 在线成人免费视频| 欧美午夜寂寞影院| 欧美日本国产一区| 欧美色视频在线观看| 欧美日韩视频在线第一区 | 婷婷激情综合网| 五月天丁香久久| 日本三级韩国三级欧美三级| 蜜臀a∨国产成人精品| 麻豆精品精品国产自在97香蕉| 久久不见久久见免费视频7| 国产一区二区三区在线观看精品| 国内精品伊人久久久久av影院| 国产一区二区三区四| 国产精品一品二品| 国产99久久久精品| 国产精品亚洲成人|