diff --git a/version3.0/nasal_runtime.h b/version3.0/nasal_runtime.h index 0002a2c..5d469ec 100644 --- a/version3.0/nasal_runtime.h +++ b/version3.0/nasal_runtime.h @@ -200,6 +200,8 @@ int nasal_runtime::main_progress() break; case ast_number:break; case ast_string:break; + case ast_identifier:break; + case ast_call: case ast_add_equal: case ast_sub_equal: case ast_mult_equal: @@ -239,7 +241,10 @@ int nasal_runtime::main_progress() break; } if(error) + { + ret_state=rt_error; break; + } } return ret_state; } @@ -274,6 +279,8 @@ int nasal_runtime::block_progress(nasal_ast& node,int local_scope_addr) break; case ast_number:break; case ast_string:break; + case ast_identifier:break; + case ast_call: case ast_add_equal: case ast_sub_equal: case ast_mult_equal: @@ -362,7 +369,27 @@ int nasal_runtime::call_vector(nasal_ast& node,int base_value_addr,int local_sco std::cout<<">> [runtime] call_vector:incorrect value type,expected a vector/hash."< called_value_addrs; + int call_size=node.get_children().size(); + nasal_vector& reference_value=nasal_vm.gc_get(base_value_addr).get_vector(); + for(int i=0;i> [runtime] call_hash:incorrect value type,expected a hash."<> [runtime] call_vector_mem:incorrect value type,expected a vector/hash."< called_mem_addrs; + int call_size=node.get_children().size(); + nasal_vector& reference_value=nasal_vm.gc_get(base_value_addr).get_vector(); + for(int i=0;i> [runtime] call_hash_mem:incorrect value type,expected a hash."<