123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- #ifndef VIRTUALMATH_VAR_H
- #define VIRTUALMATH_VAR_H
- #define MAX_SIZE (1024)
- struct Var{
- char *name;
- struct LinkValue *value;
- struct LinkValue *name_;
- struct Var *next;
- };
- struct HashTable{
- struct Var **hashtable;
- int count;
- struct HashTable *next;
- struct HashTable *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_);
- Var *freeVar(Var *var, bool self);
- HashTable *makeHashTable(Inter *inter, bool supervision);
- void freeHashTable(HashTable *ht, Inter *inter, bool supervision);
- VarList *makeVarList(Inter *inter);
- VarList *freeVarList(VarList *vl, bool self);
- HASH_INDEX time33(char *key);
- LinkValue *findVar(char *name, VarList *var_list, bool del_var);
- LinkValue *findFromVarList(char *name, VarList *var_list, NUMBER_TYPE times, bool del_var);
- void addVar(char *name, LinkValue *value, LinkValue *name_, VarList *var_list);
- void addFromVarList(char *name, VarList *var_list, NUMBER_TYPE times, LinkValue *value, LinkValue *name_);
- VarList *pushVarList(VarList *base, Inter *inter);
- VarList *popVarList(VarList *base);
- VarList *copyVarList(VarList *base, bool n_new, Inter *inter);
- #endif //VIRTUALMATH_VAR_H
|