summaryrefslogtreecommitdiff
path: root/masm/gen/log.c
blob: 2df455b3f22e304a6cd68a1359c31fc31e3e9849 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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);
	}

}