+ void *GetObject(int typeId, const std::string &name);
+
+ static void CreateTypeDescriptions();
+ struct ParsedDefinition {
+ ParsedDefinition(const Definition *dfn, int type, int id)
+ : dfn(dfn), type(type), id(id) { }
+ const Definition *dfn;
+ int type;
+ int id;
+ };
+ struct PostponedDefinition {
+ PostponedDefinition(
+ char *dest,
+ const char *identifier,
+ int type,
+ bool inlined,
+ bool aggregate)
+ : dest(dest)
+ , identifier(identifier)
+ , type(type)
+ , inlined(inlined)
+ , aggregate(aggregate) { }
+ char *dest;
+ const char *identifier;
+ int type;
+ bool inlined;
+ bool aggregate;
+ };
+
+ const std::set<std::string> &ExportedIdentifiers() const { return source.Exports(); }
+ 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; }