diff --git a/engine/slc.h b/engine/slc.h index 3f66314..34f8965 100644 --- a/engine/slc.h +++ b/engine/slc.h @@ -168,10 +168,10 @@ union symptr { }; typedef union symptr symptr; -struct slc_tmp_charptr { +struct do_not_save_charptr { char *ptr; }; -typedef struct slc_tmp_charptr slc_tmp_charptr; +typedef struct do_not_save_charptr do_not_save_charptr; /** * Function-abstraction for a "symbol-table". @@ -185,11 +185,11 @@ typedef struct slc_tmp_charptr slc_tmp_charptr; * Rem.: On GET we return a word* in case the key is to a word and a regular uint32_t* if its a variable name! * * @param op Defines which operation the caller wants. - * @param key The key (both for SET and GET). This pointer can get easily invalidated so you might need a copy on SET. + * @param key The key (both for SET and GET). This pointer can get easily invalidated so you might need a copy or you do Trie, etc. * @param ptr When adding a found word/variable to the symbol table, the key will point to this word* or uint32_t* * @returns The word/var definition stored for the key, or NULL when it is not stored yet or op is SET and there was an error. */ -typedef symptr (*sym)(SLC_SYM_OP op, slc_tmp_charptr key, symptr ptr); +typedef symptr (*sym)(SLC_SYM_OP op, do_not_save_charptr key, symptr ptr); /** * Function-abstraction for an integer "stack". diff --git a/main.c b/main.c index 0b0b047..458a5e4 100644 --- a/main.c +++ b/main.c @@ -10,6 +10,14 @@ symptr nopsym(SLC_SYM_OP op, slc_tmp_charptr key, symptr ptr) { symptr ret; ret.worp = NULL; return ret; + // TODO: Create a "peasantly" symbol table where we have: + // - length + // - previndex + // - nextindex + // - char* name inline stored + // + // Then I can do a lookup basically via strstr + // and check validity by jumping back&forth a bit. } uint32_t nopstack(SLC_STACK_OP op, uint32_t param) {