From 884b56ac09dba2673c7ae9112f27fb647ed2cdaa Mon Sep 17 00:00:00 2001 From: ValKmjolnir Date: Wed, 21 Jul 2021 00:20:25 +0800 Subject: [PATCH] bug fixed & raw string print --- nasal.h | 21 +++++++++++++++++++++ nasal_ast.h | 5 ++++- nasal_codegen.h | 12 ++++++++++-- nasal_vm.h | 17 ++++++++--------- 4 files changed, 43 insertions(+), 12 deletions(-) diff --git a/nasal.h b/nasal.h index 1ce953c..f089d18 100644 --- a/nasal.h +++ b/nasal.h @@ -116,6 +116,27 @@ std::string num2str(double number) ss<=gc.val_stack;++i) { - printf("\t0x%.p ",stack_top[-i]); if(!stack_top[-i]) - printf(" nullptr\n"); + printf("\t%p nullptr\n",stack_top[-i]); else switch(stack_top[-i]->type) { - case vm_nil: printf("nil\n");break; - case vm_num: printf("num %lf\n",stack_top[-i]->ptr.num); break; - case vm_str: printf("str at %p\n",stack_top[-i]->ptr.str); break; - case vm_func: printf("func at %p\n",stack_top[-i]->ptr.func);break; - case vm_vec: printf("vec at %p\n",stack_top[-i]->ptr.vec); break; - case vm_hash: printf("hash at %p\n",stack_top[-i]->ptr.hash);break; - default: printf("unknown\n");break; + case vm_nil: printf("\t%p nil\n",stack_top[-i]);break; + case vm_num: printf("\t%p num :%lf\n",stack_top[-i],stack_top[-i]->ptr.num);break; + case vm_str: printf("\t%p str :",stack_top[-i]->ptr.str);raw_string(*stack_top[-i]->ptr.str);putchar('\n');break; + case vm_func: printf("\t%p func\n",stack_top[-i]->ptr.func);break; + case vm_vec: printf("\t%p vec \n",stack_top[-i]->ptr.vec); break; + case vm_hash: printf("\t%p hash\n",stack_top[-i]->ptr.hash);break; + default: printf("\t%p unknown\n",stack_top[-i]);break; } } gc.val_stack[STACK_MAX_DEPTH-1]=(nasal_val*)0xffff;