function.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #ifndef VIRTUALMATH_FUNCTION_H
  2. #define VIRTUALMATH_FUNCTION_H
  3. #include "__macro.h"
  4. #include "statement.h"
  5. #include "run.h"
  6. // 所有statement相关的function都在此处声明
  7. // value的处理
  8. Value *makeValue(Inter *inter);
  9. void freeValue(Value *value, Inter *inter);
  10. LinkValue *makeLinkValue(Value *value, LinkValue *linkValue,Inter *inter);
  11. void freeLinkValue(LinkValue *value, Inter *inter);
  12. Value *makeNumberValue(long num, Inter *inter);
  13. Value *makeStringValue(char *str, Inter *inter);
  14. void setResult(Result *ru, bool link, Inter *inter);
  15. // Inter的处理
  16. Inter *makeInter();
  17. void freeInter(Inter *inter, bool self);
  18. // statement的处理
  19. Statement *makeStatement();
  20. void connectStatement(Statement *base, Statement *new);
  21. void freeStatement(Statement *st);
  22. // run的处理
  23. Result iterStatement(INTER_FUNCTIONSIG);
  24. Result operationStatement(INTER_FUNCTIONSIG);
  25. Result globalIterStatement(Inter *inter);
  26. // var的处理
  27. VarList *makeVarList(Inter *inter);
  28. VarList *freeVarList(VarList *vl, bool self);
  29. LinkValue *findFromVarList(char *name, VarList *var_list, NUMBER_TYPE times);
  30. void addFromVarList(char *name, VarList *var_list, NUMBER_TYPE times, LinkValue *value);
  31. void freeHashTable(HashTable *ht, Inter *inter);
  32. #endif //VIRTUALMATH_FUNCTION_H