/************************************************************************/ /* */ /* RCPP - Resource Compiler Pre-Processor for NT system */ /* */ /* GETMSG.H - Include File for the message return function */ /* */ /* 28-Nov-90 w-BrianM Created to replace need for MKMSG.EXE */ /* */ /************************************************************************/ /************************************************************************/ /**** ****/ /**** NOTE - All changes in this file MUST be duplicated in MSGS.H! ****/ /**** ****/ /************************************************************************/ #include "msgs.h" #define LASTMSG -1 struct msgtable { int usmsgnum; char * pmsg; } MSG_TABLE[] = { /****************************************************************/ /* Messages */ /****************************************************************/ {MSG_LEFT, "left"}, {MSG_RIGHT, "right"}, {MSG_UC_UNNAMED, "UNNAMED"}, {MSG_LC_UNNAMED, ""}, {MSG_COMMA, "trailing ',' used for variable argument list"}, {MSG_CAST_LVAL, "cast on lvalue"}, {MSG_EXT_INIT, "extended initializer form"}, {MSG_TYPEDEF, "benign typedef redefinition"}, {MSG_EXT_REDEF, "redefined extern to static"}, {MSG_MAC_FORMALS, "macro formals in strings"}, {MSG_NO_SEMI, "missing ';' following last struct/union member"}, {MSG_BITFIELDS, "bitfield types other than int"}, {MSG_WARN, "warning"}, {MSG_ERROR, "error"}, {MSG_FATAL, "fatal error"}, {MSG_BLOCK_FUNCDECL, "function given file scope"}, {MSG_CASTTO_FUNC, "cast of data pointer to function pointer"}, {MSG_CASTTO_NONFUNC, "cast of function pointer to data pointer"}, {MSG_ELLIPSIS, "function declaration used ellipsis"}, {MSG_TOLEVEL0, "used function declaration from a previous block"}, /****************************************************************/ /* Fatals */ /****************************************************************/ {1001, "Internal Compiler Error\n\t\t(compiler file '%s', line %d)\n\t\tPlease report this error to your local dealer"}, {1002, "out of heap space"}, {1003, "error count exceeds %d; stopping compilation"}, {1004, "unexpected EOF"}, {1005, "string too big for buffer"}, {1006, "write error on compiler intermediate file"}, {1007, "unrecognized flag '%s' in '%s'"}, {1008, "no input file specified"}, {1009, "compiler limit : macros too deeply nested"}, {1010, "compiler limit : macro expansion too big"}, {1011, "no output file specified"}, {1012, "bad parenthesis nesting - missing '%c'"}, {1013, "cannot open source file '%s'"}, {1014, "too many include files"}, {1015, "cannot open include file '%s'"}, {1016, "#if[n]def expected an identifier"}, {1017, "invalid integer constant expression"}, {1018, "unexpected '#elif'"}, {1019, "unexpected '#else'"}, {1020, "unexpected '#endif'"}, {1021, "bad preprocessor command '%s'"}, {1022, "expected '#endif'"}, {1023, "Could not open output file"}, {1026, "parser stack overflow, please simplify your program"}, {1027, "DGROUP data allocation exceeds 64K" /* QC, c23 */}, {1028, "%s segment allocation exceeds 64K" /* QC */}, {1031, "compiler limit : function calls too deeply nested" /* QC, c23 */}, {1032, "cannot open object listing file '%s'" /* QC, c23 */}, {1035, "expression too complex, please simplify" /* QC, c23 */}, {1037, "cannot open object file '%s'" /* QC, c23 */}, {1041, "cannot open compiler intermediate file - no more files"}, {1042, "cannot open compiler intermediate file - no such file or directory"}, {1043, "cannot open compiler intermediate file"}, {1044, "out of disk space for compiler intermediate file"}, {1045, "floating point overflow"}, {1047, "too many %s flags, '%s'"}, {1048, "unknown option '%c' in '%s'"}, {1049, "invalid numerical argument '%s'"}, {1052, "too many #if/#ifdef's"}, {1053, "compiler limit : struct/union nesting"}, {1054, "compiler limit : initializers too deeply nested"}, {1055, "compiler limit : out of keys"}, {1056, "compiler limit : out of macro expansion space"}, {1057, "unexpected EOF in macro expansion (missing ')'?)"}, {1059, "out of near heap space"}, {1060, "out of far heap space"}, {1061, "compiler limit : blocks too deeply nested" /* QC */}, {1062, "error writing to preprocessor output file"}, {1063, "compiler limit : compiler stack overflow" /* QC */}, {1065, "compiler limit : '%s': macro definition too big"}, {1067, "compiler limit : identifier overflowed internal buffer"}, {1068, "compiler error : possible binary file for input"}, {1000, "UNKNOWN FATAL ERROR\n\t\tPlease report this error to your local dealer"}, /****************************************************************/ /* Errors */ /****************************************************************/ {2001, "newline in constant"}, {2003, "expected 'defined id'"}, {2004, "expected 'defined(id)'"}, {2005, "#line expected a line number, found '%s'"}, {2006, "#include expected a file name, found '%s'"}, {2007, "#define syntax"}, {2008, "'%c' : unexpected in macro definition"}, {2009, "reuse of macro formal '%s'"}, {2010, "'%c' : unexpected in formal list"}, {2012, "missing name following '<'"}, {2013, "missing '>'"}, {2014, "preprocessor command must start as first non-whitespace"}, {2015, "too many chars in constant"}, {2016, "no closing single quote"}, {2017, "illegal escape sequence"}, {2018, "unknown character '0x%x'"}, {2019, "expected preprocessor command, found '%c'"}, {2020, "illegal digit '%c' for base %d"}, {2021, "expected exponent value, not '%c'"}, {2022, "'%ld' : too big for char"}, {2023, "divide by 0"}, {2024, "mod by 0"}, {2025, "'%s' : enum/struct/union type redefinition"}, {2026, "'%s' : member of enum redefinition"}, {2028, "struct/union member needs to be inside a struct/union"}, {2029, "'%Fs' : bit-fields only allowed in structs"}, {2030, "'%Fs' : struct/union member redefinition"}, {2031, "'%Fs' : function cannot be struct/union member"}, {2033, "'%Fs' : bit-field cannot have indirection"}, {2034, "'%Fs' : bit-field type too small for number of bits"}, {2035, "struct/union '%Fs' : unknown size"}, {2036, "left of '%s%s' must have a struct/union type"}, {2037, "left of '%s' specifies undefined struct/union '%Fs'"}, {2038, "'%s' : not struct/union member"}, {2039, "'->' requires struct/union pointer"}, {2040, "'.' requires struct/union name"}, {2042, "signed/unsigned keywords mutually exclusive"}, {2043, "illegal break"}, {2044, "illegal continue"}, {2045, "'%s' : label redefined"}, {2046, "illegal case"}, {2047, "illegal default"}, {2048, "more than one default"}, {2050, "non-integral switch expression"}, {2051, "case expression not constant"}, {2052, "case expression not integral"}, {2053, "case value %d already used"}, {2054, "expected '(' to follow '%Fs'"}, {2055, "expected formal parameter list, not a type list"}, {2056, "illegal expression"}, {2057, "expected constant expression"}, {2058, "constant expression is not integral"}, {2059, "syntax error : '%s'"}, {2060, "syntax error : EOF"}, {2061, "syntax error : identifier '%s'"}, {2062, "type '%s' unexpected"}, {2063, "'%s' : not a function"}, {2064, "term does not evaluate to a function"}, {2065, "'%s' : undefined"}, {2066, "cast to function returning . . . is illegal"}, {2067, "cast to array type is illegal"}, {2068, "illegal cast"}, {2069, "cast of 'void' term to non-void"}, {2070, "'%Fs' : storage class must be 'extern'"}, {2071, "'%Fs' : bad storage class"}, {2072, "'%Fs' : initialization of a function"}, {2075, "'%Fs' : array initialization needs curly braces"}, {2076, "'%Fs' : struct/union initialization needs curly braces"}, {2077, "non-scalar field initializer '%Fs'"}, {2078, "too many initializers"}, {2079, "'%Fs' uses undefined struct/union '%Fs'"}, {2082, "redefinition of formal parameter '%Fs'"}, {2084, "function '%Fs' already has a body"}, {2085, "'%Fs' : not in formal parameter list"}, {2086, "'%Fs' : redefinition"}, {2087, "'%Fs' : missing subscript"}, {2088, "use of undefined enum/struct/union '%Fs'"}, {2090, "function returns array"}, {2091, "function returns function"}, {2092, "array element type cannot be function"}, {2093, "cannot initialize a static or struct with address of automatic vars"}, {2094, "label '%Fs' was undefined"}, {2095, "'%Fs' : actual has type 'void' : parameter %d"}, {2096, "struct/union comparison illegal"}, {2097, "illegal initialization"}, {2098, "non-address expression"}, {2099, "non-constant offset"}, {2100, "illegal indirection"}, {2101, "'&' on constant"}, {2102, "'&' requires lvalue"}, {2103, "'&' on register variable"}, {2104, "'&' on bit-field ignored"}, {2105, "'%s' needs lvalue"}, {2106, "'%s' : left operand must be lvalue"}, {2107, "illegal index, indirection not allowed"}, {2108, "non-integral index"}, {2109, "subscript on non-array"}, {2110, "'+' : 2 pointers"}, {2111, "pointer + non-integral value"}, {2112, "illegal pointer subtraction"}, {2113, "'-' : right operand pointer"}, {2114, "'%s' : pointer on left; needs integral right"}, {2115, "'%s' : incompatible types"}, {2116, "'%s' : bad %s operand"}, {2117, "'%s' : illegal for struct/union"}, {2118, "negative subscript"}, {2119, "'typedefs' both define indirection"}, {2120, "'void' illegal with all types"}, {2125, "%Fs : allocation exceeds 64K" /* QC, c23 */}, {2126, "%Fs : auto allocation exceeds %s" /* QC, c23 */}, {2127, "parameter allocation exceeds 32K" /* QC, c23 */}, {2130, "#line expected a string containing the file name, found '%s'"}, {2131, "attributes specify more than one near/far/huge"}, {2132, "syntax error : unexpected identifier"}, {2133, "'%Fs' : unknown size"}, {2134, "'%Fs' : struct/union too large"}, {2137, "empty character constant"}, {2138, "unmatched close comment '*/'"}, {2139, "type following '%s' is illegal"}, {2140, "argument type cannot be function returning . . ."}, {2141, "value out of range for enum constant"}, {2142, "ellipsis requires three periods"}, {2143, "syntax error : missing '%s' before '%s'"}, {2144, "syntax error : missing '%s' before type '%Fs'"}, {2145, "syntax error : missing '%s' before identifier"}, {2146, "syntax error : missing '%s' before identifier '%s'"}, {2147, "unknown size"}, {2148, "array too large"}, {2149, "'%Fs' : named bit-field cannot have 0 width"}, {2150, "'%Fs' : bit-field must have type int, signed int, or unsigned int"}, {2151, "more than one cdecl/fortran/pascal attribute specified"}, {2152, "'%s' : pointers to functions with different attributes"}, {2153, "hex constants must have at least 1 hex digit"}, {2154, "'%s' : does not refer to a segment name"}, {2155, "'%s' : already in a segment"}, {2156, "pragma must be at outer level"}, {2157, "'%s' : must be declared before use in pragma list"}, {2158, "'%s' : is a function"}, {2159, "more than one storage class specified"}, {2160, "## cannot occur at the beginning of a macro definition"}, {2161, "## cannot occur at the end of a macro definition"}, {2162, "expected macro formal parameter"}, {2163, "'%s' : not available as an intrinsic"}, {2164, "'%s' : intrinsic was not declared"}, {2165, "'%s' : cannot modify pointers to data"}, {2166, "lval specifies 'const' object"}, {2167, "'%Fs' : too many actual parameters for intrinsic"}, {2168, "'%Fs' : too few actual parameters for intrinsic"}, {2169, "'%Fs' : is an intrinsic, it cannot be defined"}, {2170, "'%s' : intrinsic not declared as a function"}, {2171, "'%s' : bad operand"}, {2172, "'%Fs' : actual is not a pointer : parameter %d"}, {2173, "'%Fs' : actual is not a pointer : parameter %d, parameter list %d"}, {2174, "'%Fs' : actual has type 'void' : parameter %d, parameter list %d"}, {2175, "'%Fs' : unresolved external" /* QC */}, {2176, "static far data not supported" /* QC */}, {2177, "constant too big"}, {2178, "'%s' : storage class for same_seg variables must be 'extern'"}, {2179, "'%Fs' : was used in same_seg, but storage class is no longer 'extern'"}, {2180, "controlling expression has type 'void'"}, {2181, "pragma requires command line option '%s'" /* QC */}, {2182, "'%Fs' : has type 'void'"}, {2183, "'interrupt' function must be 'far'"}, {2184, "'%s' function cannot be 'pascal/fortran'"}, {2186, "'saveregs/interrupt' modifiers mutually exclusive"}, {2187, "cast of near function pointer to far function pointer"}, {2188, "#error : %s"}, {2190, "'%s' : is a text segment"}, {2191, "'%s' : is a data segment"}, {2198, "'%Fs' : tried to be allocated in code segment '%Fs'"}, {2199, "'%Fs' : tried to be allocated in data segment '%Fs'"}, {2200, "'%Fs' : function has already been defined"}, {2205, "'%Fs' : cannot initialize 'extern' block scoped variables"}, {2400, "inline syntax error %s, found '%Fs'"}, {2401, "'%s' : register must be base %s"}, {2402, "'%s' : register must be index %s"}, {2403, "'%s' : register must be base/index %s"}, {2404, "'%s' : illegal register %s"}, {2405, "illegal short forward reference with offset"}, {2406, "'%s' : name undefined %s"}, {2407, "illegal float register %s"}, {2408, "illegal type on PTR operator %s"}, {2409, "illegal type used as operator %s"}, {2410, "'%s' : ambiguous member name %s"}, {2411, "'%s' : illegal struct/union member %s"}, {2412, "'%s' : label redefined"}, {2413, "'%s' : illegal align size"}, {2414, "illegal number of operands"}, {2415, "improper operand type"}, {2416, "'%s' : illegal opcode for processor"}, {2417, "divide by zero %s"}, {2419, "mod by zero %s"}, {2420, "'%s' : illegal symbol %s"}, {2421, "PTR operator used with register %s"}, {2422, "illegal segment override %s"}, {2424, "'%s' : improper expression %s"}, {2425, "'%s' : non-constant expression %s"}, {2426, "'%s' : illegal operator %s"}, {2427, "'%Fs' : jump referencing label is out of range" /* QC */}, {2428, "_asm not implemented"}, {2000, "UNKNOWN ERROR\n\t\tPlease report this error to your local dealer"}, /****************************************************************/ /* Warnings */ /****************************************************************/ {4002, "too many actual parameters for macro '%s'"}, {4003, "not enough actual parameters for macro '%s'"}, {4004, "missing close parenthesis after 'defined'"}, {4005, "'%s' : redefinition"}, {4006, "#undef expected an identifier"}, {4009, "string too big, trailing chars truncated"}, {4011, "identifier truncated to '%s'"}, {4012, "float constant in a cross compilation"}, {4014, "'%Fs' : bit-field type must be unsigned"}, {4015, "'%Fs' : bit-field type must be integral"}, {4016, "'%s' : no function return type, using 'int' as default"}, {4017, "cast of int expression to far pointer"}, {4020, "'%Fs' : too many actual parameters"}, {4021, "'%Fs' : too few actual parameters"}, {4022, "'%Fs' : pointer mismatch : parameter %d"}, {4024, "'%Fs' : different types : parameter %d"}, {4026, "function was declared with formal argument list"}, {4027, "function was declared without formal argument list"}, {4028, "parameter %d declaration different"}, {4029, "declared parameter list different from definition"}, {4030, "first parameter list is longer than the second"}, {4031, "second parameter list is longer than the first"}, {4032, "unnamed struct/union as parameter"}, {4033, "function must return a value"}, {4034, "sizeof returns 0"}, {4035, "'%Fs' : no return value"}, {4037, "'%Fs' : formal parameters ignored"}, {4038, "'%Fs' : formal parameter has bad storage class"}, {4039, "'%Fs' : function used as an argument"}, {4040, "near/far/huge on '%Fs' ignored"}, {4042, "'%Fs' : has bad storage class"}, {4044, "huge on '%Fs' ignored, must be an array"}, {4045, "'%s' : array bounds overflow"}, {4046, "'&' on function/array, ignored"}, {4047, "'%s' : different levels of indirection"}, {4048, "array's declared subscripts different"}, {4049, "'%s' : indirection to different types"}, {4051, "data conversion"}, {4053, "at least one void operand"}, {4058, "address of frame variable taken, DS != SS" /* QC, c23 */}, {4060, "conversion of long address to short address" /* QC, c23 */}, {4061, "long/short mismatch in argument : conversion supplied" /* QC, c23 */}, {4062, "near/far mismatch in argument : conversion supplied" /* QC, c23 */}, {4067, "unexpected characters following '%s' directive - newline expected"}, {4068, "unknown pragma"}, {4071, "'%Fs' : no function prototype given"}, {4074, "non standard extension used - '%s'"}, {4075, "size of switch expression or case constant too large - converted to int"}, {4076, "'%s' : may be used on integral types only"}, {4077, "unknown check_stack option"}, {4079, "unexpected token '%s'"}, {4080, "expected 'identifier' for segment name, found '%s'"}, {4081, "expected a comma, found '%s'"}, {4082, "expected an identifier, found '%s'"}, {4083, "expected '(', found '%s'"}, {4084, "expected a pragma keyword, found '%s'"}, {4085, "expected [on | off]"}, {4086, "expected [1 | 2 | 4]"}, {4087, "'%Fs' : declared with 'void' parameter list"}, {4088, "'%Fs' : pointer mismatch : parameter %d, parameter list %d"}, {4089, "'%Fs' : different types : parameter %d, parameter list %d"}, {4090, "different 'const' attributes"}, {4091, "no symbols were declared"}, {4092, "untagged enum/struct/union declared no symbols"}, {4093, "unescaped newline in character constant in non-active code"}, {4095, "expected ')', found '%s'"}, {4098, "void function returning a value"}, {4100, "'%Fs' : unreferenced formal parameter"}, {4101, "'%Fs' : unreferenced local variable"}, {4102, "'%Fs' : unreferenced label"}, {4104, "'%s' : near data in same_seg pragma, ignored"}, {4105, "'%Fs' : code modifiers only on function or pointer to function"}, {4106, "pragma requires integer between 1 and 127"}, {4107, "pragma requires integer between 15 and 255"}, {4108, "pragma requires integer between 79 and 132"}, {4109, "unexpected identifier '%s'"}, {4110, "unexpected token 'int constant'"}, {4111, "unexpected token 'string'"}, {4112, "macro name '%s' is reserved, %s ignored"}, {4113, "function parameter lists differed"}, {4114, "same type qualifier used more than once"}, {4115, "'%Fs' : type definition in formal parameter list"}, {4116, " : type definition in formal parameter list"}, {4118, "pragma not supported"}, {4401, "'%s' : member is bitfield"}, {4402, "must use PTR operator"}, {4403, "illegal PTR operator"}, {4404, "period on directive ignored"}, {4405, "'%s' : identifier is reserved word"}, {4406, "operand on directive ignored"}, {4407, "operand size conflict"}, {4408, "'%s' : ambiguous label"}, {4409, "illegal instruction size"}, {4410, "illegal size for operand"}, {4411, "'%s' : symbol resolves to displacement register"}, {4412, "'%s' : identifier is also assembler mnemonic"}, {4413, "Cannot determine file type for '%s' : assuming 8-bit ascii"}, {4000, "UNKNOWN WARNING\n\t\tPlease report this error to your local dealer"}, {LASTMSG, ""} };