@@ -18,36 +18,37 @@ extern "C"
1818#endif
1919
2020 /* src/ps_parse.c */
21- ps_ast_node * ps_parse_start (ps_compiler * compiler );
21+ bool ps_parse_start (ps_compiler * compiler , ps_ast_block * block_program );
2222
2323 /* src/ps_parse_executable.c */
24- ps_ast_node * ps_parse_procedure_or_function_declaration (ps_compiler * compiler , ps_symbol_kind kind );
25- ps_ast_node * ps_parse_procedure_or_function_call (ps_compiler * compiler , ps_symbol * executable , ps_ast_block * block ,
26- ps_ast_node * expression );
27- ps_ast_node * ps_parse_variable_reference (ps_compiler * compiler , ps_symbol * * variable );
24+ bool ps_parse_procedure_or_function_declaration (ps_compiler * compiler , ps_symbol_kind kind );
25+ bool ps_parse_procedure_or_function_call (ps_compiler * compiler , ps_symbol * executable , ps_ast_block * block ,
26+ ps_ast_node * expression );
27+ bool ps_parse_variable_reference (ps_compiler * compiler , ps_symbol * * variable );
2828
2929 /* src/ps_parse_expression.c */
30- ps_ast_node * ps_parse_expression (ps_compiler * compiler , ps_ast_block * block , ps_ast_node * expression );
31- ps_ast_node * ps_parse_relational_expression (ps_compiler * compiler , ps_ast_block * block , ps_ast_node * expression );
32- ps_ast_node * ps_parse_and_expression (ps_compiler * compiler , ps_ast_block * block , ps_ast_node * expression );
33- ps_ast_node * ps_parse_or_expression (ps_compiler * compiler , ps_ast_block * block , ps_ast_node * expression );
34- ps_ast_node * ps_parse_simple_expression (ps_compiler * compiler , ps_ast_block * block , ps_ast_node * expression );
35- ps_ast_node * ps_parse_term (ps_compiler * compiler , ps_ast_block * block , ps_ast_node * expression );
36- ps_ast_node * ps_parse_factor (ps_compiler * compiler , ps_ast_block * block , ps_ast_node * expression );
37- ps_ast_node * ps_parse_constant_expression (ps_compiler * compiler , ps_value * constant );
38- ps_ast_node * ps_parse_function_call (ps_compiler * compiler , ps_ast_block * block , ps_symbol * function ,
39- ps_ast_node * expression );
30+ bool ps_parse_expression (ps_compiler * compiler , ps_ast_block * block , ps_ast_node * * result );
31+
32+ bool ps_parse_relational_expression (ps_compiler * compiler , ps_ast_block * block , ps_ast_node * * result );
33+ bool ps_parse_and_expression (ps_compiler * compiler , ps_ast_block * block , ps_ast_node * * result );
34+ bool ps_parse_or_expression (ps_compiler * compiler , ps_ast_block * block , ps_ast_node * * result );
35+ bool ps_parse_simple_expression (ps_compiler * compiler , ps_ast_block * block , ps_ast_node * * result );
36+ bool ps_parse_term (ps_compiler * compiler , ps_ast_block * block , ps_ast_node * * result );
37+ bool ps_parse_factor (ps_compiler * compiler , ps_ast_block * block , ps_ast_node * * result );
38+ bool ps_parse_constant_expression (ps_compiler * compiler , ps_value * constant );
39+ bool ps_parse_function_call (ps_compiler * compiler , ps_ast_block * block , ps_symbol * function ,
40+ ps_ast_node * expression );
4041
4142 /* src/ps_parse_type.c */
42- ps_ast_node * ps_parse_type_definition (ps_compiler * compiler , ps_ast_block * block );
43- ps_ast_node * ps_parse_type_reference (ps_compiler * compiler , ps_ast_block * block , ps_symbol * * type_symbol ,
44- const char * type_name );
45- ps_ast_node * ps_parse_type_reference_enum (ps_compiler * compiler , ps_ast_block * block , ps_symbol * * type_symbol ,
46- const char * type_name );
47- ps_ast_node * ps_parse_type_reference_subrange (ps_compiler * compiler , ps_ast_block * block , ps_symbol * * type_symbol ,
48- const char * type_name );
49- ps_ast_node * ps_parse_type_reference_array (ps_compiler * compiler , ps_ast_block * block , ps_symbol * * type_symbol ,
50- const char * type_name );
43+ bool ps_parse_type_definition (ps_compiler * compiler , ps_ast_block * block );
44+ bool ps_parse_type_reference (ps_compiler * compiler , ps_ast_block * block , ps_symbol * * type_symbol ,
45+ const char * type_name );
46+ bool ps_parse_type_reference_enum (ps_compiler * compiler , ps_ast_block * block , ps_symbol * * type_symbol ,
47+ const char * type_name );
48+ bool ps_parse_type_reference_subrange (ps_compiler * compiler , ps_ast_block * block , ps_symbol * * type_symbol ,
49+ const char * type_name );
50+ bool ps_parse_type_reference_array (ps_compiler * compiler , ps_ast_block * block , ps_symbol * * type_symbol ,
51+ const char * type_name );
5152
5253#define PARSE_BEGIN (__PARSE__ , __PLUS__ ) \
5354 ps_lexer *lexer = ps_parser_get_lexer(compiler->parser); \
0 commit comments