1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- #ifndef VIRTUALMATH_VAR_H
- #define VIRTUALMATH_VAR_H
- #define MAX_SIZE (1024)
- struct Var{
- GCStatus gc_status;
- char *name;
- struct LinkValue *value;
- struct LinkValue *name_;
- struct Var *next;
- struct Var *gc_next;
- struct Var *gc_last;
- };
- struct HashTable{
- GCStatus gc_status;
- struct Var **hashtable;
- struct HashTable *gc_next;
- struct HashTable *gc_last;
- };
- struct VarList{
- struct HashTable *hashtable;
- struct VarList *next;
- };
- typedef struct Var Var;
- typedef struct HashTable HashTable;
- typedef struct VarList VarList;
- Var *makeVar(char *name, LinkValue *value, LinkValue *name_, Inter *inter);
- void freeVar(Var **var);
- HashTable *makeHashTable(Inter *inter);
- void freeHashTable(HashTable **value);
- VarList *makeVarList(Inter *inter);
- VarList *freeVarList(VarList *vl, bool self);
- HASH_INDEX time33(char *key);
- LinkValue *findVar(char *name, bool del_var, INTER_FUNCTIONSIG_CORE);
- LinkValue *findFromVarList(char *name, NUMBER_TYPE times, bool del_var, INTER_FUNCTIONSIG_CORE);
- void addVar(char *name, LinkValue *value, LinkValue *name_, INTER_FUNCTIONSIG_CORE);
- void updateHashTable(HashTable *update, HashTable *new, Inter *inter);
- void addFromVarList(char *name, LinkValue *name_, NUMBER_TYPE times, LinkValue *value, INTER_FUNCTIONSIG_CORE);
- VarList *pushVarList(VarList *base, Inter *inter);
- VarList *popVarList(VarList *base);
- VarList *copyVarList(VarList *base, bool n_new, Inter *inter);
- VarList *connectVarListBack(VarList *base, VarList *back);
- bool comparVarList(VarList *dest, VarList *src);
- VarList *connectSafeVarListBack(VarList *base, VarList *back);
- VarList *makeObjectVarList(FatherValue *value, Inter *inter);
- #endif //VIRTUALMATH_VAR_H
|