55 const Gyoji::frontend::tree::FileStatementFunctionDefinition & _function_definition,
78 const Gyoji::frontend::tree::FileStatementFunctionDefinition & function_definition;
86 bool is_method()
const;
105 bool create_constant_integer(
106 const Gyoji::frontend::integers::ParseLiteralIntResult & parse_result,
107 size_t & returned_tmpvar,
111 bool create_constant_integer_one(
113 size_t & returned_tmpvar,
117 bool create_incdec_operation(
119 size_t & returned_tmpvar,
120 const size_t & operand_tmpvar,
125 bool local_declare_or_error(
134 bool numeric_widen_binary_operation(
143 bool handle_binary_operation_arithmetic(
146 size_t & returned_tmpvar,
151 bool handle_binary_operation_logical(
154 size_t & returned_tmpvar,
159 bool handle_binary_operation_bitwise(
162 size_t & returned_tmpvar,
167 bool handle_binary_operation_shift(
170 size_t & returned_tmpvar,
175 bool handle_binary_operation_compare(
178 size_t & returned_tmpvar,
183 bool handle_binary_operation_assignment(
186 size_t & returned_tmpvar,
191 bool extract_from_expression_primary_identifier(
192 size_t & returned_tmpvar,
193 const Gyoji::frontend::tree::ExpressionPrimaryIdentifier & expression);
195 bool extract_from_expression_primary_nested(
196 size_t & returned_tmpvar,
197 const Gyoji::frontend::tree::ExpressionPrimaryNested & expression);
199 bool extract_from_expression_primary_literal_char(
200 size_t & returned_tmpvar,
201 const Gyoji::frontend::tree::ExpressionPrimaryLiteralChar & expression);
203 bool extract_from_expression_primary_literal_string(
204 size_t & returned_tmpvar,
205 const Gyoji::frontend::tree::ExpressionPrimaryLiteralString & expression);
207 bool extract_from_expression_primary_literal_int(
208 size_t & returned_tmpvar,
209 const Gyoji::frontend::tree::ExpressionPrimaryLiteralInt & expression);
211 bool extract_from_expression_primary_literal_float(
212 size_t & returned_tmpvar,
213 const Gyoji::frontend::tree::ExpressionPrimaryLiteralFloat & expression);
215 bool extract_from_expression_postfix_array_index(
216 size_t & returned_tmpvar,
217 const Gyoji::frontend::tree::ExpressionPostfixArrayIndex & expression);
219 bool check_function_call_signature(
227 bool extract_from_expression_postfix_function_call(
228 size_t & returned_tmpvar,
229 const Gyoji::frontend::tree::ExpressionPostfixFunctionCall & expression);
231 bool extract_from_expression_postfix_dot(
232 size_t & returned_tmpvar,
233 const Gyoji::frontend::tree::ExpressionPostfixDot & expression);
235 bool extract_from_expression_postfix_arrow(
236 size_t & returned_tmpvar,
237 const Gyoji::frontend::tree::ExpressionPostfixArrow & expression);
239 bool extract_from_expression_postfix_incdec(
240 size_t & returned_tmpvar,
241 const Gyoji::frontend::tree::ExpressionPostfixIncDec & expression);
243 bool extract_from_expression_unary_prefix(
244 size_t & returned_tmpvar,
245 const Gyoji::frontend::tree::ExpressionUnaryPrefix & expression);
247 bool extract_from_expression_unary_sizeof_type(
248 size_t & returned_tmpvar,
249 const Gyoji::frontend::tree::ExpressionUnarySizeofType & expression);
251 bool extract_from_expression_binary(
252 size_t & returned_tmpvar,
253 const Gyoji::frontend::tree::ExpressionBinary & expression);
255 bool extract_from_expression_trinary(
256 size_t & returned_tmpvar,
257 const Gyoji::frontend::tree::ExpressionTrinary & expression);
259 bool extract_from_expression_cast(
260 size_t & returned_tmpvar,
261 const Gyoji::frontend::tree::ExpressionCast & expression);
263 bool extract_from_expression(
264 size_t & returned_tmpvar,
265 const Gyoji::frontend::tree::Expression & expression
268 bool extract_from_struct_initializer(
269 size_t & initial_value_tmpvar,
270 const Gyoji::frontend::tree::StructInitializerExpression & struct_initializer_expression
273 bool extract_from_statement_variable_declaration(
277 bool extract_from_statement_ifelse(
281 bool extract_from_statement_while(
285 bool extract_from_statement_for(
286 const Gyoji::frontend::tree::StatementFor & statement
289 bool extract_from_statement_switch(
290 const Gyoji::frontend::tree::StatementSwitch & statement
293 bool extract_from_statement_label(
294 const Gyoji::frontend::tree::StatementLabel & statement
297 bool extract_from_statement_break(
298 const Gyoji::frontend::tree::StatementBreak & statement
301 bool extract_from_statement_continue(
302 const Gyoji::frontend::tree::StatementContinue & statement
305 bool extract_from_statement_goto(
306 const Gyoji::frontend::tree::StatementGoto & statement
309 bool extract_from_statement_return(
310 const Gyoji::frontend::tree::StatementReturn & statement
318 size_t undeclare_local(
321 size_t basic_block_id,
331 bool extract_from_statement_list(
332 bool automatic_unwind,
333 const Gyoji::frontend::tree::StatementList & statement_list