diff options
author | s-over-4 | 2023-06-05 13:20:39 -0400 |
---|---|---|
committer | s-over-4 | 2023-06-05 13:20:39 -0400 |
commit | e55519fae1a4053eb7f76dbaa686353c64a8cd9f (patch) | |
tree | 48bb5c6d357cb06a2607de602573a1857d2fcac7 /src/include/parser.h | |
parent | abae0069eb6d657aec6d66b9801b937c159e0dc8 (diff) | |
parent | aecec3006ccb1c6ca6a8d9704b47237a344de0b9 (diff) |
Merge branch 'main' of https://github.com/s-over-4/HALK
C
Diffstat (limited to 'src/include/parser.h')
-rw-r--r-- | src/include/parser.h | 37 |
1 files changed, 19 insertions, 18 deletions
diff --git a/src/include/parser.h b/src/include/parser.h index c77fd29..dcacabe 100644 --- a/src/include/parser.h +++ b/src/include/parser.h @@ -1,7 +1,6 @@ #ifndef PARSER_H #define PARSER_H - #include "token.h" #include "tree.h" #include "lexer.h" @@ -16,28 +15,30 @@ typedef struct PARSER_STRUC { parser_t* parser_init(lexer_t* lexer); // check for expected token, or throw syntax error -void parser_check_expect(parser_t* parser, int token_type); +void parser_token_expect(parser_t* parser, int token_type); -// creates the abstract syntax tree +// do the parse tree_t* parser_parse(parser_t* parser); -tree_t* parser_parse_token_id(parser_t* parser); - -// parse a single chunk -tree_t* parser_parse_chunk(parser_t* parser); +tree_t* parser_parse_token(parser_t* parser); -// parse all in list of chunks -tree_t* parser_parse_chunks(parser_t* parser); +// parse hunks +tree_t* parser_parse_hunk(parser_t* parser); +tree_t* parser_parse_hunks(parser_t* parser); // leaves of the tree -tree_t* parser_parse_expr(parser_t* parser); -tree_t* parser_parse_fac(parser_t* parser); -tree_t* parser_parse_term(parser_t* parser); -tree_t* parser_parse_fn_call(parser_t* parser); -tree_t* parser_parse_fn_def(parser_t* parser); -tree_t* parser_parse_var(parser_t* parser); -tree_t* parser_parse_var_def(parser_t* parser); -tree_t* parser_parse_str(parser_t* parser); -tree_t* parser_parse_keyword(parser_t* parser); +tree_t* parser_parse_prim(parser_t* parser); +tree_t* parser_parse_subtree(parser_t* parser); +tree_t* parser_parse_def(parser_t* parser); +tree_t* parser_parse_call(parser_t* parser); + +// primitives +tree_t* parser_parse_prim_str(parser_t* parser); +tree_t* parser_parse_prim_int(parser_t* parser); +tree_t* parser_parse_prim_unkwn(parser_t* parser); + +// defs +tree_t* parser_parse_def_tags(parser_t* parser); +int parser_is_def_tag(char* maybe_tag); #endif |