|
|
|
|
@ -55,7 +55,7 @@ static char *push(char *s, char c) { char *o = dictnext; while((*dictnext++ = *s
|
|
|
|
|
#define findlabel(x) finditem(x, labels, label_len) |
|
|
|
|
#define findmacro(x) finditem(x, macros, macro_len) |
|
|
|
|
#define error_top(name, msg) !fprintf(stderr, "%s: %s\n", name, msg) |
|
|
|
|
#define error_asm(name) !fprintf(stderr, "%s: %s in @%s, %s:%d.\n", name, token, scope, source, ln) |
|
|
|
|
#define error_asm(name) !fprintf(stderr, "%s: %s in @%s, %s:%d.\n", name, token, scope, source, *ln) |
|
|
|
|
|
|
|
|
|
/* clang-format on */ |
|
|
|
|
|
|
|
|
|
@ -105,7 +105,7 @@ walkcomment(FILE *f, int *ln)
|
|
|
|
|
char c; |
|
|
|
|
int depth = 1; |
|
|
|
|
while(f && fread(&c, 1, 1, f)) { |
|
|
|
|
if(c == 0xa) ln++; |
|
|
|
|
if(c == 0xa) *ln++; |
|
|
|
|
if(c == '(') depth++; |
|
|
|
|
if(c == ')' && --depth < 1) return 1; |
|
|
|
|
} |
|
|
|
|
@ -160,9 +160,9 @@ makemacro(char *name, FILE *f, int *ln)
|
|
|
|
|
m->name = push(name, 0); |
|
|
|
|
m->content = dictnext; |
|
|
|
|
while(f && fread(&c, 1, 1, f) && c != '{') |
|
|
|
|
if(c == 0xa) ln++; |
|
|
|
|
if(c == 0xa) *ln++; |
|
|
|
|
while(f && fread(&c, 1, 1, f) && c != '}') { |
|
|
|
|
if(c == 0xa) ln++; |
|
|
|
|
if(c == 0xa) *ln++; |
|
|
|
|
if(c == '%') return 0; |
|
|
|
|
if(c == '(') walkcomment(f, ln); |
|
|
|
|
*dictnext++ = c; |
|
|
|
|
|