aboutsummaryrefslogtreecommitdiff
path: root/src/parser.h
diff options
context:
space:
mode:
authorMistivia <i@mistivia.com>2025-07-22 15:34:57 +0800
committerMistivia <i@mistivia.com>2025-07-22 15:35:11 +0800
commitea5c15cbd628953e7b9d17b45ea685006a582cd4 (patch)
tree0440a31d4fb2f73cd150fa11f19ac08fd23562f9 /src/parser.h
parentd64a599af8c6b52223b20f727d76a59a562abb75 (diff)
change dir structure
Diffstat (limited to 'src/parser.h')
-rw-r--r--src/parser.h66
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
-