__macro.h 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #ifndef VIRTUALMATH___MACRO_H
  2. #define VIRTUALMATH___MACRO_H
  3. #include "macro.h"
  4. // PASS语句的定义
  5. #define PASS
  6. #define PARSER_STOP_SIGNAL(sig) ((sig) == SIGINT)
  7. #define RUN_TYPE(type) (type == R_not || type == R_opt)
  8. #define CHECK_RESULT(result) (result->type == R_not || result->type == R_opt)
  9. #define FREE_BASE(element, return_) do{if(element == NULL)goto return_;}while(0)
  10. #define FUNC_CORE struct Inter *inter, struct VarList *var_list
  11. #define FUNC_NT struct LinkValue *belong, struct Result *result, FUNC_CORE
  12. #define FUNC struct Statement *st, FUNC_NT
  13. #define CFUNC_CORE(var_list) inter, var_list
  14. #define CFUNC_NT(var_list, result, belong) belong, result, CFUNC_CORE(var_list)
  15. #define CFUNC(st, var_list, result, belong) st, CFUNC_NT(var_list, result, belong)
  16. #define CNEXT CFUNC(st, var_list, result, belong)
  17. #define CNEXT_NT CFUNC_NT(var_list, result, belong)
  18. #define O_FUNC struct Argument *arg, FUNC_NT
  19. #define CO_FUNC(arg, var_list, result, belong) arg, CFUNC_NT(var_list, result, belong)
  20. #define R_FUNC struct LinkValue *belong, FUNC_CORE
  21. #define CR_FUNC(belong, var_list) belong, CFUNC_CORE(var_list)
  22. #define FUNC_VOBJ struct LinkValue *belong, struct Result *result, struct Inter *inter, struct VarList *var_list, struct LinkValue *left, struct LinkValue *right, bool is_left
  23. #define CFUNC_VOBJ_LEFT(var_list, result, belong, left, right) belong, result, inter, var_list, left, right, true
  24. #define CFUNC_VOBJ(var_list, result, belong, left, right, is_left) belong, result, inter, var_list, left, right, is_left
  25. #define FUNC_VOBJR struct LinkValue *belong, struct Result *result, struct Inter *inter, struct VarList *var_list, struct LinkValue *left
  26. #define CFUNC_VOBJR(var_list, result, belong, left) belong, result, inter, var_list, left
  27. #define LINEFILE __LINE__, __FILE__
  28. #ifdef __linux__
  29. #define SEP "/"
  30. #define SEP_CH '/'
  31. #define SHARED_MARK ".so"
  32. #else
  33. #define SEP "\\"
  34. #define SEP_CH '\\'
  35. #define SHARED_MARK ".dll"
  36. #endif
  37. #define MD5_SIZE (16)
  38. #define MD5_STR_LEN (MD5_SIZE * 2)
  39. #define MD5_STRING (MD5_STR_LEN + 1)
  40. typedef int vsignal;
  41. typedef long long vint;
  42. typedef long double vdou;
  43. typedef unsigned long long vhashn;
  44. typedef unsigned long long fline;
  45. typedef int8_t vstruct;
  46. #endif //VIRTUALMATH___MACRO_H