⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 error.h

📁 早期freebsd实现
💻 H
字号:
/* * Copyright (c) 1980, 1993 *	The Regents of the University of California.  All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software *    must display the following acknowledgement: *	This product includes software developed by the University of *	California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors *    may be used to endorse or promote products derived from this software *    without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * *	@(#)error.h	8.1 (Berkeley) 6/6/93 */typedef	int	boolean;#define	reg	register#define	TRUE	1#define	FALSE	0#define	true	1#define	false	0/* *	Descriptors for the various languages we know about. *	If you touch these, also touch lang_table */#define	INUNKNOWN	0#define	INCPP	1#define	INCC	2#define	INAS	3#define	INLD	4#define	INLINT	5#define	INF77	6#define	INPI	7#define	INPC	8#define	INFRANZ	9#define	INLISP	10#define	INVAXIMA	11#define	INRATFOR	12#define	INLEX	13#define	INYACC	14#define	INAPL	15#define	INMAKE	16#define	INRI	17#define	INTROFF	18#define	INMOD2	19extern	int	language;/* *	We analyze each line in the error message file, and *	attempt to categorize it by type, as well as language. *	Here are the type descriptors. */typedef	int	Errorclass;#define	C_FIRST	0		/* first error category */#define	C_UNKNOWN	0	/* must be zero */#define	C_IGNORE	1	/* ignore the message; used for pi */#define	C_SYNC		2	/* synchronization errors */#define	C_DISCARD	3	/* touches dangerous files, so discard */#define	C_NONSPEC	4	/* not specific to any file */#define	C_THISFILE	5	/* specific to this file, but at no line */#define	C_NULLED	6	/* refers to special func; so null */#define	C_TRUE		7	/* fits into true error format */#define	C_DUPL		8	/* sub class only; duplicated error message */#define	C_LAST	9		/* last error category */#define	SORTABLE(x)	(!(NOTSORTABLE(x)))#define	NOTSORTABLE(x)	(x <= C_NONSPEC)/* *	Resources to count and print out the error categories */extern	char		*class_table[];extern	int		class_count[];#define	nunknown	class_count[C_UNKNOWN]#define	nignore		class_count[C_IGNORE]#define	nsyncerrors	class_count[C_SYNC]#define	ndiscard	class_count[C_DISCARD]#define	nnonspec	class_count[C_NONSPEC]#define	nthisfile	class_count[C_THISFILE]#define	nnulled		class_count[C_NULLED]#define	ntrue		class_count[C_TRUE]#define	ndupl		class_count[C_DUPL]/* places to put the error complaints */#define	TOTHEFILE	1	/* touch the file */#define	TOSTDOUT	2	/* just print them out (ho-hum) */FILE	*errorfile;	/* where error file comes from */FILE	*queryfile;	/* where the query responses from the user come from*/extern	char	*currentfilename;extern	char	*processname;extern	char	*scriptname;extern	boolean	query;extern	boolean	terse;int	inquire();			/* inquire for yes/no *//*  *	codes for inquire() to return */#define	Q_NO	1			/* 'N' */#define	Q_no	2			/* 'n' */#define	Q_YES	3			/* 'Y' */#define	Q_yes	4			/* 'y' */int	probethisfile();/* *	codes for probethisfile to return */#define	F_NOTEXIST	1#define	F_NOTREAD	2#define	F_NOTWRITE	3#define	F_TOUCHIT	4/* *	Describes attributes about a language */struct lang_desc{	char	*lang_name;	char	*lang_incomment;	/* one of the following defines */	char	*lang_outcomment;	/* one of the following defines */};extern struct lang_desc lang_table[];#define	CINCOMMENT	"/*###"#define	COUTCOMMENT	"%%%*/\n"#define	FINCOMMENT	"C###"#define	FOUTCOMMENT	"%%%\n"#define	NEWLINE		"%%%\n"#define	PIINCOMMENT	"(*###"#define	PIOUTCOMMENT	"%%%*)\n"#define	LISPINCOMMENT	";###"#define	ASINCOMMENT	"####"#define	RIINCOMMENT	CINCOMMENT#define	RIOUTCOMMENT	COUTCOMMENT#define	TROFFINCOMMENT	".\\\"###"#define	TROFFOUTCOMMENT	NEWLINE#define	MOD2INCOMMENT	"(*###"#define	MOD2OUTCOMMENT	"%%%*)\n"/* *	Defines and resources for determing if a given line *	is to be discarded because it refers to a file not to *	be touched, or if the function reference is to a *	function the user doesn't want recorded. */#define	ERRORNAME	"/.errorrc"int	nignored;char	**names_ignored;/*  *	Structure definition for a full error */typedef struct edesc	Edesc;typedef	Edesc	*Eptr;struct edesc{	Eptr	error_next;		/*linked together*/	int	error_lgtext;		/* how many on the right hand side*/	char	**error_text;		/* the right hand side proper*/	Errorclass	error_e_class;	/* error category of this error*/	Errorclass	error_s_class;	/* sub descriptor of error_e_class*/	int	error_language;		/* the language for this error*/	int	error_position;		/* oridinal position */	int	error_line;		/* discovered line number*/	int	error_no;		/* sequence number on input */};/* *	Resources for the true errors */extern	int	nerrors;extern	Eptr	er_head;extern	Eptr	*errors;	/* *	Resources for each of the files mentioned */extern	int	nfiles;extern	Eptr	**files;	/* array of pointers into errors*/boolean	*touchedfiles;			/* which files we touched *//* *	The langauge the compilation is in, as intuited from *	the flavor of error messages analyzed. */extern	int	langauge;extern	char	*currentfilename;/* *	Functional forwards */char	*Calloc();char	*strsave();char	*clobberfirst();char	lastchar();char	firstchar();char	next_lastchar();char	**wordvsplice();int	wordvcmp();boolean	persperdexplode();/* *	Printing hacks */char	*plural(), *verbform();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -