aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2025-02-04 14:15:18 -0500
committerBruce Hill <bruce@bruce-hill.com>2025-02-04 14:15:18 -0500
commite06d7180d464e570274714dd051278b4cb79f8f9 (patch)
treec31c1c8cb66b2a9c75c4366367a71cd8e0c2bcbf
parent50edc4097a648dd2864ed665343d8de606a8f4a2 (diff)
Add in source line information
-rw-r--r--compile.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/compile.c b/compile.c
index 63f5f2bc..e24a6bd8 100644
--- a/compile.c
+++ b/compile.c
@@ -484,7 +484,7 @@ static CORD compile_condition(env_t *env, ast_t *ast)
}
}
-CORD compile_statement(env_t *env, ast_t *ast)
+static CORD _compile_statement(env_t *env, ast_t *ast)
{
switch (ast->tag) {
case When: {
@@ -1628,13 +1628,13 @@ CORD compile_statement(env_t *env, ast_t *ast)
}
}
-// CORD compile_statement(env_t *env, ast_t *ast) {
-// CORD stmt = _compile_statement(env, ast);
-// if (!stmt)
-// return stmt;
-// int64_t line = get_line_number(ast->file, ast->start);
-// return CORD_asprintf("#line %ld\n%r", line, stmt);
-// }
+CORD compile_statement(env_t *env, ast_t *ast) {
+ CORD stmt = _compile_statement(env, ast);
+ if (!stmt || !ast->file)
+ return stmt;
+ int64_t line = get_line_number(ast->file, ast->start);
+ return CORD_asprintf("#line %ld\n%r", line, stmt);
+}
CORD expr_as_text(env_t *env, CORD expr, type_t *t, CORD color)
{
@@ -4101,7 +4101,7 @@ CORD compile_file(env_t *env, ast_t *ast)
const char *name = file_base_name(ast->file->filename);
return CORD_all(
- // "#line 1 ", CORD_quoted(ast->file->filename), "\n",
+ "#line 1 ", CORD_quoted(ast->file->filename), "\n",
"#define __SOURCE_FILE__ ", CORD_quoted(ast->file->filename), "\n",
"#include <tomo/tomo.h>\n"
"#include \"", name, ".tm.h\"\n\n",