aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2022-04-06 22:15:43 -0300
committerBad Diode <bd@badd10de.dev>2022-04-06 22:15:43 -0300
commitee525dc0a7ccd42ab1d1daa44776eba5a9be37a5 (patch)
treef30e419251585d2c29467933011c11dff531b04a /src
parent8186228baa8a4e646e2f11c0dbbf6a023079f8eb (diff)
downloadbdl-ee525dc0a7ccd42ab1d1daa44776eba5a9be37a5.tar.gz
bdl-ee525dc0a7ccd42ab1d1daa44776eba5a9be37a5.zip
Add hashing function for symbols
Diffstat (limited to 'src')
-rw-r--r--src/parser.c8
1 files changed, 5 insertions, 3 deletions
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) {
430 } 430 }
431} 431}
432 432
433uint64_t sym_hash(const struct HashTable *table, void *bytes) { 433u64 sym_hash(const struct HashTable *table, void *bytes) {
434 // TODO: implement 434 Node *symbol = bytes;
435 return 0; 435 u64 hash = _xor_shift_hash(symbol->string.start, symbol->string.n);
436 hash = _fibonacci_hash(hash, table->shift_amount);
437 return hash;
436} 438}
437 439
438bool sym_eq(void *a, void *b) { 440bool sym_eq(void *a, void *b) {