run.h 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #ifndef VIRTUALMATH_RUN_H
  2. #define VIRTUALMATH_RUN_H
  3. #include "__macro.h"
  4. enum StatementInfoStatus;
  5. struct Argument;
  6. typedef struct Result Result;
  7. typedef enum ResultType ResultType;
  8. typedef struct LinkValue LinkValue;
  9. typedef struct Value Value;
  10. typedef struct Statement Statement;
  11. typedef struct StatementList StatementList;
  12. typedef struct Inter Inter;
  13. typedef struct VarList VarList;
  14. typedef struct Parameter Parameter;
  15. typedef struct Argument Argument;
  16. typedef struct DecorationStatement DecorationStatement;
  17. typedef ResultType (*VarInfo)(char **name, int *times, INTER_FUNCTIONSIG);
  18. ResultType globalIterStatement(Result *result, Inter *inter, Statement *st);
  19. bool operationSafeInterStatement(INTER_FUNCTIONSIG);
  20. bool ifBranchSafeInterStatement(INTER_FUNCTIONSIG);
  21. bool functionSafeInterStatement(INTER_FUNCTIONSIG);
  22. bool blockSafeInterStatement(INTER_FUNCTIONSIG);
  23. bool cycleBranchSafeInterStatement(INTER_FUNCTIONSIG);
  24. bool tryBranchSafeInterStatement(INTER_FUNCTIONSIG);
  25. Statement *checkLabel(Statement *base, char *label);
  26. ResultType operationStatement(INTER_FUNCTIONSIG);
  27. ResultType setClass(INTER_FUNCTIONSIG);
  28. ResultType setFunction(INTER_FUNCTIONSIG);
  29. ResultType setLambda(INTER_FUNCTIONSIG);
  30. ResultType callBack(INTER_FUNCTIONSIG);
  31. ResultType elementSlice(INTER_FUNCTIONSIG);
  32. ResultType callBackCore(LinkValue *function_value, Argument *arg, long line, char *file, INTER_FUNCTIONSIG_NOT_ST);
  33. ResultType callBackCorePt(LinkValue *function_value, Parameter *pt, long line, char *file, INTER_FUNCTIONSIG_NOT_ST);
  34. ResultType callClass(LinkValue *class_value, Argument *arg, long int line, char *file, INTER_FUNCTIONSIG_NOT_ST);
  35. ResultType callObject(LinkValue *object_value, Argument *arg, long int line, char *file, INTER_FUNCTIONSIG_NOT_ST);
  36. ResultType callVMFunction(LinkValue *function_value, Argument *arg, long int line, char *file, INTER_FUNCTIONSIG_NOT_ST);
  37. ResultType callCFunction(LinkValue *function_value, Argument *arg, long int line, char *file, INTER_FUNCTIONSIG_NOT_ST);
  38. ResultType setDecoration(DecorationStatement *ds, LinkValue *value, INTER_FUNCTIONSIG_NOT_ST);
  39. ResultType getVar(INTER_FUNCTIONSIG, VarInfo var_info);
  40. ResultType getBaseValue(INTER_FUNCTIONSIG);
  41. ResultType getList(INTER_FUNCTIONSIG);
  42. ResultType getDict(INTER_FUNCTIONSIG);
  43. ResultType setDefault(INTER_FUNCTIONSIG);
  44. ResultType ifBranch(INTER_FUNCTIONSIG);
  45. ResultType whileBranch(INTER_FUNCTIONSIG);
  46. ResultType forBranch(INTER_FUNCTIONSIG);
  47. ResultType withBranch(INTER_FUNCTIONSIG);
  48. ResultType tryBranch(INTER_FUNCTIONSIG);
  49. ResultType breakCycle(INTER_FUNCTIONSIG);
  50. ResultType continueCycle(INTER_FUNCTIONSIG);
  51. ResultType regoIf(INTER_FUNCTIONSIG);
  52. ResultType restartCode(INTER_FUNCTIONSIG);
  53. ResultType returnCode(INTER_FUNCTIONSIG);
  54. ResultType yieldCode(INTER_FUNCTIONSIG);
  55. ResultType raiseCode(INTER_FUNCTIONSIG);
  56. ResultType assertCode(INTER_FUNCTIONSIG);
  57. ResultType gotoLabel(INTER_FUNCTIONSIG);
  58. ResultType runLabel(INTER_FUNCTIONSIG);
  59. ResultType includeFile(INTER_FUNCTIONSIG);
  60. ResultType importFile(INTER_FUNCTIONSIG);
  61. ResultType fromImportFile(INTER_FUNCTIONSIG);
  62. ResultType pointAss(Statement *name, LinkValue *value, INTER_FUNCTIONSIG_NOT_ST);
  63. ResultType listAss(Statement *name, LinkValue *value, INTER_FUNCTIONSIG_NOT_ST);
  64. ResultType assCore(Statement *name, LinkValue *value, bool check_aut, INTER_FUNCTIONSIG_NOT_ST);
  65. ResultType downAss(Statement *name, LinkValue *value, INTER_FUNCTIONSIG_NOT_ST);
  66. ResultType varAss(Statement *name, LinkValue *value, bool check_aut, INTER_FUNCTIONSIG_NOT_ST);
  67. #endif //VIRTUALMATH_RUN_H