diff options
Diffstat (limited to 'src/parse.hpp')
-rw-r--r-- | src/parse.hpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/parse.hpp b/src/parse.hpp new file mode 100644 index 0000000..567a38c --- /dev/null +++ b/src/parse.hpp @@ -0,0 +1,28 @@ +#pragma once + + +#include "grammar.hpp" + +enum parse_token_t { + TOK_BLOCK = 256, + TOK_CHAR = 257, + TOK_EXTRA_ARG = 258, + TOK_HEADER = 259, + TOK_SOURCE = 260, + TOK_SYMBOL = 261, + TOK_SYMBOL_LC = 262, + TOK_SYMBOL_UC = 263, + TOK_TYPE = 264, +}; + +typedef struct parse_token_value { + char c; + std::string * str; +} parse_token_value_t; + +typedef struct parse_context parse_context_t; + +parse_context_t * parse_alloc(void *(*alloc_func)(size_t)); +void parse_free(parse_context_t *parser, void (*free_func)(void *)); + +int parse_push(parse_context_t *parser, int token, const parse_token_value_t *value, __attribute__((unused)) solar::grammar_t * grammar); |