this repo has no description
1#ifndef REZWORLD_H
2#define REZWORLD_H
3
4#include <map>
5#include <stack>
6#include <string>
7#include "ResourceDefinitions.h"
8#include "Expression.h"
9#include "ResourceFork.h"
10#include "ResSpec.h"
11
12class Diagnostic;
13
14class RezWorld
15{
16 friend class RezParser;
17
18 std::map<TypeSpec, TypeDefinitionPtr> types;
19 std::stack<FieldListPtr> fieldLists;
20 std::stack<IdentifierExprPtr> functionCalls;
21 std::stack<SwitchFieldPtr> switches;
22
23 Resources resources;
24
25public:
26 RezWorld();
27 void addTypeDefinition(TypeSpec spec, TypeDefinitionPtr type);
28
29 TypeDefinitionPtr getTypeDefinition(ResType type, int id, yy::location loc);
30
31 void addResource(ResSpec spec, CompoundExprPtr body, yy::location loc);
32 void addData(ResSpec spec, const std::string& data, yy::location loc);
33
34 Resources& getResources() { return resources; }
35
36 bool verboseFlag;
37 bool hadErrors;
38
39 void problem(Diagnostic d);
40};
41
42
43#endif // REZWORLD_H