#define LOADER_INTERPRETER_H_
#include "fwd.h"
+#include "PagedAllocator.h"
#include "ParsedSource.h"
#include "TypeDescription.h"
#include "../battle/fwd.h"
};
public:
- explicit Interpreter(const ParsedSource &source) : source(source) { }
+ explicit Interpreter(const ParsedSource &source) : source(source), alloc(4096) { }
~Interpreter();
private:
Interpreter(const Interpreter &);
};
const std::set<std::string> &ExportedIdentifiers() const { return source.Exports(); }
- const ParsedDefinition &GetDefinition(const std::string &identifier) const;
+ const ParsedDefinition &GetDefinition(const std::string &identifier);
const std::map<std::string, SDL_Surface *> &Images() const { return imageCache; }
const std::vector<PostponedDefinition> &PostponedDefinitions() const { return postponedDefinitions; }
const std::map<int, std::vector<void *> > &Values() const { return values; }
void ReadLiteral(int typeId, int id, char *dest, const Literal &);
void *GetObject(int typeId, const Value &value);
void ReadObject(int typeId, int id, char *dest, const PropertyList &);
+ void ReadScript(const std::vector<ScriptToken *> &, common::Script *);
+ char *ReadScript(const std::vector<ScriptToken *> &);
+ void ReadScriptAddress(const ScriptToken &t, unsigned char *dest);
+ void ReadScriptInteger(const ScriptToken &t, unsigned char *dest);
+ void ReadScriptVector(const ScriptToken &t, unsigned char *dest);
SDL_Surface *GetImage(const std::string &);
private:
const ParsedSource &source;
+ PagedAllocator alloc;
+
std::map<std::string, ParsedDefinition> parsedDefinitions;
std::vector<PostponedDefinition> postponedDefinitions;
std::map<std::string, SDL_Surface *> imageCache;