6 #include <ail/types.hpp>
10 namespace executable_unit_type
25 namespace assignment_type
42 namespace unary_operator_type
52 namespace binary_operator_type
66 greater_than_or_equal
,
84 namespace parse_tree_node_type
102 namespace symbol_prefix
117 typedef std::vector
<parse_tree_node
> parse_tree_nodes
;
118 typedef std::vector
<parse_tree_symbol
> parse_tree_symbols
;
119 typedef std::vector
<executable_unit
> executable_units
;
121 struct parse_tree_symbol
124 symbol_prefix::type type
;
129 struct parse_tree_unary_operator_node
131 unary_operator_type type
;
132 parse_tree_node argument
;
135 struct parse_tree_binary_operator_node
137 binary_operator_type type
;
143 struct parse_tree_call
145 parse_tree_node function
;
146 parse_tree_nodes arguments
;
149 struct parse_tree_array
151 parse_tree_nodes elements
;
154 struct parse_tree_node
156 parse_tree_node_type::type type
;
159 variable
* variable_pointer
;
160 parse_tree_symbol
* symbol_pointer
;
161 parse_tree_unary_operator_node
* unary_operator_pointer
;
162 parse_tree_binary_operator_node
* binary_operator_pointer
;
163 parse_tree_call
* call_pointer
;
164 parse_tree_array
* array_pointer
;
168 parse_tree_node(parse_tree_node_type::type type
);
169 parse_tree_node(variable
* variable_pointer
);
170 parse_tree_node(unary_operator_type::type unary_operator
);
171 parse_tree_node(binary_operator_type::type binary_operator
);
172 parse_tree_node(parse_tree_nodes
& elements
);
177 struct assignment_statement
179 assignment_type::type type
;
180 parse_tree_symbols symbols
;
181 parse_tree_node term
;
186 parse_tree_node conditional_term
;
187 parse_tree_nodes body
;
190 struct if_else_statement
192 parse_tree_node conditional_term
;
198 struct for_each_statement
200 parse_tree_symbol container
;
201 parse_tree_nodes body
;
210 parse_tree_nodes body
;
213 struct while_statement
215 parse_tree_node conditional_term
;
216 parse_tree_nodes body
;
219 struct executable_unit
221 executable_unit_type::type type
;
225 parse_tree_node
* statement_pointer
;
226 if_statement
* if_pointer
;
227 if_else_statement
* if_else_pointer
;
228 for_each_statement
* for_each_pointer
;
229 for_statement
* for_pointer
;
230 while_statement
* while_pointer
;
236 string_vector arguments
;
237 executable_units units
;