From 5e18b2dcfc061cbe2f27ab529c7bbef0ff4b5032 Mon Sep 17 00:00:00 2001 From: Valk Richard Li <48872266+ValKmjolnir@users.noreply.github.com> Date: Sat, 12 Sep 2020 00:02:53 -0700 Subject: [PATCH] update --- version3.0/nasal_builtin.h | 99 +++++++++++++++++++++++++++++++++++++- version3.0/nasal_gc.h | 10 +++- version3.0/nasal_runtime.h | 51 +++++++------------- 3 files changed, 124 insertions(+), 36 deletions(-) diff --git a/version3.0/nasal_builtin.h b/version3.0/nasal_builtin.h index e5e1030..a5d1bcf 100644 --- a/version3.0/nasal_builtin.h +++ b/version3.0/nasal_builtin.h @@ -5,7 +5,7 @@ int nasal_runtime::builtin_print(int local_scope_addr) { int vector_value_addr=-1; if(local_scope_addr>=0) - vector_value_addr=nasal_vm.gc_get(local_scope_addr).get_closure().get_value_address("dyn"); + vector_value_addr=nasal_vm.gc_get(local_scope_addr).get_closure().get_value_address("elements"); if(vector_value_addr<0 || nasal_vm.gc_get(vector_value_addr).get_type()!=vm_vector) { std::cout<<">> [runtime] builtin_print: cannot find values or wrong value type."<=0) + vector_value_addr=nasal_vm.gc_get(local_scope_addr).get_closure().get_value_address("vector"); + if(vector_value_addr<0 || nasal_vm.gc_get(vector_value_addr).get_type()!=vm_vector) + { + std::cout<<">> [runtime] builtin_append: cannot find values or wrong value type."<=0) + elem_value_addr=nasal_vm.gc_get(local_scope_addr).get_closure().get_value_address("elements"); + if(elem_value_addr<0 || nasal_vm.gc_get(elem_value_addr).get_type()!=vm_vector) + { + std::cout<<">> [runtime] builtin_append: cannot find values or wrong value type."<=0) + vector_value_addr=nasal_vm.gc_get(local_scope_addr).get_closure().get_value_address("vector"); + if(vector_value_addr<0 || nasal_vm.gc_get(vector_value_addr).get_type()!=vm_vector) + { + std::cout<<">> [runtime] builtin_setsize: cannot find values or wrong value type."<=0) + size_value_addr=nasal_vm.gc_get(local_scope_addr).get_closure().get_value_address("size"); + if(size_value_addr<0) + { + std::cout<<">> [runtime] builtin_setsize: cannot find values or wrong value type."<> [runtime] builtin_setsize: size is not a number."<> [runtime] builtin_setsize: size is not a numerable string."<> [runtime] builtin_setsize: size must be greater than -1."<vec_size) + for(int i=vec_size;i> [vm] nasal_hash::add_elem: "<