diff options
Diffstat (limited to 'includes/compiler/CError.h')
-rw-r--r-- | includes/compiler/CError.h | 364 |
1 files changed, 364 insertions, 0 deletions
diff --git a/includes/compiler/CError.h b/includes/compiler/CError.h new file mode 100644 index 0000000..89f67e4 --- /dev/null +++ b/includes/compiler/CError.h @@ -0,0 +1,364 @@ +#ifndef COMPILER_CERROR_H +#define COMPILER_CERROR_H + +#include "compiler/common.h" + +#define CError_ASSERT(cond) if (!(cond)) { CError_Internal(__FILE__, __LINE__); } +#define CError_FAIL(cond) if (cond) { CError_Internal(__FILE__, __LINE__); } +#define CError_FATAL() do { CError_Internal(__FILE__, __LINE__); } while (0) + +enum { + CErrorStr100 = 100, + CErrorStr101 = 101, + CErrorStr102 = 102, + CErrorStr103 = 103, + CErrorStr104 = 104, + CErrorStr105 = 105, + CErrorStr106 = 106, + CErrorStr107 = 107, + CErrorStr108 = 108, + CErrorStr109 = 109, + CErrorStr110 = 110, + CErrorStr111 = 111, + CErrorStr112 = 112, + CErrorStr113 = 113, + CErrorStr114 = 114, + CErrorStr115 = 115, + CErrorStr116 = 116, + CErrorStr117 = 117, + CErrorStr118 = 118, + CErrorStr119 = 119, + CErrorStr120 = 120, + CErrorStr121 = 121, + CErrorStr122 = 122, + CErrorStr123 = 123, + CErrorStr124 = 124, + CErrorStr125 = 125, + CErrorStr126 = 126, + CErrorStr127 = 127, + CErrorStr128 = 128, + CErrorStr129 = 129, + CErrorStr130 = 130, + CErrorStr131 = 131, + CErrorStr132 = 132, + CErrorStr133 = 133, + CErrorStr134 = 134, + CErrorStr135 = 135, + CErrorStr136 = 136, + CErrorStr137 = 137, + CErrorStr138 = 138, + CErrorStr139 = 139, + CErrorStr140 = 140, + CErrorStr141 = 141, + CErrorStr142 = 142, + CErrorStr143 = 143, + CErrorStr144 = 144, + CErrorStr145 = 145, + CErrorStr146 = 146, + CErrorStr147 = 147, + CErrorStr148 = 148, + CErrorStr149 = 149, + CErrorStr150 = 150, + CErrorStr151 = 151, + CErrorStr152 = 152, + CErrorStr153 = 153, + CErrorStr154 = 154, + CErrorStr155 = 155, + CErrorStr156 = 156, + CErrorStr157 = 157, + CErrorStr158 = 158, + CErrorStr159 = 159, + CErrorStr160 = 160, + CErrorStr161 = 161, + CErrorStr162 = 162, + CErrorStr163 = 163, + CErrorStr164 = 164, + CErrorStr165 = 165, + CErrorStr166 = 166, + CErrorStr167 = 167, + CErrorStr168 = 168, + CErrorStr169 = 169, + CErrorStr170 = 170, + CErrorStr171 = 171, + CErrorStr172 = 172, + CErrorStr173 = 173, + CErrorStr174 = 174, + CErrorStr175 = 175, + CErrorStr176 = 176, + CErrorStr177 = 177, + CErrorStr178 = 178, + CErrorStr179 = 179, + CErrorStr180 = 180, + CErrorStr181 = 181, + CErrorStr182 = 182, + CErrorStr183 = 183, + CErrorStr184 = 184, + CErrorStr185 = 185, + CErrorStr186 = 186, + CErrorStr187 = 187, + CErrorStr188 = 188, + CErrorStr189 = 189, + CErrorStr190 = 190, + CErrorStr191 = 191, + CErrorStr192 = 192, + CErrorStr193 = 193, + CErrorStr194 = 194, + CErrorStr195 = 195, + CErrorStr196 = 196, + CErrorStr197 = 197, + CErrorStr198 = 198, + CErrorStr199 = 199, + CErrorStr200 = 200, + CErrorStr201 = 201, + CErrorStr202 = 202, + CErrorStr203 = 203, + CErrorStr204 = 204, + CErrorStr205 = 205, + CErrorStr206 = 206, + CErrorStr207 = 207, + CErrorStr208 = 208, + CErrorStr209 = 209, + CErrorStr210 = 210, + CErrorStr211 = 211, + CErrorStr212 = 212, + CErrorStr213 = 213, + CErrorStr214 = 214, + CErrorStr215 = 215, + CErrorStr216 = 216, + CErrorStr217 = 217, + CErrorStr218 = 218, + CErrorStr219 = 219, + CErrorStr220 = 220, + CErrorStr221 = 221, + CErrorStr222 = 222, + CErrorStr223 = 223, + CErrorStr224 = 224, + CErrorStr225 = 225, + CErrorStr226 = 226, + CErrorStr227 = 227, + CErrorStr228 = 228, + CErrorStr229 = 229, + CErrorStr230 = 230, + CErrorStr231 = 231, + CErrorStr232 = 232, + CErrorStr233 = 233, + CErrorStr234 = 234, + CErrorStr235 = 235, + CErrorStr236 = 236, + CErrorStr237 = 237, + CErrorStr238 = 238, + CErrorStr239 = 239, + CErrorStr240 = 240, + CErrorStr241 = 241, + CErrorStr242 = 242, + CErrorStr243 = 243, + CErrorStr244 = 244, + CErrorStr245 = 245, + CErrorStr246 = 246, + CErrorStr247 = 247, + CErrorStr248 = 248, + CErrorStr249 = 249, + CErrorStr250 = 250, + CErrorStr251 = 251, + CErrorStr252 = 252, + CErrorStr253 = 253, + CErrorStr254 = 254, + CErrorStr255 = 255, + CErrorStr256 = 256, + CErrorStr257 = 257, + CErrorStr258 = 258, + CErrorStr259 = 259, + CErrorStr260 = 260, + CErrorStr261 = 261, + CErrorStr262 = 262, + CErrorStr263 = 263, + CErrorStr264 = 264, + CErrorStr265 = 265, + CErrorStr266 = 266, + CErrorStr267 = 267, + CErrorStr268 = 268, + CErrorStr269 = 269, + CErrorStr270 = 270, + CErrorStr271 = 271, + CErrorStr272 = 272, + CErrorStr273 = 273, + CErrorStr274 = 274, + CErrorStr275 = 275, + CErrorStr276 = 276, + CErrorStr277 = 277, + CErrorStr278 = 278, + CErrorStr279 = 279, + CErrorStr280 = 280, + CErrorStr281 = 281, + CErrorStr282 = 282, + CErrorStr283 = 283, + CErrorStr284 = 284, + CErrorStr285 = 285, + CErrorStr286 = 286, + CErrorStr287 = 287, + CErrorStr288 = 288, + CErrorStr289 = 289, + CErrorStr290 = 290, + CErrorStr291 = 291, + CErrorStr292 = 292, + CErrorStr293 = 293, + CErrorStr294 = 294, + CErrorStr295 = 295, + CErrorStr296 = 296, + CErrorStr297 = 297, + CErrorStr298 = 298, + CErrorStr299 = 299, + CErrorStr300 = 300, + CErrorStr301 = 301, + CErrorStr302 = 302, + CErrorStr303 = 303, + CErrorStr304 = 304, + CErrorStr305 = 305, + CErrorStr306 = 306, + CErrorStr307 = 307, + CErrorStr308 = 308, + CErrorStr309 = 309, + CErrorStr310 = 310, + CErrorStr311 = 311, + CErrorStr312 = 312, + CErrorStr313 = 313, + CErrorStr314 = 314, + CErrorStr315 = 315, + CErrorStr316 = 316, + CErrorStr317 = 317, + CErrorStr318 = 318, + CErrorStr319 = 319, + CErrorStr320 = 320, + CErrorStr321 = 321, + CErrorStr322 = 322, + CErrorStr323 = 323, + CErrorStr324 = 324, + CErrorStr325 = 325, + CErrorStr326 = 326, + CErrorStr327 = 327, + CErrorStr328 = 328, + CErrorStr329 = 329, + CErrorStr330 = 330, + CErrorStr331 = 331, + CErrorStr332 = 332, + CErrorStr333 = 333, + CErrorStr334 = 334, + CErrorStr335 = 335, + CErrorStr336 = 336, + CErrorStr337 = 337, + CErrorStr338 = 338, + CErrorStr339 = 339, + CErrorStr340 = 340, + CErrorStr341 = 341, + CErrorStr342 = 342, + CErrorStr343 = 343, + CErrorStr344 = 344, + CErrorStr345 = 345, + CErrorStr346 = 346, + CErrorStr347 = 347, + CErrorStr348 = 348, + CErrorStr349 = 349, + CErrorStr350 = 350, + CErrorStr351 = 351, + CErrorStr352 = 352, + CErrorStr353 = 353, + CErrorStr354 = 354, + CErrorStr355 = 355, + CErrorStr356 = 356, + CErrorStr357 = 357, + CErrorStr358 = 358, + CErrorStr359 = 359, + CErrorStr360 = 360, + CErrorStr361 = 361, + CErrorStr362 = 362, + CErrorStr363 = 363, + CErrorStr364 = 364, + CErrorStr365 = 365, + CErrorStr366 = 366, + CErrorStr367 = 367, + CErrorStr368 = 368, + CErrorStr369 = 369, + CErrorStr370 = 370, + CErrorStr371 = 371, + CErrorStr372 = 372, + CErrorStr373 = 373, + CErrorStr374 = 374, + CErrorStr375 = 375, + CErrorStr376 = 376, + CErrorStr377 = 377, + CErrorStr378 = 378, + CErrorStr379 = 379, + CErrorStr380 = 380, + CErrorStr381 = 381, + CErrorStr382 = 382, + CErrorStr383 = 383, + CErrorStr384 = 384, + CErrorStr385 = 385, + CErrorStr386 = 386, + CErrorStr387 = 387, + CErrorStr388 = 388, + CErrorStr389 = 389, + CErrorStr390 = 390, + CErrorStr391 = 391, + CErrorStr392 = 392, + CErrorStrMAX = 393 +}; + +typedef struct _CErrorBuffer { + char *start; + char *end; + UInt32 size; + UInt32 remaining; +} CErrorBuffer; + +extern void CError_Init(); +extern void CError_SetErrorToken(TStreamElement *token); +extern void CError_SetNullErrorToken(); +extern void CError_LockErrorPos(TStreamElement *token, TStreamElement **saved); +extern void CError_UnlockErrorPos(TStreamElement **saved); +extern void CError_ResetErrorSkip(); +extern void CError_GetErrorString(char *buf, short code); +extern void CError_BufferInit(CErrorBuffer *eb, char *buf, SInt32 bufSize); +extern void CError_BufferGrow(CErrorBuffer *eb, SInt32 amount); +extern void CError_BufferAppendChar(CErrorBuffer *eb, char ch); +extern void CError_BufferAppendString(CErrorBuffer *eb, const char *str); +extern void CError_BufferTerminate(CErrorBuffer *eb); +extern void CError_BufferAppendQualifier(CErrorBuffer *eb, UInt32 qual); +extern void CError_BufferAppendTemplArgExpr(CErrorBuffer *eb, ENode *node); +extern void CError_BufferAppendTemplArg(CErrorBuffer *eb, TemplArg *targ); +extern void CError_BufferAppendTemplArgs(CErrorBuffer *eb, TemplArg *targs); +extern void CError_BufferAppendNameSpace(CErrorBuffer *eb, NameSpace *nspace); +extern void CError_BufferAppendPType(CErrorBuffer *eb, Type *ty); +extern void CError_BufferAppendTemplDepType(CErrorBuffer *eb, TypeTemplDep *type); +extern void CError_BufferAppendFuncArgs(CErrorBuffer *eb, TypeFunc *tfunc, Boolean isMethod); +extern void CError_BufferAppendType(CErrorBuffer *eb, Type *ty, UInt32 qual); +extern char *CError_GetTypeName(Type *ty, UInt32 qual, Boolean useGlobalHeap); +extern void CError_AppendUnqualFunctionName(CErrorBuffer *eb, NameSpace *nspace, HashNameNode *name, TypeFunc *tfunc); +extern void CError_AppendFunctionName(CErrorBuffer *eb, NameSpace *nspace, HashNameNode *name, TemplArg *templargs, TypeFunc *tfunc); +extern void CError_AppendObjectName(CErrorBuffer *eb, Object *obj); +extern void CError_AppendMethodName(CErrorBuffer *eb, ObjCMethod *meth); +extern char *CError_GetQualifiedName(NameSpace *nspace, HashNameNode *name); +extern char *CError_GetFunctionName(NameSpace *nspace, HashNameNode *name, TypeFunc *tfunc); +extern char *CError_GetObjectName(Object *obj); +extern char *CError_GetNameString(NameSpace *nspace, HashNameNode *operatorName); +extern void CError_ErrorMessage(int errTable, char *buf, Boolean flag1, Boolean flag2); +extern void CError_BufferAppendTemplateStack(CErrorBuffer *eb); +extern void CError_ErrorMessageVA(int code, const char *format, va_list list, Boolean flag1, Boolean flag2); +extern void CError_VAErrorMessage(int code, va_list list, Boolean flag1, Boolean flag2); +extern void CError_Error(int code, ...); +extern void CError_ErrorTerm(short code); +extern void CError_ErrorSkip(int code, ...); +extern void CError_ErrorFuncCall(short code, NameSpaceObjectList *args, ENodeList *argNodes); +extern void CError_OverloadedFunctionError2(Object *obj, ObjectList *olst, ENodeList *argNodes); +extern void CError_OverloadedFunctionError(Object *obj, ObjectList *olst); +extern void CError_AbstractClassError(TypeClass *tclass); +extern void CError_Warning(int code, ...); +extern void CError_BreakPoint(const char *a, const char *b); +extern void CError_Internal(); +extern void CError_ExpressionTooComplex(); +extern void CError_NoMem(); +extern void CError_UserBreak(); +extern void CError_CannotOpen(); +extern void CError_QualifierCheck(UInt32 qual); + +#endif |