+ template<typename L, typename T0, typename T1>
+ void add(const std::string &k, T0 L::*p0, T1 L::*p1)
+ { add(k, new LoadValue2<L, T0, T1>(p0, p1)); }
+
+ /** Adds a keyword that is recognized but ignored. */
+ void add(const std::string &k)
+ { add(k, 0); }
+
+private:
+ void add(const std::string &, LoaderAction *);
+
+protected:
+ /** Returns the source of the statement being processed. This can be used
+ to implement relative paths in include-like statements. Note that the
+ source may not necessarily be a file. */
+ const std::string &get_source() const