TokenType.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. #ifndef TOKENTYPE_H
  2. #define TOKENTYPE_H
  3. #include <iostream>
  4. #include <string>
  5. using namespace std;
  6. class TokenTypeClass
  7. {
  8. public:
  9. TokenTypeClass(string name, int level);
  10. TokenTypeClass(string name);
  11. TokenTypeClass(const TokenTypeClass& orig);
  12. virtual ~TokenTypeClass();
  13. string getName() const;
  14. int getLevel() const;
  15. private:
  16. string typeName;
  17. int level;
  18. };
  19. typedef const TokenTypeClass* const TokenType;
  20. std::ostream& operator<<(std::ostream& os, TokenType& c);
  21. namespace Tokens
  22. {
  23. extern TokenType FLOAT;
  24. extern TokenType TRUE;
  25. extern TokenType FALSE;
  26. extern TokenType TNULL;
  27. extern TokenType TEXT;
  28. extern TokenType LABEL;
  29. extern TokenType VAR;
  30. extern TokenType GLOBAL;
  31. extern TokenType INC;
  32. extern TokenType DEC;
  33. extern TokenType INVERT;
  34. extern TokenType BIT_INVERT;
  35. extern TokenType MUL;
  36. extern TokenType DIV;
  37. extern TokenType MOD;
  38. extern TokenType ADD;
  39. extern TokenType SUB;
  40. extern TokenType LEFT_SHIFT;
  41. extern TokenType RIGHT_SHIFT;
  42. extern TokenType LESS;
  43. extern TokenType LESS_EQUAL;
  44. extern TokenType GREATER;
  45. extern TokenType GREATER_EQUAL;
  46. extern TokenType EQUAL;
  47. extern TokenType NOT_EQUAL;
  48. extern TokenType BIT_AND;
  49. extern TokenType BIT_XOR;
  50. extern TokenType BIT_OR;
  51. extern TokenType AND;
  52. extern TokenType OR;
  53. extern TokenType SET;
  54. extern TokenType ADD_SET;
  55. extern TokenType SUB_SET;
  56. extern TokenType MUL_SET;
  57. extern TokenType DIV_SET;
  58. extern TokenType MOD_SET;
  59. extern TokenType LEFT_SHIFT_SET;
  60. extern TokenType RIGHT_SHIFT_SET;
  61. extern TokenType BIT_AND_SET;
  62. extern TokenType BIT_XOR_SET;
  63. extern TokenType BIT_OR_SET;
  64. extern TokenType COMMA;
  65. extern TokenType OPEN_BRACKET;
  66. extern TokenType CLOSE_BRACKET;
  67. extern TokenType OPEN_SQUARE_BRACKET;
  68. extern TokenType CLOSE_SQUARE_BRACKET;
  69. extern TokenType OPEN_CURVED_BRACKET;
  70. extern TokenType CLOSE_CURVED_BRACKET;
  71. extern TokenType SEMICOLON;
  72. extern TokenType IF;
  73. extern TokenType ELSE_IF;
  74. extern TokenType ELSE;
  75. extern TokenType FOR;
  76. extern TokenType WHILE;
  77. extern TokenType FUNCTION;
  78. extern TokenType BREAK;
  79. extern TokenType CONTINUE;
  80. extern TokenType RETURN;
  81. extern TokenType TRY;
  82. extern TokenType CATCH;
  83. extern TokenType END_OF_FILE;
  84. };
  85. #endif