#include <string>
#include <vector>
#include <msp/core/refptr.h>
+#include <msp/core/variant.h>
#include "features.h"
#include "glsl_error.h"
#include "sourcemap.h"
class NodeArray: public NodeContainer<std::vector<RefPtr<T> > >
{ };
-struct StructDeclaration;
+struct TypeDeclaration;
struct VariableDeclaration;
struct InterfaceBlock;
struct FunctionDeclaration;
{
const Operator *oper;
+ TypeDeclaration *type;
+ bool lvalue;
+
Expression();
virtual Expression *clone() const = 0;
struct Literal: Expression
{
std::string token;
+ Variant value;
virtual Literal *clone() const { return new Literal(*this); }
virtual void visit(NodeVisitor &);
Block body;
FunctionDeclaration *definition;
+ TypeDeclaration *return_type_declaration;
FunctionDeclaration();
FunctionDeclaration(const FunctionDeclaration &);