summaryrefslogtreecommitdiff
path: root/core/variant_parser.h
diff options
context:
space:
mode:
Diffstat (limited to 'core/variant_parser.h')
-rw-r--r--core/variant_parser.h11
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);