Improve error reporting even more
diff --git a/src/lex.c b/src/lex.c
index c0bb825..4bb7da9 100644
--- a/src/lex.c
+++ b/src/lex.c
@@ -31,7 +31,7 @@
BcStatus bc_lex_invalidChar(BcLex *l, char c) {
l->t = BC_LEX_INVALID;
- return bc_vm_error(BC_ERROR_PARSE_CHAR, l->line, c);
+ return bc_lex_verr(l, BC_ERROR_PARSE_CHAR, c);
}
void bc_lex_lineComment(BcLex *l) {
@@ -54,7 +54,7 @@
if (c == 0 || buf[i + 1] == '\0') {
l->i = i;
- return bc_vm_error(BC_ERROR_PARSE_COMMENT, l->line);
+ return bc_lex_err(l, BC_ERROR_PARSE_COMMENT);
}
end = buf[i + 1] == '/';
@@ -101,7 +101,7 @@
len = i + 1 * !last_pt - bslashes * 2;
if (len > BC_MAX_NUM)
- return bc_vm_error(BC_ERROR_EXEC_NUM_LEN, l->line, BC_MAX_NUM);
+ return bc_lex_verr(l, BC_ERROR_EXEC_NUM_LEN, BC_MAX_NUM);
bc_vec_npop(&l->str, l->str.len);
bc_vec_expand(&l->str, len + 1);
@@ -139,7 +139,7 @@
while ((c >= 'a' && c <= 'z') || isdigit(c) || c == '_') c = buf[++i];
if (i > BC_MAX_NAME)
- return bc_vm_error(BC_ERROR_EXEC_NAME_LEN, l->line, BC_MAX_NAME);
+ return bc_lex_verr(l, BC_ERROR_EXEC_NAME_LEN, BC_MAX_NAME);
bc_vec_string(&l->str, i, buf);
@@ -175,7 +175,7 @@
l->last = l->t;
l->line += l->last == BC_LEX_NLINE;
- if (l->last == BC_LEX_EOF) return bc_vm_error(BC_ERROR_PARSE_EOF, l->line);
+ if (l->last == BC_LEX_EOF) return bc_lex_err(l, BC_ERROR_PARSE_EOF);
l->t = BC_LEX_EOF;