… | |
… | |
203 | // skip the current key-value (usually fetch next line, for |
203 | // skip the current key-value (usually fetch next line, for |
204 | // multiline-fields, skips till the corresponding end-kw |
204 | // multiline-fields, skips till the corresponding end-kw |
205 | MTH void skip (); |
205 | MTH void skip (); |
206 | MTH void skip_block (); // skips till and over KW_end |
206 | MTH void skip_block (); // skips till and over KW_end |
207 | |
207 | |
|
|
208 | // returns true IFF a value was specified and it is not the empty string |
|
|
209 | // formerly, this just etsetd for a value, but the editor is too dumb |
|
|
210 | // and creates lots of empty values. |
208 | bool has_value () const { return value; } |
211 | bool has_value () const { return *value_nn; } |
209 | const_utf8_string get_str () const { return value_nn; } // empty string when missing |
212 | const_utf8_string get_str () const { return value_nn; } // empty string when missing |
210 | void get_ml (keyword kend, shstr &sh); |
213 | void get_ml (keyword kend, shstr &sh); |
211 | |
214 | |
212 | void get_ornull (shstr &sh) const { sh = value; } |
215 | void get_ornull (shstr &sh) const { sh = value; } |
213 | void get (shstr &sh) const { sh = value; } // might want to check for non-null here |
216 | void get (shstr &sh) const { sh = value; } // might want to check for non-null here |
… | |
… | |
229 | |
232 | |
230 | void get (uint32 &i) const { i = get_sint64 (); } |
233 | void get (uint32 &i) const { i = get_sint64 (); } |
231 | void get (sint64 &i) const { i = get_sint64 (); } |
234 | void get (sint64 &i) const { i = get_sint64 (); } |
232 | |
235 | |
233 | void get (region_ptr &r) const; |
236 | void get (region_ptr &r) const; |
234 | void get (materialtype_t *&m) const; |
237 | void get (materialtype_t *&mt) const; |
235 | |
238 | |
236 | MTH void parse_warn (const_utf8_string msg) const; |
239 | MTH void parse_warn (const_utf8_string msg) const; |
237 | MTH bool parse_error (const_utf8_string type = 0, const_utf8_string name = 0, bool skip = true) const; |
240 | MTH bool parse_error (const_utf8_string type = 0, const_utf8_string name = 0, bool skip = true) const; |
238 | |
241 | |
239 | struct delayed_ref { |
242 | struct delayed_ref { |
… | |
… | |
244 | std::vector<delayed_ref> delrefs; |
247 | std::vector<delayed_ref> delrefs; |
245 | |
248 | |
246 | void delayed_deref (attachable *op, object_ptr &ptr, const_utf8_string ref); |
249 | void delayed_deref (attachable *op, object_ptr &ptr, const_utf8_string ref); |
247 | MTH void resolve_delayed_derefs (bool deref = true); |
250 | MTH void resolve_delayed_derefs (bool deref = true); |
248 | private: |
251 | private: |
|
|
252 | void init (const_utf8_string path); |
249 | void new_from_path (const_utf8_string path); |
253 | void init_from_file (const_utf8_string path); |
250 | }; |
254 | }; |
251 | |
255 | |
252 | #endif |
256 | #endif |
253 | |
257 | |