diff options
author | Rhys Weatherley <[email protected]> | 2010-11-17 14:46:11 +1000 |
---|---|---|
committer | Rhys Weatherley <[email protected]> | 2010-11-17 15:23:13 +1000 |
commit | a666c48cf55722f138d079daea56b96e0f546695 (patch) | |
tree | 4f7c2267289dfb2863012ef86bcbd2a68f92e687 /src/libs/glsl/glslast.cpp | |
parent | 7e4ef22cbdf7624d1e85bd8d185d497737684f99 (diff) |
Variable and parameter declarations for GLSL
Diffstat (limited to 'src/libs/glsl/glslast.cpp')
-rw-r--r-- | src/libs/glsl/glslast.cpp | 58 |
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); +} |