diff options
author | Aryadev Chavali <aryadev@aryadevchavali.com> | 2023-11-02 23:29:43 +0000 |
---|---|---|
committer | Aryadev Chavali <aryadev@aryadevchavali.com> | 2023-11-02 23:29:43 +0000 |
commit | 6dfc4ceaeb4090edc199ec894aab4cf6233ce130 (patch) | |
tree | 607b8fa0adc12b7b82ff8a3791060ca0a53a7088 | |
parent | 6c4469958e9373773eb7c43d98ff5e20b062c153 (diff) | |
download | ovm-6dfc4ceaeb4090edc199ec894aab4cf6233ce130.tar.gz ovm-6dfc4ceaeb4090edc199ec894aab4cf6233ce130.tar.bz2 ovm-6dfc4ceaeb4090edc199ec894aab4cf6233ce130.zip |
Better logs for assembler
-rw-r--r-- | asm/main.c | 3 | ||||
-rw-r--r-- | asm/parser.c | 28 |
2 files changed, 31 insertions, 0 deletions
@@ -85,6 +85,9 @@ int main(int argc, char *argv[]) free(buffer.data); buffer.data = NULL; +#if VERBOSE >= 2 + printf("\t[%sPARSER%s]: Beginning parse...\n", TERM_YELLOW, TERM_RESET); +#endif size_t number = 0; inst_t *instructions = NULL; perr_t parse_error = parse_stream(&tokens, &instructions, &number); diff --git a/asm/parser.c b/asm/parser.c index cf2e53e..4843429 100644 --- a/asm/parser.c +++ b/asm/parser.c @@ -458,6 +458,34 @@ struct LabelPair perr_t process_presults(presult_t *results, size_t res_count, inst_t **instructions, size_t *inst_count) { +#if VERBOSE >= 2 + printf("[%sprocess_presults%s]: Results found\n", TERM_YELLOW, TERM_RESET); + for (size_t i = 0; i < res_count; ++i) + { + presult_t pres = results[i]; + switch (pres.type) + { + case PRES_LABEL: + printf("\tLABEL: label=%s\n", pres.label); + break; + case PRES_LABEL_ADDRESS: + printf("\tLABEL_CALL: label=%s, inst=", pres.label); + inst_print(pres.instruction, stdout); + printf("\n"); + break; + case PRES_RELATIVE_ADDRESS: + printf("\tRELATIVE_CALL: addr=%lu, inst=", pres.relative_address); + inst_print(pres.instruction, stdout); + printf("\n"); + break; + case PRES_COMPLETE_RESULT: + printf("\tCOMPLETE: inst="); + inst_print(pres.instruction, stdout); + printf("\n"); + break; + } + } +#endif darr_t label_pairs = {0}; darr_init(&label_pairs, sizeof(struct LabelPair)); *inst_count = 0; |