From fbddf5e0c46778c1e403389ba557ef036b7b0fb5 Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Fri, 29 Oct 2021 22:00:40 +0200 Subject: Revert "Deduplicate string/symbols text for fast equality checks" This reverts commit 95709acb7f166b21f562ef3fcf8ba7cb5890d28a. --- src/parser.h | 24 ++++-------------------- 1 file changed, 4 insertions(+), 20 deletions(-) (limited to 'src/parser.h') diff --git a/src/parser.h b/src/parser.h index f438863..ee5febe 100755 --- a/src/parser.h +++ b/src/parser.h @@ -37,25 +37,10 @@ typedef struct Object { typedef struct Parser { Token *tokens; size_t current; - - // Unique symbols and strings. - Object **symbols; - Object **strings; } Parser; typedef Object* Root; -typedef struct ParserResults { - // All root statements. - Root *roots; - - // Unique symbols (tracking only first occurence). - Object **symbols; - - // Unique strings (tracking only first occurence). - Object **strings; -} ParserResults; - // Mimics the functionality in the Scanner functions, but for tokens. Token next_token(Parser *parser); Token previous_token(Parser *parser); @@ -65,21 +50,20 @@ bool has_next_token(const Parser *parser); // Parsing operations. Object * parse_tree(Parser *parser, Errors *errors); -Object * parse_symbol(Parser *parser, Token tok); -Object * parse_string(Parser *parser, Token tok); +Object * parse_symbol(Token tok); +Object * parse_string(Token tok); Object * parse_bool(Token tok); Object * parse_fixnum(Token tok); Object * parse_list(Parser *parser, Errors *errors); -ParserResults parse(Token *tokens, Errors *errors); +Root * parse(Token *tokens, Errors *errors); // Object operations. void object_display(Object *obj); -bool object_equal(Object *a, Object *b); // Manage resources. Object * object_alloc(Token tok, ObjectType type); void object_free(Object *node); -void free_parser_results(ParserResults *pr); +void free_roots(Root *roots); // // Helper macros. -- cgit v1.2.1