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

📄 error.c

📁 编译原理这门课确实不是很容易
💻 C
📖 第 1 页 / 共 3 页
字号:
                        break;
                case ERR_INTERP:
                        sprintf(buf,"%s",(char *)err->data);
                        break;
                case ERR_BFADDR:
                        sprintf(buf,"Cannot take address of bit field");
                        break;
                case ERR_MODCONS:
                        sprintf(buf,"Cannot modify a const val");
                        break;
                case ERR_SZTYPE:
                        sprintf(buf,"Type expected in sizeof");
                        break;
                case ERR_FUNCRETVAL:
                        sprintf(buf,"Function should return a value");
                        errlvl = 1;
                        break;
                case ERR_STATICSYMUNUSED:
                        sprintf(buf,"Static variable '%s' is declared but never used",(char *)err->data);
                        errlvl = 1;
                        break;
                case ERR_SYMUNUSED:
                        sprintf(buf,"Variable '%s' is declared but never used",(char *)err->data);
                        errlvl = 1;
                        break;
                case ERR_FUNCUNUSED:
                        sprintf(buf,"Static function '%s' is declared but never used",(char *)err->data);
                        errlvl = 1;
                        break;
                case ERR_SYMUNDEF:
                        sprintf(buf,"Possible use of '%s' before assignment",(char *)err->data);
                        errlvl = 1;
                        break;
                case ERR_SYMASSIGNED:
                        sprintf(buf,"Variable '%s' is possibly assigned a value which is never used",(char *)err->data);
                        errlvl = 1;
                        break;
                case ERR_NONPORT:
                        sprintf(buf,"Nonportable pointer conversion");
                        errlvl = 1;
                        break;
                case ERR_UNREACHABLE:
                        sprintf(buf,"Unreachable code");
                        errlvl = 1;
                        break;
								case ERR_CODENONE:
												sprintf(buf,"Code has no effect");
												errlvl = 1;
												break;
								case ERR_BADEQUATE:
												sprintf(buf,"Possible incorrect assignment");
												errlvl = 1;
												break;
								case ERR_NOANDREG:
												sprintf(buf,"Invalid '&' on register var '%s'",(char *)err->data);	
												break;
								case ERR_NOCONTINUE:
												sprintf(buf,"Continue not allowed");	
												break;
								case ERR_DUPLABEL:
												sprintf(buf,"Duplicate label '%s'",(char *)err->data);	
												break;
								case ERR_NOFUNCARRAY:
												sprintf(buf,"Function cannot return array");	
												break;
								case ERR_NOVOIDRET:
												sprintf(buf,"Return type is void");	
												errlvl = 1;
												break;
								case ERR_ZEROSTORAGE:
												sprintf(buf,"No memory allocated for '%s'",(char *)err->data);	
												errlvl = 1;
												break;
								case ERR_ZEROPTR:
												sprintf(buf,"Illegal use of void pointer");
												break;
								case ERR_SHORTPOINTER:
												sprintf(buf,"Dangerous pointer cast");	
												errlvl = 1;
												break;
								case ERR_NOSTATICFUNC:
												sprintf(buf,"Nonexistant static func '%s'",(char *)err->data);	
												break;
								case ERR_UNUSEDLABEL:												
												errlvl = 1;
												sprintf(buf,"Unused label '%s'",(char *)err->data);	
												break;
								case ERR_NOPROTO:
												sprintf(buf,"Call to function '%s' with no prototype",(char *)err->data);	
												errlvl = prm_cplusplus==0;
												break;
								case ERR_LOSTCONV:
												sprintf(buf,"Conversion may truncate significant digits");	
												errlvl = 1;
												break;
								case ERR_UNDEFLABEL:
												sprintf(buf,"Undefined label '%s'",(char *)err->data);	
												break;
								case ERR_ILLREGISTER:
												sprintf(buf,"Illegal register var '%s'",(char *)err->data);
												errlvl = 1;
												break;
								case ERR_SUPERAND:
												sprintf(buf,"Possible superfluous &");
												errlvl = 1;
												break;
								case ERR_NODECLARE:
												sprintf(buf,"Declaration not allowed here");
												break;
								case ERR_NOMAIN:
												sprintf(buf,"Illegal call to main() from within program");
												break;
								case ERR_NOREF:
												sprintf(buf,"Illegal use of reference operator");
												break;
								case ERR_CANTREF:
												sprintf(buf,"Cannot define a pointer or reference to a reference");
												break;
								case ERR_TEMPUSED:
												sprintf(buf,"Temporary used for parameter %s",(char *)err->data);
												errlvl = 1;
												break;
								case ERR_REFMUSTINIT:
												sprintf(buf,"Reference variable '%s' must be initialized",(char *)err->data);
												break;
								case ERR_TEMPINIT:
												sprintf(buf,"Temporary used to initialize %s",(char *)err->data);
												errlvl = 1;
												break;
								case ERR_REFLVALUE:
												sprintf(buf,"Reference initialization needs lvalue");
												break;
								case ERR_REFNOCONS:
												sprintf(buf,"Reference member '%s' in a class with no constructors",(char *)err->data);
												break;
								case ERR_MISSINGDEFAULT:
												sprintf(buf,"Default missing after parameter '%s'",(char *)err->data);
												break;
								case ERR_AMBIGFUNC:
												sprintf(buf,"Ambiguity between %s",(char *)err->data);
												break;
								case ERR_NOLOCALDEFAULT:
												sprintf(buf,"Local variables may not be used as parameter defaults");
												break;
								case ERR_CPPMISMATCH:
												sprintf(buf,"Cannot cast %s",(char *)err->data);
												break;
								case ERR_NOOVERMAIN:
												sprintf(buf,"Cannot overload 'main'",(char *)err->data);
												break;
								case ERR_SWITCHINT:
												sprintf(buf,"Switch argument must be of integral type");
												break;
								case ERR_NOFUNCMATCH:
												sprintf(buf,"Could not find a match for '%s'",(char *)err->data);
												break;
