diff options
author | c | 2024-01-28 20:15:35 -0500 |
---|---|---|
committer | c | 2024-01-28 20:15:35 -0500 |
commit | 422606d8b3cc6fba74f97af46f0378fc274d60ad (patch) | |
tree | 34314628de5e3132cffc661901bd1e4c9b2aa0de /src/include/parser.h | |
parent | 87e0d4b3d23a7eb38f0e196eac333c318fef27ea (diff) |
Fixed things.
- Fixed `parser_nxt_token()` assuming the existance of a parser's token.
- Fixed block parsing.
Diffstat (limited to 'src/include/parser.h')
-rw-r--r-- | src/include/parser.h | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/include/parser.h b/src/include/parser.h index eae09d4..a442d60 100644 --- a/src/include/parser.h +++ b/src/include/parser.h @@ -14,7 +14,7 @@ typedef enum PARSER_STATE { PARSER_STATE_DARG, PARSER_STATE_CARG, PARSER_STATE_DEF, - PARSER_STATE_CALL, + PARSER_STATE_CALL } parser_state_t; typedef struct PARSER { @@ -41,6 +41,15 @@ void parser_destroy(parser_t* parser); /* Step the parser forward by 1 token. */ int parser_nxt_token(parser_t* parser); +/* Get tree for first (implied) block. */ +tree_t* parser_parse_init(parser_t* parser); + +/* Get tree for a block. */ +tree_t* parser_parse_block(parser_t* parser); + +/* Get tree for an expression.*/ +tree_t* parser_parse_expr(parser_t* parser); + /* Check whether the current token matches the given type. - If it doesn't, return 0 and throw error. @@ -56,12 +65,6 @@ tree_t* parser_parse_lint(parser_t* parser); /* Return the tree for a string. */ tree_t* parser_parse_lstr(parser_t* parser); -/* Return the tree for an expression.*/ -tree_t* parser_parse_expr(parser_t* parser); - -/* Return the tree for an block. */ -tree_t* parser_parse_block(parser_t* parser); - /* Return the tree for a definition's arguments. */ tree_t* parser_parse_darg(parser_t* parser); |