From ee525dc0a7ccd42ab1d1daa44776eba5a9be37a5 Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Wed, 6 Apr 2022 22:15:43 -0300 Subject: Add hashing function for symbols --- src/parser.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/parser.c b/src/parser.c index 7cd22ae..8d846d6 100644 --- a/src/parser.c +++ b/src/parser.c @@ -430,9 +430,11 @@ parse_next(Parser *parser) { } } -uint64_t sym_hash(const struct HashTable *table, void *bytes) { - // TODO: implement - return 0; +u64 sym_hash(const struct HashTable *table, void *bytes) { + Node *symbol = bytes; + u64 hash = _xor_shift_hash(symbol->string.start, symbol->string.n); + hash = _fibonacci_hash(hash, table->shift_amount); + return hash; } bool sym_eq(void *a, void *b) { -- cgit v1.2.1