From 85c4ce8946664e8935f7bc12c3347309e197bf6f Mon Sep 17 00:00:00 2001 From: Valk Richard Li <48872266+ValKmjolnir@users.noreply.github.com> Date: Wed, 27 Nov 2019 16:19:36 +0800 Subject: [PATCH] Add new functions & bugs fixed --- balloon/abstract_syntax_tree.cpp | 38 +++++++++++++++++++++++++++++++- balloon/lib/basics.nas | 17 ++++++++++++++ 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/balloon/abstract_syntax_tree.cpp b/balloon/abstract_syntax_tree.cpp index 53d3aa6..e75044d 100644 --- a/balloon/abstract_syntax_tree.cpp +++ b/balloon/abstract_syntax_tree.cpp @@ -672,7 +672,7 @@ var abstract_syntax_tree::assignment() } else if(type==__link_equal) { - if(addr->get_type()==__var_string && temp.get_type()==__string) + if(addr->get_type()==__var_string && temp.get_type()==__var_string) addr->set_string(addr->get_string()+temp.get_string()); else { @@ -1097,6 +1097,42 @@ var abstract_syntax_tree::run_func(std::list parameter,var self_func) // this must be added when running a function ret_stack.push(ret); } + else if(self_func.get_name()=="chars") + { + if(!parameter.empty()) + { + std::list::iterator i=parameter.begin(); + if(i->get_type()==__var_string) + { + std::string str=i->get_string(); + ret.set_type(__var_array); + std::string temp=""; + for(int j=0;j>[Runtime-error] line "<line<<": incorrect value type.must use a string."<>[Runtime-error] line "<line<<": lack parameter(s)."<