aboutsummaryrefslogtreecommitdiff
path: root/stm/main.c
diff options
context:
space:
mode:
authorDamien George2014-01-18 23:24:36 +0000
committerDamien George2014-01-18 23:24:36 +0000
commit08335004cfe95048ee06134a3e49b9fb75639139 (patch)
tree7518a854012938fd70c57b3571a630a142b84f28 /stm/main.c
parentaefe79880f8c5f66132673ccc9be27d2ca29005b (diff)
Add source file name and line number to error messages.
Byte code has a map from byte-code offset to source-code line number, used to give better error messages.
Diffstat (limited to 'stm/main.c')
-rw-r--r--stm/main.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/stm/main.c b/stm/main.c
index 4b6aaf76f..c49fa42ff 100644
--- a/stm/main.c
+++ b/stm/main.c
@@ -421,6 +421,7 @@ void do_repl(void) {
qstr parse_exc_id;
const char *parse_exc_msg;
mp_parse_node_t pn = mp_parse(lex, MP_PARSE_SINGLE_INPUT, &parse_exc_id, &parse_exc_msg);
+ qstr source_name = mp_lexer_source_name(lex);
if (pn == MP_PARSE_NODE_NULL) {
// parse error
@@ -430,7 +431,7 @@ void do_repl(void) {
} else {
// parse okay
mp_lexer_free(lex);
- mp_obj_t module_fun = mp_compile(pn, true);
+ mp_obj_t module_fun = mp_compile(pn, source_name, true);
if (module_fun != mp_const_none) {
nlr_buf_t nlr;
uint32_t start = sys_tick_counter;
@@ -465,6 +466,7 @@ bool do_file(const char *filename) {
qstr parse_exc_id;
const char *parse_exc_msg;
mp_parse_node_t pn = mp_parse(lex, MP_PARSE_FILE_INPUT, &parse_exc_id, &parse_exc_msg);
+ qstr source_name = mp_lexer_source_name(lex);
if (pn == MP_PARSE_NODE_NULL) {
// parse error
@@ -476,7 +478,7 @@ bool do_file(const char *filename) {
mp_lexer_free(lex);
- mp_obj_t module_fun = mp_compile(pn, false);
+ mp_obj_t module_fun = mp_compile(pn, source_name, false);
if (module_fun == mp_const_none) {
return false;
}
@@ -1095,7 +1097,7 @@ soft_reset:
printf("pars;al=%u\n", m_get_total_bytes_allocated());
sys_tick_delay_ms(1000);
//parse_node_show(pn, 0);
- mp_obj_t module_fun = mp_compile(pn, false);
+ mp_obj_t module_fun = mp_compile(pn, 0, false);
printf("comp;al=%u\n", m_get_total_bytes_allocated());
sys_tick_delay_ms(1000);