#ifndef __NASAL_BUILTIN_H__ #define __NASAL_BUILTIN_H__ 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("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=0) str_value_addr=nasal_vm.gc_get(local_scope_addr).get_closure().get_value_address("str"); if(str_value_addr<0 || nasal_vm.gc_get(str_value_addr).get_type()!=vm_string) { std::cout<<">> [runtime] builtin_system: cannot find values or wrong value type(must be string)."<>str; nasal_vm.gc_get(ret_addr).set_string(str); return ret_addr; } int nasal_runtime::builtin_sleep(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("duration"); if(value_addr<0 || (nasal_vm.gc_get(value_addr).get_type()!=vm_string && nasal_vm.gc_get(value_addr).get_type()!=vm_number)) { std::cout<<">> [runtime] builtin_sleep: cannot find values or wrong value type(must be string or numebr)."<> [runtime] builtin_sleep: this is not a numerable string."<