aboutsummaryrefslogtreecommitdiff
path: root/src/include/parser.h
diff options
context:
space:
mode:
authorc+12023-06-01 16:18:26 -0400
committerc+12023-06-01 16:18:26 -0400
commitaecec3006ccb1c6ca6a8d9704b47237a344de0b9 (patch)
tree55e638140e25b409a46090b2aa82bc256c8f91e2 /src/include/parser.h
parent65e31912bcf11b9b4f234b471f69c96ccc3e0a17 (diff)
HALK
Diffstat (limited to 'src/include/parser.h')
-rw-r--r--src/include/parser.h37
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