]> git.tdb.fi Git - libs/datafile.git/blobdiff - source/loader.h
Support ignoring statements
[libs/datafile.git] / source / loader.h
index 2fe0292bff01d5a6cdbab98e387daf0bbfab309e..6e9c4f8012e42c952a36bc21f392a7559ef22e47 100644 (file)
@@ -172,6 +172,9 @@ protected:
        void add(const std::string &k, T L::*p)
        { actions.insert(typename ActionMap::value_type(k, new LoadValue<L, T>(p))); }
 
+       void add(const std::string &k)
+       { actions.insert(ActionMap::value_type(k, 0)); }
+
        template<typename S>
        void load_sub(S &s)
        { load_sub<S, typename S::Loader>(s); }
@@ -196,7 +199,8 @@ private:
                ActionMap::iterator j=actions.find(st.keyword);
                if(j==actions.end())
                        throw Exception(st.get_location()+": Unknown keyword '"+st.keyword+"'");
-               j->second->execute(*this, st);
+               if(j->second)
+                       j->second->execute(*this, st);
                cur_st=0;
        }
 };