/*
								case ERR_PREDEFSTRUCT:
												sprintf(buf,"'%s' must be a predefined class or struct",(char *)err->data);
												break;
								case ERR_LOCALCLASS:
												sprintf(buf,"Local class functions not supported",(char *)err->data);
												break;
								case ERR_PUREDECL:
												sprintf(buf,"Illegal pure declaration syntzx of '%s'",(char *)err->data);
												break;
								case ERR_BADESTRUCT:
												sprintf(buf,"Destructor for class '%s' expected",(char *)err->data);
												break;
								case ERR_TYPECONSTRUCT:
												sprintf(buf,"Constructor/destructor must be untyped");
												break;
								case ERR_NOTYPEQUAL:
												sprintf(buf,"Variable '%s' cannot have a type qualifier",(char *)err->data);
												break;
								case ERR_NOTACLASS:
												sprintf(buf,"Variable '%s' is not a class instance",(char *)err->data);
												break;
*/                case ERR_SIZE:
												if (err->data)
												  sprintf(buf,"Size of '%s' is unknown or zero",(char *)err->data);
												else
												  sprintf(buf,"Size is unknown or zero");
												break;
								case ERR_NEVERSTRUCT:
												sprintf(buf,"Structure '%s' is undefined",(char *)err->data);
												errlvl = 1;
												break;
												
								case ERR_LONGLONG:
												sprintf(buf,"long long int type not supported, defaulting to long int");
												errlvl = 1;
												break;
								case ERR_UPDOWN:
												sprintf(buf,"Startup/rundown function '%s' is unknown or not a function",(char *)err->data);
												break;
			case ERR_INTBITFIELDS:
                        	sprintf(buf,"Bit fields must be signed or unsigned int");
													break;
			case ERR_COMMENTMATCH:
													sprintf(buf,"File ended with comment in progress");
													break;
			case ERR_PASCAL_NO_ELLIPSE:
													sprintf(buf,"Ellipse (...) not allowed in pascal declaration");
													break;
			case ERR_PASCAL_NO_INT:
													sprintf(buf,"_int keyword not allowed in pascal declaration");
													break;
	    case ERR_SUSPICIOUS:
													sprintf(buf,"Suspicious pointer conversion");
												 	errlvl = 1;
													break;
	    case ERR_NOFUNCSTRUCT:
													sprintf(buf,"Function declaration not allowed here");
													break;
	    case ERR_STRINGTOOBIG:
													sprintf(buf,"String constant too long");
													break;
	    case ERR_CONSTTOOLARGE:
													sprintf(buf,"Numeric constant is too large");
													break;
			case ERR_MULTIPLEINIT:
												  sprintf(buf,"Multiple initialization for '%s'",(char *)err->data);
													break;
			case ERR_INVALIDSTRING:
												  sprintf(buf,"Invalid string operation");
													break;
			case ERR_AMODEEXPECT:
												  sprintf(buf,"Assembler: Address mode expected");
													break;
			case ERR_ASCALE:
												  sprintf(buf,"Assembler: Valid scale factor expected");
													break;
			case ERR_AINVINDXMODE:
												  sprintf(buf,"Assembler: Invalid indexing");
													break;
			case ERR_AILLADDRESS:
												  sprintf(buf,"Assembler: Invalid address mode");
													break;
			case ERR_ATOOMANYSPECS:
												  sprintf(buf,"Assembler: Too many specifiers");
													break;
			case ERR_ATOOMANYSEGS:
												  sprintf(buf,"Assembler: Too many segments");
													break;
			case ERR_AINVOP:
												  sprintf(buf,"Assembler: Invalid opcode");
													break;
			case ERR_AINVSIZE:
												  sprintf(buf,"Assembler: Size mismatch");
													break;
			case ERR_AUSELEA:
												  sprintf(buf,"Assembler: Must use LEA to take the address of a local variable");
													break;
			case ERR_ALABEXPECT:
												  sprintf(buf,"Assembler: Label expected");
													break;
			case ERR_ANEEDFP:
												  sprintf(buf,"Assembler: Floating point register expected");
													break;
											
							  default:
                        sprintf(buf,"Error #%d",err->errornumber);
                        break;
        }
        return errlvl;
}
void     lferror(void)
/*
 * sticck an error in the list file
 */
{  
        char buf[100];
        while(curerr) {
                                                int errlvl = printerr(buf,curerr);
                                                if (!errlvl) {
																										if (prm_listfile)
                                                        fprintf(listFile,"**** ERROR: %s\n",buf);
																								}
                                                else if (prm_warning) {
																										if (prm_listfile)
                                                        fprintf(listFile,"** WARNING: %s\n",buf);
																								}
                                                curerr = curerr->link;
                                }
                                                
}
void basicskim(int *skimlist)

⌨️ 快捷键说明

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