@@ -201,57 +201,50 @@ extern "C"
201201 #define PS_AST_NODE_VARIABLE_ARRAY_SIZE sizeof(ps_ast_variable_array)
202202 // clang-format on
203203
204- /** @brief Create a new AST node of the given kind */
204+ /** @brief Create a new AST node of the given group & kind */
205205 ps_ast_node * ps_ast_create_node (ps_ast_node_group group , ps_ast_node_kind kind , uint16_t line , uint16_t column ,
206206 size_t size );
207207
208- ps_ast_node * ps_ast_create_block (uint16_t line , uint16_t column , ps_ast_node_kind kind , char * name );
209- ps_ast_node * ps_ast_create_statement_list (uint16_t line , uint16_t column , size_t count );
210- ps_ast_node * ps_ast_create_assignment (uint16_t line , uint16_t column , ps_ast_node * variable ,
211- ps_ast_node * expression );
212- ps_ast_node * ps_ast_create_if (uint16_t line , uint16_t column , ps_ast_node * condition ,
213- ps_ast_statement_list * then_branch , ps_ast_statement_list * else_branch );
214- ps_ast_node * ps_ast_create_while (uint16_t line , uint16_t column , ps_ast_node * condition ,
215- ps_ast_statement_list * body );
216- ps_ast_node * ps_ast_create_repeat (uint16_t line , uint16_t column , ps_ast_statement_list * body ,
217- ps_ast_node * condition );
218- ps_ast_node * ps_ast_create_for (uint16_t line , uint16_t column , ps_ast_node * variable , ps_ast_node * start ,
219- ps_ast_node * end , int step , ps_ast_statement_list * body );
220- ps_ast_node * ps_ast_create_procedure_call (uint16_t line , uint16_t column , ps_symbol * executable , size_t n_args ,
221- ps_ast_argument * args );
222- ps_ast_node * ps_ast_create_function_call (uint16_t line , uint16_t column , ps_symbol * executable , size_t n_args ,
223- ps_ast_argument * args );
224- ps_ast_node * ps_ast_create_unary_operation (uint16_t line , uint16_t column , ps_operator_unary operator ,
225- ps_ast_node * operand );
226- ps_ast_node * ps_ast_create_binary_operation (uint16_t line , uint16_t column , ps_operator_binary operator ,
227- ps_ast_node * left , ps_ast_node * right );
228- ps_ast_node * ps_ast_create_value (uint16_t line , uint16_t column , ps_value value );
229- ps_ast_node * ps_ast_create_variable_simple (uint16_t line , uint16_t column , ps_symbol * variable );
230- ps_ast_node * ps_ast_create_variable_array (uint16_t line , uint16_t column , ps_symbol * symbol , size_t n_indexes ,
231- ps_ast_node * indexes );
232- ps_ast_node * ps_ast_create_lvalue_simple (uint16_t line , uint16_t column , ps_symbol * variable );
233- ps_ast_node * ps_ast_create_lvalue_array (uint16_t line , uint16_t column , ps_symbol * symbol , size_t n_indexes ,
234- ps_ast_node * indexes );
208+ // clang-format off
209+ ps_ast_block * ps_ast_create_block (uint16_t line , uint16_t column , ps_ast_node_group group , ps_ast_node_kind kind , char * name );
210+ ps_ast_statement_list * ps_ast_create_statement_list (uint16_t line , uint16_t column , ps_ast_node_group group , ps_ast_node_kind kind , size_t count );
211+ ps_ast_assignment * ps_ast_create_assignment (uint16_t line , uint16_t column , ps_ast_node_group group , ps_ast_node_kind kind , ps_ast_node * variable ,ps_ast_node * expression );
212+ ps_ast_if * ps_ast_create_if (uint16_t line , uint16_t column , ps_ast_node_group group , ps_ast_node_kind kind , ps_ast_node * condition , ps_ast_statement_list * then_branch , ps_ast_statement_list * else_branch );
213+ ps_ast_while * ps_ast_create_while (uint16_t line , uint16_t column , ps_ast_node_group group , ps_ast_node_kind kind , ps_ast_node * condition , ps_ast_statement_list * body );
214+ ps_ast_repeat * ps_ast_create_repeat (uint16_t line , uint16_t column , ps_ast_statement_list * body , ps_ast_node * condition );
215+ ps_ast_for * ps_ast_create_for (uint16_t line , uint16_t column , ps_ast_node_group group , ps_ast_node_kind kind , ps_ast_node * variable , ps_ast_node * start , ps_ast_node * end , int step , ps_ast_statement_list * body );
216+ ps_ast_call * ps_ast_create_procedure_call (uint16_t line , uint16_t column , ps_symbol * executable , size_t n_args , ps_ast_argument * args );
217+ ps_ast_call * ps_ast_create_function_call (uint16_t line , uint16_t column , ps_symbol * executable , size_t n_args , ps_ast_argument * args );
218+ ps_ast_unary_operation * ps_ast_create_unary_operation (uint16_t line , uint16_t column , ps_operator_unary operator , ps_ast_node * operand );
219+ ps_ast_binary_operation * ps_ast_create_binary_operation (uint16_t line , uint16_t column , ps_operator_binary operator , ps_ast_node * left , ps_ast_node * right );
220+ ps_ast_value * ps_ast_create_value (uint16_t line , uint16_t column , ps_value value );
221+ ps_ast_variable_simple * ps_ast_create_variable_simple (uint16_t line , uint16_t column , ps_symbol * variable );
222+ ps_ast_variable_array * ps_ast_create_variable_array (uint16_t line , uint16_t column , ps_symbol * symbol , size_t n_indexes , ps_ast_node * indexes );
223+ ps_ast_variable_simple * ps_ast_create_lvalue_simple (uint16_t line , uint16_t column , ps_symbol * variable );
224+ ps_ast_variable_array * ps_ast_create_lvalue_array (uint16_t line , uint16_t column , ps_symbol * symbol , size_t n_indexes , ps_ast_node * indexes );
225+ // clang-format on
235226
236227 /** @brief Free an AST node and all its children */
237228 ps_ast_node * ps_ast_free_node (ps_ast_node * node );
238229
239- ps_ast_node * ps_ast_free_block (ps_ast_node * node );
240- ps_ast_node * ps_ast_free_statement_list (ps_ast_node * node );
241- ps_ast_node * ps_ast_free_assignment (ps_ast_node * node );
242- ps_ast_node * ps_ast_free_if (ps_ast_node * node );
243- ps_ast_node * ps_ast_free_while (ps_ast_node * node );
244- ps_ast_node * ps_ast_free_repeat (ps_ast_node * node );
245- ps_ast_node * ps_ast_free_for (ps_ast_node * node );
246- ps_ast_node * ps_ast_free_procedure_call (ps_ast_node * node );
247- ps_ast_node * ps_ast_free_unary_operation (ps_ast_node * node );
248- ps_ast_node * ps_ast_free_binary_operation (ps_ast_node * node );
249- ps_ast_node * ps_ast_free_function_call (ps_ast_node * node );
250- ps_ast_node * ps_ast_free_value (ps_ast_node * node );
251- ps_ast_node * ps_ast_free_variable_simple (ps_ast_node * node );
252- ps_ast_node * ps_ast_free_variable_array (ps_ast_node * node );
253- ps_ast_node * ps_ast_free_lvalue_simple (ps_ast_node * node );
254- ps_ast_node * ps_ast_free_lvalue_array (ps_ast_node * node );
230+ // clang-format off
231+ ps_ast_block * ps_ast_free_block (ps_ast_block * block );
232+ ps_ast_statement_list * ps_ast_free_statement_list (ps_ast_statement_list * list );
233+ ps_ast_assignment * ps_ast_free_assignment (ps_ast_assignment * assignment );
234+ ps_ast_if * ps_ast_free_if (ps_ast_if * if_statement );
235+ ps_ast_while * ps_ast_free_while (ps_ast_while * while_statement );
236+ ps_ast_repeat * ps_ast_free_repeat (ps_ast_repeat * repeat_statement );
237+ ps_ast_for * ps_ast_free_for (ps_ast_for * for_statement );
238+ ps_ast_call * ps_ast_free_procedure_call (ps_ast_call * call );
239+ ps_ast_unary_operation * ps_ast_free_unary_operation (ps_ast_unary_operation * operation );
240+ ps_ast_binary_operation * ps_ast_free_binary_operation (ps_ast_binary_operation * operation );
241+ ps_ast_call * ps_ast_free_function_call (ps_ast_call * call );
242+ ps_ast_value * ps_ast_free_value (ps_ast_value * value );
243+ ps_ast_variable_simple * ps_ast_free_variable_simple (ps_ast_variable_simple * variable );
244+ ps_ast_variable_array * ps_ast_free_variable_array (ps_ast_variable_array * variable );
245+ ps_ast_variable_simple * ps_ast_free_lvalue_simple (ps_ast_variable_simple * lvalue );
246+ ps_ast_variable_array * ps_ast_free_lvalue_array (ps_ast_variable_array * lvalue );
247+ // clang-format on
255248
256249#ifdef __cplusplus
257250}
0 commit comments