From fb908e56066547611b91f59caefb406606b72d5b Mon Sep 17 00:00:00 2001 From: Valk Richard Li <48872266+ValKmjolnir@users.noreply.github.com> Date: Thu, 17 Sep 2020 03:46:52 -0700 Subject: [PATCH] update --- version3.0/lib.nas | 9 ++++++- version3.0/nasal_builtin.h | 52 +++++++++++++++++++++++++++++++++++++- version3.0/nasal_gc.h | 5 ++++ version3.0/nasal_runtime.h | 10 ++++++-- 4 files changed, 72 insertions(+), 4 deletions(-) diff --git a/version3.0/lib.nas b/version3.0/lib.nas index 62af564..bcf9de4 100644 --- a/version3.0/lib.nas +++ b/version3.0/lib.nas @@ -27,7 +27,6 @@ var sleep=func(duration) nasal_call_builtin_sleep(duration); return; } - var split=func(delimeter,string) { return nasal_call_builtin_split(delimeter,string); @@ -52,6 +51,14 @@ var pop=func(vector) { return nasal_call_builtin_pop_back(vector); } +var str=func(number) +{ + return nasal_call_builtin_trans_str(number); +} +var size=func(object) +{ + return nasal_call_builtin_size(object); +} var io= { diff --git a/version3.0/nasal_builtin.h b/version3.0/nasal_builtin.h index b1eac64..8039a19 100644 --- a/version3.0/nasal_builtin.h +++ b/version3.0/nasal_builtin.h @@ -427,6 +427,56 @@ int nasal_runtime::builtin_pop(int local_scope_addr) return -1; } int ret_addr=nasal_vm.gc_get(value_addr).get_vector().del_elem(); - return -1; + return ret_addr; +} +int nasal_runtime::builtin_str(int local_scope_addr) +{ + int value_addr=-1; + if(local_scope_addr>=0) + value_addr=nasal_vm.gc_get(local_scope_addr).get_closure().get_value_address("number"); + if(value_addr<0 || nasal_vm.gc_get(value_addr).get_type()!=vm_number) + { + std::cout<<">> [runtime] builtin_str: cannot find values or wrong value type(must be number)."<=0) + value_addr=nasal_vm.gc_get(local_scope_addr).get_closure().get_value_address("object"); + if(value_addr<0) + { + std::cout<<">> [runtime] builtin_size: cannot find values."<> [vm] nasal_hash::del_elem: "<