Operation.h 893 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #ifndef OPERATION_H
  2. #define OPERATION_H
  3. #define NUMBER_OPERATION(name) OP_##name##_INT, OP_##name##_FLOAT
  4. typedef enum Operation {
  5. OP_NOTHING,
  6. NUMBER_OPERATION(PUSH),
  7. OP_PUSH_TRUE,
  8. OP_PUSH_FALSE,
  9. NUMBER_OPERATION(ADD),
  10. NUMBER_OPERATION(SUB),
  11. NUMBER_OPERATION(MUL),
  12. NUMBER_OPERATION(DIV),
  13. OP_MOD_INT,
  14. NUMBER_OPERATION(INVERT_SIGN),
  15. NUMBER_OPERATION(LESS),
  16. NUMBER_OPERATION(GREATER),
  17. NUMBER_OPERATION(EQUAL),
  18. OP_EQUAL_BOOL,
  19. OP_NOT,
  20. OP_AND,
  21. OP_OR,
  22. OP_BIT_NOT,
  23. OP_BIT_AND,
  24. OP_BIT_OR,
  25. OP_BIT_XOR,
  26. OP_LEFT_SHIFT,
  27. OP_RIGHT_SHIFT,
  28. NUMBER_OPERATION(PRINT),
  29. OP_PRINT_BOOL,
  30. OP_LINE,
  31. OP_GOTO,
  32. OP_IF_GOTO,
  33. OP_PEEK_FALSE_GOTO,
  34. OP_PEEK_TRUE_GOTO,
  35. OP_GOSUB,
  36. OP_RETURN,
  37. OP_RETURN_INT,
  38. OP_RETURN_BOOL,
  39. OP_RESERVE,
  40. OP_LOAD_INT,
  41. OP_STORE_INT,
  42. } Operation;
  43. #endif