Tokenizer.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. #ifndef TOKENIZER_H
  2. #define TOKENIZER_H
  3. #include <stdbool.h>
  4. #include <stdint.h>
  5. typedef enum Token {
  6. T_INT,
  7. T_FLOAT,
  8. T_NULL,
  9. T_TRUE,
  10. T_FALSE,
  11. T_ADD,
  12. T_SUB,
  13. T_MUL,
  14. T_DIV,
  15. T_MOD,
  16. T_LESS,
  17. T_LESS_EQUAL,
  18. T_GREATER,
  19. T_GREATER_EQUAL,
  20. T_EQUAL,
  21. T_NOT_EQUAL,
  22. T_NOT,
  23. T_AND,
  24. T_OR,
  25. T_BIT_NOT,
  26. T_BIT_AND,
  27. T_BIT_OR,
  28. T_BIT_XOR,
  29. T_LEFT_SHIFT,
  30. T_RIGHT_SHIFT,
  31. T_SET,
  32. T_ADD_SET,
  33. T_SUB_SET,
  34. T_MUL_SET,
  35. T_DIV_SET,
  36. T_MOD_SET,
  37. T_BIT_AND_SET,
  38. T_BIT_OR_SET,
  39. T_BIT_XOR_SET,
  40. T_LEFT_SHIFT_SET,
  41. T_RIGHT_SHIFT_SET,
  42. T_INCREMENT,
  43. T_DECREMENT,
  44. T_LITERAL,
  45. T_PRINT,
  46. T_IF,
  47. T_ELSE,
  48. T_WHILE,
  49. T_FOR,
  50. T_BREAK,
  51. T_FUNCTION,
  52. T_RETURN,
  53. T_COMMA,
  54. T_SEMICOLON,
  55. T_OPEN_BRACKET,
  56. T_CLOSE_BRACKET,
  57. T_OPEN_CURVED_BRACKET,
  58. T_CLOSE_CURVED_BRACKET,
  59. T_END
  60. } Token;
  61. typedef int16_t int16;
  62. bool tTokenize(const char* path);
  63. const char* tGetError();
  64. void tResetReader();
  65. Token tPeekToken();
  66. Token tReadToken();
  67. bool tReadInt(int* i);
  68. bool tReadInt16(int16* i);
  69. bool tReadFloat(float* f);
  70. const char* tReadString();
  71. int tGetMarker();
  72. void tResetToMarker(int marker);
  73. const char* tGetTokenName(Token token);
  74. void tPrint();
  75. #endif