aboutsummaryrefslogtreecommitdiff
path: root/src/parser.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/parser.c')
-rw-r--r--src/parser.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/src/parser.c b/src/parser.c
index c7f2851..4468997 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -5,7 +5,7 @@
#include <stdio.h>
#include <string.h>
-/*
+
// initialize a parser
parser_t* parser_init(lexer_t* lexer) {
parser_t* parser = calloc(1, sizeof(struct PARSER_STRUC));
@@ -21,7 +21,7 @@ void parser_check_expect(parser_t* parser, int token_type) {
if (parser->token->type == token_type) {
parser->token = lexer_get_next_token(parser->lexer);
} else {
- printf("[ERRR] PARSE ERROR at %d\n\tUnexpected token '%s' with type '%d'.",
+ printf("[ERRR] [%d]\n\tUnexpected token '%s' with type '%d'.",
parser->lexer->i, parser->token->value, parser->token->type);
exit(1);
@@ -56,25 +56,25 @@ tree_t* parser_parse_chunks(parser_t* parser) {
tree_t* subtree = tree_init(TREE_SUBTREE);
// initialize the subtree_val with unit size
- subtree->subtree_val = calloc(1, sizeof(struct TREE_STRUC));
+ subtree->data.subtree.size = calloc(1, sizeof(struct TREE_STRUC));
tree_t* tree_chunk = parser_parse_chunk(parser);
- subtree->subtree_val[0] = tree_chunk;
+ subtree->data.subtree.val[0] = tree_chunk;
while (parser->token->type == TOKEN_SEMI) {
// expect semicolon
parser_check_expect(parser, TOKEN_SEMI);
// make room for new subtree
- subtree->subtree_size ++;
- subtree->subtree_val = realloc(
- subtree->subtree_val,
- subtree->subtree_size * sizeof(struct TREE_STRUC)
+ subtree->data.subtree.size ++;
+ subtree->data.subtree.val = realloc(
+ subtree->data.subtree.val,
+ subtree->data.subtree.size * sizeof(struct TREE_STRUC)
);
// add to end of list
- subtree->subtree_val[subtree->subtree_size - 1] = tree_chunk;
+ subtree->data.subtree.val[subtree->data.subtree.size - 1] = tree_chunk;
}
return subtree;
@@ -91,4 +91,4 @@ tree_t* parser_parse_fn_call(parser_t* parser);
tree_t* parser_parse_var(parser_t* parser);
tree_t* parser_parse_str(parser_t* parser);
-*/
+