mirror of
https://github.com/autc04/Retro68.git
synced 2024-12-26 00:32:02 +00:00
44 lines
901 B
C++
44 lines
901 B
C++
#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
|