better type name for do_not_save_ptr; todo about simplest "fast-enough" symbol table
This commit is contained in:
parent
967960d9bc
commit
560ac9e29e
@ -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".
|
||||
|
8
main.c
8
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) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user