diff options
Diffstat (limited to 'masm/gen/log.c')
| -rw-r--r-- | masm/gen/log.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/masm/gen/log.c b/masm/gen/log.c new file mode 100644 index 0000000..2df455b --- /dev/null +++ b/masm/gen/log.c @@ -0,0 +1,28 @@ +#include "../gen.h" + +void gen_output_expr(struct generator *gen, struct expr *expr) +{ + int line = expr->line_no, + len = expr->byte_end - expr->byte_start, + nl = true, + c = EOF; + FILE *file = gen->parser.lexer.file; + + fseek(file, expr->byte_start, SEEK_SET); + + while (len--) { + c = getc(file); + if (c == EOF || c == '\0') + break; + if (nl) { + fprintf(stderr, "\t%d | ", line); + line++; + nl = false; + } + if (c == '\n') + nl = true; + putc(c, stderr); + } + +} + |