#include <string>
#include <vector>
#include <msp/core/refptr.h>
-#include "extension.h"
+#include "features.h"
#include "sourcemap.h"
-#include "uniform.h"
#pragma push_macro("interface")
#undef interface
{
NodeList<Statement> body;
bool use_braces;
+ bool anonymous;
std::map<std::string, StructDeclaration *> types;
std::map<std::string, VariableDeclaration *> variables;
+ Block *parent;
Block();
+ Block(const Block &);
virtual Block *clone() const { return new Block(*this); }
virtual void visit(NodeVisitor &);
{
struct Qualifier
{
- // TODO the standard calls this name, not identifier
- std::string identifier;
- std::string value;
+ std::string name;
+ bool has_value;
+ int value;
};
std::vector<Qualifier> qualifiers;
std::map<std::string, VariableDeclaration *> in_variables;
std::map<std::string, VariableDeclaration *> out_variables;
std::map<std::string, unsigned> locations;
- Version required_version;
- std::vector<const Extension *> required_extensions;
+ Features required_features;
Stage(Type);