projects
/
fur
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add very rudimentary line numbers to exceptions
[fur]
/
templates
/
program.c
diff --git
a/templates/program.c
b/templates/program.c
index
18d8616
..
08921b1
100644
(file)
--- a/
templates/program.c
+++ b/
templates/program.c
@@
-545,7
+545,7
@@
Object operator$negate(Object input)
}
// TODO Make this conditionally added
}
// TODO Make this conditionally added
-Object operator$concatenate(Stack* stack, jmp_buf parent_jump)
+Object operator$concatenate(Stack* stack, jmp_buf parent_jump
, size_t line
)
{
Object right = Stack_pop(stack);
Object left = Stack_pop(stack);
{
Object right = Stack_pop(stack);
Object left = Stack_pop(stack);
@@
-578,7
+578,7
@@
Object operator$concatenate(Stack* stack, jmp_buf parent_jump)
}
{% for id in infix_declarations %}
}
{% for id in infix_declarations %}
-Object operator${{ id.name }}(Stack* stack, jmp_buf parent_jump)
+Object operator${{ id.name }}(Stack* stack, jmp_buf parent_jump
, size_t line
)
{
Object right = Stack_pop(stack);
Object left = Stack_pop(stack);
{
Object right = Stack_pop(stack);
Object left = Stack_pop(stack);
@@
-589,7
+589,7
@@
Object operator${{ id.name }}(Stack* stack, jmp_buf parent_jump)
{% if id.name == 'integerDivide' or id.name == 'modularDivide' %}
if(right.instance.integer == 0)
{
{% if id.name == 'integerDivide' or id.name == 'modularDivide' %}
if(right.instance.integer == 0)
{
- fprintf(stderr, "DivisionByZeroError
\n"
);
+ fprintf(stderr, "DivisionByZeroError
on line %zu\n", line
);
longjmp(parent_jump, 1);
}
{% endif %}
longjmp(parent_jump, 1);
}
{% endif %}