#include <map>
#include <msp/io/file.h>
-#include "except.h"
#include "loaderaction.h"
#include "parser.h"
#include "statement.h"
ActionMap actions;
const Statement *cur_st;
bool sub_loaded;
+ std::list<Loader *> aux_loaders;
protected:
bool check_sub_loads;
private:
void add(const std::string &, LoaderAction *);
+protected:
+ void add_auxiliary_loader(Loader &);
+
+private:
+ bool has_action(const ActionKey &) const;
LoaderAction *find_action(const ActionKey &) const;
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
- {
- if(!cur_st)
- throw InvalidState("get_source called without current statement");
- return cur_st->source;
- }
+ const std::string &get_source() const;
virtual void finish() { }
};