]> git.tdb.fi Git - libs/gl.git/blob - source/programsyntax.cpp
Implement an actual expression parser
[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 void Block::visit(NodeVisitor &visitor)
14 {
15         visitor.visit(*this);
16 }
17
18
19 void Literal::visit(NodeVisitor &visitor)
20 {
21         visitor.visit(*this);
22 }
23
24
25 void ParenthesizedExpression::visit(NodeVisitor &visitor)
26 {
27         visitor.visit(*this);
28 }
29
30
31 void VariableReference::visit(NodeVisitor &visitor)
32 {
33         visitor.visit(*this);
34 }
35
36
37 void MemberAccess::visit(NodeVisitor &visitor)
38 {
39         visitor.visit(*this);
40 }
41
42
43 UnaryExpression::UnaryExpression():
44         prefix(true)
45 { }
46
47 void UnaryExpression::visit(NodeVisitor &visitor)
48 {
49         visitor.visit(*this);
50 }
51
52
53 BinaryExpression::BinaryExpression():
54         assignment(false)
55 { }
56
57 void BinaryExpression::visit(NodeVisitor &visitor)
58 {
59         visitor.visit(*this);
60 }
61
62
63 FunctionCall::FunctionCall():
64         constructor(false)
65 { }
66
67 void FunctionCall::visit(NodeVisitor &visitor)
68 {
69         visitor.visit(*this);
70 }
71
72
73 void ExpressionStatement::visit(NodeVisitor &visitor)
74 {
75         visitor.visit(*this);
76 }
77
78
79 void Layout::visit(NodeVisitor &visitor)
80 {
81         visitor.visit(*this);
82 }
83
84
85 StructDeclaration::StructDeclaration()
86 {
87         members.use_braces = true;
88 }
89
90 void StructDeclaration::visit(NodeVisitor &visitor)
91 {
92         visitor.visit(*this);
93 }
94
95
96 VariableDeclaration::VariableDeclaration():
97         constant(false),
98         array(false)
99 { }
100
101 void VariableDeclaration::visit(NodeVisitor &visitor)
102 {
103         visitor.visit(*this);
104 }
105
106
107 InterfaceBlock::InterfaceBlock()
108 {
109         members.use_braces = true;
110 }
111
112 void InterfaceBlock::visit(NodeVisitor &visitor)
113 {
114         visitor.visit(*this);
115 }
116
117
118 FunctionDeclaration::FunctionDeclaration():
119         definition(false)
120 { }
121
122 void FunctionDeclaration::visit(NodeVisitor &visitor)
123 {
124         visitor.visit(*this);
125 }
126
127
128 void Conditional::visit(NodeVisitor &visitor)
129 {
130         visitor.visit(*this);
131 }
132
133
134 void Return::visit(NodeVisitor &visitor)
135 {
136         visitor.visit(*this);
137 }
138
139
140 void Iteration::visit(NodeVisitor &visitor)
141 {
142         visitor.visit(*this);
143 }
144
145
146 Context::Context(ContextType t):
147         type(t),
148         present(false)
149 { }
150
151
152 Module::Module():
153         global_context(GLOBAL),
154         vertex_context(VERTEX),
155         geometry_context(GEOMETRY),
156         fragment_context(FRAGMENT)
157 { }
158
159 } // namespace ProgramSyntax
160 } // namespace GL
161 } // namespace Msp