aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/glsl/glslast.cpp
diff options
context:
space:
mode:
authorRhys Weatherley <[email protected]>2010-11-17 14:46:11 +1000
committerRhys Weatherley <[email protected]>2010-11-17 15:23:13 +1000
commita666c48cf55722f138d079daea56b96e0f546695 (patch)
tree4f7c2267289dfb2863012ef86bcbd2a68f92e687 /src/libs/glsl/glslast.cpp
parent7e4ef22cbdf7624d1e85bd8d185d497737684f99 (diff)
Variable and parameter declarations for GLSL
Diffstat (limited to 'src/libs/glsl/glslast.cpp')
-rw-r--r--src/libs/glsl/glslast.cpp58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/libs/glsl/glslast.cpp b/src/libs/glsl/glslast.cpp
index 08252d50a6b..28c8c97f28d 100644
--- a/src/libs/glsl/glslast.cpp
+++ b/src/libs/glsl/glslast.cpp
@@ -124,6 +124,15 @@ void FunctionIdentifier::accept0(Visitor *visitor)
visitor->endVisit(this);
}
+void DeclarationExpression::accept0(Visitor *visitor)
+{
+ if (visitor->visit(this)) {
+ accept(type, visitor);
+ accept(initializer, visitor);
+ }
+ visitor->endVisit(this);
+}
+
void ExpressionStatement::accept0(Visitor *visitor)
{
if (visitor->visit(this))
@@ -206,6 +215,13 @@ void CaseLabelStatement::accept0(Visitor *visitor)
visitor->endVisit(this);
}
+void DeclarationStatement::accept0(Visitor *visitor)
+{
+ if (visitor->visit(this))
+ accept(decls, visitor);
+ visitor->endVisit(this);
+}
+
BasicType::BasicType(int _token, const char *_name, Category _category)
: Type(Kind_BasicType), token(_token), name(_name), categ(_category)
{
@@ -348,3 +364,45 @@ void PrecisionDeclaration::accept0(Visitor *visitor)
accept(type, visitor);
visitor->endVisit(this);
}
+
+void ParameterDeclaration::accept0(Visitor *visitor)
+{
+ if (visitor->visit(this))
+ accept(type, visitor);
+ visitor->endVisit(this);
+}
+
+void VariableDeclaration::accept0(Visitor *visitor)
+{
+ if (visitor->visit(this)) {
+ accept(type, visitor);
+ accept(initializer, visitor);
+ }
+ visitor->endVisit(this);
+}
+
+Type *VariableDeclaration::declarationType(List<Declaration *> *decls)
+{
+ VariableDeclaration *var = decls->value->asVariableDeclaration();
+ return var ? var->type : 0;
+}
+
+void TypeDeclaration::accept0(Visitor *visitor)
+{
+ if (visitor->visit(this))
+ accept(type, visitor);
+ visitor->endVisit(this);
+}
+
+void InvariantDeclaration::accept0(Visitor *visitor)
+{
+ visitor->visit(this);
+ visitor->endVisit(this);
+}
+
+void InitDeclaration::accept0(Visitor *visitor)
+{
+ if (visitor->visit(this))
+ accept(decls, visitor);
+ visitor->endVisit(this);
+}