diff options
Diffstat (limited to 'core/variant_parser.h')
-rw-r--r-- | core/variant_parser.h | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/core/variant_parser.h b/core/variant_parser.h index d4ec6c6cf5..e1d25f7512 100644 --- a/core/variant_parser.h +++ b/core/variant_parser.h @@ -38,6 +38,8 @@ public: void *userdata; ParseResourceFunc func; + ParseResourceFunc ext_func; + ParseResourceFunc sub_func; }; @@ -82,15 +84,16 @@ public: private: static const char * tk_name[TK_MAX]; - static Error _parse_construct(Stream *p_stream, Vector<float>& r_construct, int &line, String &r_err_str); + template<class T> + static Error _parse_construct(Stream *p_stream, Vector<T>& r_construct, int &line, String &r_err_str); static Error _parse_dictionary(Dictionary &object, Stream *p_stream, int &line, String &r_err_str,ResourceParser *p_res_parser=NULL); static Error _parse_array(Array &array, Stream *p_stream, int &line, String &r_err_str,ResourceParser *p_res_parser=NULL); - static Error _parse_tag(Token& token,Stream *p_stream, int &line, String &r_err_str,Tag& r_tag); + static Error _parse_tag(Token& token,Stream *p_stream, int &line, String &r_err_str,Tag& r_tag,ResourceParser *p_res_parser=NULL); public: - static Error parse_tag(Stream *p_stream, int &line, String &r_err_str,Tag& r_tag); - static Error parse_tag_assign_eof(Stream *p_stream, int &line, String &r_err_str,Tag& r_tag,String &r_assign); + static Error parse_tag(Stream *p_stream, int &line, String &r_err_str,Tag& r_tag,ResourceParser *p_res_parser=NULL); + static Error parse_tag_assign_eof(Stream *p_stream, int &line, String &r_err_str, Tag& r_tag, String &r_assign, Variant &r_value,ResourceParser *p_res_parser=NULL); static Error parse_value(Token& token,Variant &value, Stream *p_stream, int &line, String &r_err_str,ResourceParser *p_res_parser=NULL); static Error get_token(Stream *p_stream,Token& r_token,int &line,String &r_err_str); |