diff options
author | Ash Wolf <ninji@wuffs.org> | 2022-10-25 20:30:28 +0100 |
---|---|---|
committer | Ash Wolf <ninji@wuffs.org> | 2022-10-25 20:30:28 +0100 |
commit | d0b9848c54e6f85ab713f059dcd1ddef7e57caa6 (patch) | |
tree | 5bdb9dbf6c853780bc444dc92bf6f9fa3a95742a /CError.c | |
parent | 685f22a6a0a5403c76316a2390c021a7b0f7597d (diff) | |
download | MWCC-d0b9848c54e6f85ab713f059dcd1ddef7e57caa6.tar.gz MWCC-d0b9848c54e6f85ab713f059dcd1ddef7e57caa6.zip |
a bunch of compiler stuff
Diffstat (limited to 'CError.c')
-rw-r--r-- | CError.c | 319 |
1 files changed, 0 insertions, 319 deletions
diff --git a/CError.c b/CError.c deleted file mode 100644 index 5179463..0000000 --- a/CError.c +++ /dev/null @@ -1,319 +0,0 @@ -#include "CError.h" -#include "CompilerTools.h" - -// TODO MOVE ME -extern char *CMangler_GetOperator(StringNode *str); -extern jmp_buf errorreturn; -extern unsigned char cprep_nomem_exit; -extern unsigned char anyerrors; -extern unsigned char fatalerrors; -extern char string[256]; -// TODO MOVE ME - -Token *cerror_locktoken; -static Token *cerror_token; -static short cerror_errorcount; -static int cerror_lasterrorline; -// cerror_synchdata -// cerror_synchoffset -int CError_BreakPointcount; - -void CError_Init() { - cerror_errorcount = 0; - cerror_lasterrorline = -1; - cerror_token = 0; - cerror_locktoken = 0; -} - -void CError_SetErrorToken(Token *token) { - if (token && token->x4) - cerror_token = token; -} - -void CError_SetNullErrorToken() { - cerror_token = (Token *) -1; -} - -void CError_LockErrorPos(Token *token, Token **saved) { - *saved = cerror_locktoken; - if (token && token->x4) - cerror_locktoken = token; -} - -void CError_UnlockErrorPos(Token **saved) { - cerror_locktoken = *saved; -} - -void CError_ResetErrorSkip() { - cerror_lasterrorline = -1; -} - -void CError_GetErrorString(char *buf, short code) { - // This feels dirty, surely this can't have been the solution... - int code_ = code; -#line 142 - CError_ASSERT(code_ >= 100 && code_ < 393); - COS_GetString(buf, 10000, (short) (code_ - 99)); -} - -void CError_BufferInit(CErrorBuffer *eb, char *buf, long bufSize) { - eb->start = eb->end = buf; - eb->size = eb->remaining = bufSize - 1; -} - -void CError_BufferGrow(CErrorBuffer *eb, long amount) { - char *newBuf; - - newBuf = lalloc(eb->size + amount); - memcpy(newBuf, eb->start, eb->size); - eb->start = newBuf; - eb->end = newBuf + eb->size - eb->remaining; - eb->size += amount; - eb->remaining += amount; -} - -void CError_BufferAppendChar(CErrorBuffer *eb, char ch) { - if (eb) { - if (!eb->remaining) - CError_BufferGrow(eb, 256); - *(eb->end++) = ch; - eb->remaining--; - } -} - -void CError_BufferAppendString(CErrorBuffer *eb, const char *str) { - size_t len; - - if (eb) { - len = strlen(str); - if (eb->remaining < len) - CError_BufferGrow(eb, len); - memcpy(eb->end, str, len); - eb->end += len; - eb->remaining -= len; - } -} - -void CError_BufferTerminate(CErrorBuffer *eb) { - if (eb->remaining == 0) - CError_BufferGrow(eb, 1); - *eb->end = 0; - eb->remaining = 0; -} - -void CError_BufferAppendQualifier(CErrorBuffer *eb, int quals) { - -} - -void CError_BufferAppendTemplArgExpr(CErrorBuffer *eb, void *targExpr) { - -} - -void CError_BufferAppendTemplArg(CErrorBuffer *eb, void *targ) { - -} - -void CError_BufferAppendTemplArgs(CErrorBuffer *eb, void *targs) { - -} - -void CError_BufferAppendNameSpace(CErrorBuffer *eb, void *ns) { - -} - -void CError_BufferAppendPType(CErrorBuffer *eb, void *ty) { - -} - -void CError_BufferAppendTemplDepType(CErrorBuffer *eb, void *ty) { - -} - -void CError_BufferAppendFuncArgs(CErrorBuffer *eb, void *args, unsigned char flag) { - -} - -void CError_BufferAppendType(CErrorBuffer *eb, void *ty, int quals) { - -} - -char *CError_GetTypeName(void *ty, int quals, unsigned char useGlobalHeap) { - CErrorBuffer eb; - char buf[256]; - char *ptr; - - CError_BufferInit(&eb, buf, sizeof(buf)); - CError_BufferAppendType(&eb, ty, quals); - CError_BufferTerminate(&eb); - - if (useGlobalHeap) - ptr = galloc(eb.size + 1); - else - ptr = lalloc(eb.size + 1); - - return strcpy(ptr, eb.start); -} - -void CError_AppendUnqualFunctionName(CErrorBuffer *eb, void *unk1, void *unk2, void *unk3) { - -} - -void CError_AppendFunctionName(CErrorBuffer *eb, void *unk1, void *unk2, void *unk3, void *unk4) { - -} - -void CError_AppendObjectName(CErrorBuffer *eb, void *obj) { - -} - -void CError_AppendMethodName(CErrorBuffer *eb, void *obj) { - -} - -char *CError_GetQualifiedName(void *ns, StringNode *name) { - CErrorBuffer eb; - char buf[256]; - char *ptr; - - CError_BufferInit(&eb, buf, sizeof(buf)); - CError_BufferAppendNameSpace(&eb, ns); - CError_BufferAppendString(&eb, name->data); - CError_BufferTerminate(&eb); - - ptr = lalloc(eb.size + 1); - return strcpy(ptr, eb.start); -} - -char *CError_GetFunctionName(void *a, void *b, void *c) { - CErrorBuffer eb; - char buf[256]; - char *ptr; - - CError_BufferInit(&eb, buf, sizeof(buf)); - CError_AppendFunctionName(&eb, a, b, 0, c); - CError_BufferTerminate(&eb); - - ptr = lalloc(eb.size + 1); - return strcpy(ptr, eb.start); -} - -char *CError_GetObjectName(void *obj) { - CErrorBuffer eb; - char buf[256]; - char *ptr; - - CError_BufferInit(&eb, buf, sizeof(buf)); - CError_AppendObjectName(&eb, obj); - CError_BufferTerminate(&eb); - - ptr = lalloc(eb.size + 1); - return strcpy(ptr, eb.start); -} - -char *CError_GetNameString(void *obj, StringNode *operatorName) { - CErrorBuffer eb; - char buf[256]; - char *ptr; - char *opStr; - - CError_ASSERT(operatorName); - - // TODO lolol - CError_BufferInit(&eb, buf, sizeof(buf)); - CError_AppendObjectName(&eb, obj); - CError_BufferTerminate(&eb); - - ptr = lalloc(eb.size + 1); - return strcpy(ptr, eb.start); -} - -void CError_ErrorMessage(int errTable, char *buf, unsigned char flag1, unsigned char flag2) { - -} - -void CError_BufferAppendTemplateStack(CErrorBuffer *eb) { - -} - -void CError_ErrorMessageVA(short code, char *buf, va_list list, unsigned char flag1, unsigned char flag2) { - -} - -void CError_VAErrorMessage(short code, va_list list, unsigned char flag1, unsigned char flag2) { - char buf[256]; - - CError_GetErrorString(buf, code); - CError_ErrorMessageVA(code + 10000, buf, list, flag1, flag2); -} - -void CError_Error(short code, ...) { - -} - -void CError_ErrorTerm(short code) { - CError_GetErrorString(string, code); - CError_ErrorMessage(code + 10000, string, 0, 0); - longjmp(errorreturn, 1); -} - -void CError_ErrorSkip(short code, ...) { - // TODO trychain, tk -} - -void CError_ErrorFuncCall(short code, void *aa, void *bb) { - -} - -void CError_OverloadedFunctionError2(void *aa, void *bb, void *cc) { - -} - -void CError_OverloadedFunctionError(void *aa, void *bb) { - -} - -void CError_AbstractClassError() { - // TODO CClass -} - -void CError_Warning(short code, ...) { - // TODO lol -} - -void CError_BreakPoint(const char *a, const char *b) { - if (!a || !strcmp(a, b)) - CError_BreakPointcount++; -} - -void CError_Internal(char *filename, int line) { - char tmp[128]; - CompilerGetCString(5, tmp); - sprintf(string, tmp, filename, line); - CError_ErrorMessage(10001, string, 1, 0); - longjmp(errorreturn, 1); - CError_BreakPoint(0, 0); -} - -void CError_ExpressionTooComplex() { - CompilerGetCString(6, string); - CError_ErrorMessage(10002, string, 1, 0); - longjmp(errorreturn, 1); -} - -void CError_NoMem() { - cprep_nomem_exit = 1; - longjmp(errorreturn, 1); -} - -void CError_UserBreak() { - CompilerGetCString(8, string); - longjmp(errorreturn, 1); -} - -void CError_CannotOpen() { - // TODO -} - -void CError_QualifierCheck(int quals) { - -} |