diff options
| author | Mistivia <i@mistivia.com> | 2025-07-22 15:34:57 +0800 |
|---|---|---|
| committer | Mistivia <i@mistivia.com> | 2025-07-22 15:35:11 +0800 |
| commit | ea5c15cbd628953e7b9d17b45ea685006a582cd4 (patch) | |
| tree | 0440a31d4fb2f73cd150fa11f19ac08fd23562f9 /src/parser.h | |
| parent | d64a599af8c6b52223b20f727d76a59a562abb75 (diff) | |
change dir structure
Diffstat (limited to 'src/parser.h')
| -rw-r--r-- | src/parser.h | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/src/parser.h b/src/parser.h deleted file mode 100644 index 0721675..0000000 --- a/src/parser.h +++ /dev/null @@ -1,66 +0,0 @@ -#ifndef BAMBOO_LISP_PARSER_H_ -#define BAMBOO_LISP_PARSER_H_ - -#include <stdbool.h> - -#include "interp.h" -#include "sexp.h" - -typedef enum { - kParseString, - kParseFile, - kParseReadline, -} ParseType; - -struct parser { - Interp *ctx; - char *errmsg_buf; - char *token_buf; - - ParseType parse_type; - union { - struct { - const char *string; - const char *str_cursor; - bool readline_eof; - }; - FILE *fp; - }; -}; -typedef struct parser Parser; - -void Parser_init(Parser *self); -void Parser_free(Parser *self); -int Parser_getchar(Parser *self); -int Parser_peek(Parser *self); -void Parser_set_string(Parser *parser, const char *str); -void Parser_set_file(Parser *parser, FILE *fp); -void Parser_set_readline(Parser *parser); -bool Parser_is_end(Parser *parser); - -typedef struct { - SExpRef val; - const char *errmsg; -} ParseResult; - -ParseResult ParseOk(SExpRef ref); -ParseResult ParseErr(Parser *parser, const char *format, ...); -bool ParseResult_is_err(ParseResult res); - - -ParseResult parse_sexp(Parser *parser); -ParseResult parse_list(Parser *parser); -ParseResult parse_quote(Parser *parser); -ParseResult parse_unquote(Parser *parser); -ParseResult parse_slicing_unquote(Parser *parser); -ParseResult parse_quasi(Parser *parser); -ParseResult parse_atom(Parser *parser); -ParseResult parse_number(Parser *parser); -ParseResult parse_integer(Parser *parser); -ParseResult parse_real(Parser *parser); -ParseResult parse_symbol(Parser *parser); -ParseResult parse_string(Parser *parser); -ParseResult parse_char(Parser *parser); - -#endif - |
