#ifndef REZWORLD_H #define REZWORLD_H #include <map> #include <stack> #include <string> #include "ResourceDefinitions.h" #include "Expression.h" #include "ResourceFork.h" #include "ResSpec.h" class Diagnostic; class RezWorld { friend class RezParser; std::map<TypeSpec, TypeDefinitionPtr> types; std::stack<FieldListPtr> fieldLists; std::stack<IdentifierExprPtr> functionCalls; std::stack<SwitchFieldPtr> switches; Resources resources; public: RezWorld(); void addTypeDefinition(TypeSpec spec, TypeDefinitionPtr type); TypeDefinitionPtr getTypeDefinition(ResType type, int id, yy::location loc); void addResource(ResSpec spec, CompoundExprPtr body, yy::location loc); void addData(ResSpec spec, const std::string& data, yy::location loc); Resources& getResources() { return resources; } bool verboseFlag; bool hadErrors; void problem(Diagnostic d); }; #endif // REZWORLD_H