summaryrefslogtreecommitdiff
path: root/src/pipac.c
diff options
context:
space:
mode:
authorCarlos Maniero <carlos@maniero.me>2023-05-02 23:45:49 -0300
committerJohnny Richard <johnny@johnnyrichard.com>2023-05-03 22:38:25 +0200
commit77dbf3a5011566b4a6274b3cdfa075dd723642d3 (patch)
tree8bd9022499ab1d403ca3c59bbd05b09bd44ccbbd /src/pipac.c
parent57cee82f9136f0a0246d3b1d3191226bd4234d43 (diff)
Parser: Make the parser function return the ast_node
In many situations, the parser is responsible for reserving memory for nodes, particularly during function body parsing. This commit introduces a new standard where parser functions not only allocate memory for ast_nodes, but also return them. In case of a parser error, a NULL pointer is returned. This standard will be extended to other parsers in future commits, ensuring consistency throughout the codebase. Signed-off-by: Carlos Maniero <carlos@maniero.me>
Diffstat (limited to 'src/pipac.c')
-rw-r--r--src/pipac.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/pipac.c b/src/pipac.c
index 2041218..e3caec1 100644
--- a/src/pipac.c
+++ b/src/pipac.c
@@ -67,9 +67,9 @@ main(int argc, char **argv)
parser_t parser;
parser_init(&parser, &lexer, scope);
- ast_node_t *func = ast_node_new();
+ ast_node_t *func = parser_parse_function_declaration(&parser);
- if (!parser_parse_function_declaration(&parser, func)) {
+ if (func == NULL) {
parser_print_errors(&parser);
return EXIT_FAILURE;
}