]> git.tdb.fi Git - libs/gl.git/blob - source/programsyntax.cpp
Begin implementing a new shader program generator system
[libs/gl.git] / source / programsyntax.cpp
1 #include "programsyntax.h"
2
3 using namespace std;
4
5 namespace Msp {
6 namespace GL {
7 namespace ProgramSyntax {
8
9 Block::Block():
10         use_braces(false)
11 { }
12
13 Block::~Block()
14 {
15         for(vector<Node *>::iterator i=body.begin(); i!=body.end(); ++i)
16                 delete *i;
17 }
18
19 void Block::visit(NodeVisitor &visitor)
20 {
21         visitor.visit(*this);
22 }
23
24
25 void ExpressionStatement::visit(NodeVisitor &visitor)
26 {
27         visitor.visit(*this);
28 }
29
30
31 void Layout::visit(NodeVisitor &visitor)
32 {
33         visitor.visit(*this);
34 }
35
36
37 StructDeclaration::StructDeclaration()
38 {
39         members.use_braces = true;
40 }
41
42 void StructDeclaration::visit(NodeVisitor &visitor)
43 {
44         visitor.visit(*this);
45 }
46
47
48 VariableDeclaration::VariableDeclaration():
49         constant(false),
50         array(false)
51 { }
52
53 void VariableDeclaration::visit(NodeVisitor &visitor)
54 {
55         visitor.visit(*this);
56 }
57
58
59 InterfaceBlock::InterfaceBlock()
60 {
61         members.use_braces = true;
62 }
63
64 void InterfaceBlock::visit(NodeVisitor &visitor)
65 {
66         visitor.visit(*this);
67 }
68
69
70 FunctionDeclaration::FunctionDeclaration():
71         definition(false)
72 { }
73
74 FunctionDeclaration::~FunctionDeclaration()
75 {
76         for(vector<VariableDeclaration *>::iterator i=parameters.begin(); i!=parameters.end(); ++i)
77                 delete *i;
78 }
79
80 void FunctionDeclaration::visit(NodeVisitor &visitor)
81 {
82         visitor.visit(*this);
83 }
84
85
86 void Conditional::visit(NodeVisitor &visitor)
87 {
88         visitor.visit(*this);
89 }
90
91
92 void Return::visit(NodeVisitor &visitor)
93 {
94         visitor.visit(*this);
95 }
96
97
98 Iteration::Iteration():
99         init_statement(0)
100 { }
101
102 Iteration::~Iteration()
103 {
104         delete init_statement;
105 }
106
107 void Iteration::visit(NodeVisitor &visitor)
108 {
109         visitor.visit(*this);
110 }
111
112
113 Context::Context(ContextType t):
114         type(t),
115         present(false)
116 { }
117
118
119 Module::Module():
120         global_context(GLOBAL),
121         vertex_context(VERTEX),
122         geometry_context(GEOMETRY),
123         fragment_context(FRAGMENT)
124 { }
125
126 } // namespace ProgramSyntax
127 } // namespace GL
128 } // namespace Msp