diff --git a/version3.0/nasal_parse.h b/version3.0/nasal_parse.h index ce115be..f9e2189 100644 --- a/version3.0/nasal_parse.h +++ b/version3.0/nasal_parse.h @@ -827,7 +827,10 @@ nasal_ast nasal_parse::scalar() else if(tok_list[ptr].type==tok_string) node=string_gen(); else if(tok_list[ptr].type==tok_identifier) - node=id_gen(); + { + node.set_type(ast_call); + node.add_child(id_gen()); + } else if(tok_list[ptr].type==tok_func) { if(ptr+1> [runtime] main_progress: cannot use break in main progress."<> [runtime] main_progress: cannot use continue in main progress."<> [runtime] main_progress: cannot use return in main progress."<> [runtime] main_progress: error occurred when executing main progress."<> [runtime] main_progress: cannot use break in main progress."<> [runtime] main_progress: cannot use continue in main progress."<> [runtime] main_progress: cannot use return in main progress."<> [runtime] main_progress: error occurred when executing main progress."<> [runtime] before_for_loop: cannot use this expression before for-loop."<> [runtime] after_each_for_loop: cannot use this expression after each for-loop."<> [runtime] after_each_for_loop: cannot use this expression after each for-loop."<=0) - ret_address=nasal_vm.gc_get(local_scope_addr).get_closure().get_value_address(node.get_str()); - if(ret_address<0) - ret_address=nasal_vm.gc_get(global_scope_address).get_closure().get_value_address(node.get_str()); - if(ret_address<0) - { - std::cout<<">> [runtime] calculation: cannot find value named \'"<> [runtime] definition: one identifier cannot accept too many values."< identifier_table; + int id_size=define_node.get_children().size(); + for(int i=0;i> [runtime] definition: size of identifiers and size of values do not match."<> [runtime] definition: must use vector in multi-definition."<> [runtime] definition: size of identifiers and size of values do not match."< mem_table; + int id_size=multi_call_node.get_children().size(); + for(int i=0;i> [runtime] multi_assignment: multi-assignment must use available memory address."<> [runtime] multi_assignment: size of calls and size of values do not match."<> [runtime] multi_assignment: must use vector in multi-assignment."<> [runtime] multi_assignment: size of calls and size of values do not match."<