#include "lexer.h" #include "../../kerep/src/String/string.h" typedef struct SharedLexerData{ char* _source; char* _filename; Autoarr(Token)* _tokens; string _context; string _line; string _label; uint32 _linenum; uint32 _charnum; } SharedLexerData; #define source sld->_source #define filename sld->_filename #define tokens sld->_tokens #define context sld->_context #define line sld->_line #define label sld->_label #define linenum sld->_linenum #define charnum sld->_charnum Maybe _throw_wrongchar(SharedLexerData* sld){ char* errline=string_extract(line); char* _context=string_extract(context); printf("\n\e[91mwrong char <%c> at [%s:%u:%u %s]\n >>> %s\n", source[charnum], filename,linenum,charnum,_context, errline); exit(96); } #define throw_wrongchar(freeMem) { freeMem; return _throw_wrongchar(sld); } // adds