Preprocessor preprocessor;
bool allow_stage_change;
Module *module;
+ std::vector<const Module *> imported_modules;
Stage *cur_stage;
- std::set<std::string> declared_types;
+ std::set<std::string> global_types;
+ std::set<std::string> stage_types;
std::vector<std::string> errors;
public:
RefPtr<BinaryExpression> parse_binary(const RefPtr<Expression> &, const Operator &);
RefPtr<TernaryExpression> parse_ternary(const RefPtr<Expression> &, const Operator &);
RefPtr<FunctionCall> parse_function_call(const VariableReference &);
+ void add_type(TypeDeclaration &);
RefPtr<TypeDeclaration> parse_type_declaration();
RefPtr<BasicTypeDeclaration> parse_basic_type_declaration();
RefPtr<ImageTypeDeclaration> parse_image_type_declaration();