TokenType.cpp 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. #include "TokenType.h"
  2. #include <iostream>
  3. TokenTypeClass::TokenTypeClass(string name, int level) : typeName(name)
  4. {
  5. this->level = level;
  6. }
  7. TokenTypeClass::TokenTypeClass(string name) : typeName(name)
  8. {
  9. level = -1;
  10. }
  11. TokenTypeClass::TokenTypeClass(const TokenTypeClass& orig)
  12. {
  13. }
  14. TokenTypeClass::~TokenTypeClass()
  15. {
  16. }
  17. string TokenTypeClass::getName() const
  18. {
  19. return typeName;
  20. }
  21. int TokenTypeClass::getLevel() const
  22. {
  23. return level;
  24. }
  25. std::ostream& operator<<(std::ostream& os, TokenType& c)
  26. {
  27. return os << c->getName();
  28. }
  29. namespace Tokens
  30. {
  31. TokenType FLOAT = new const TokenTypeClass("float");
  32. TokenType TRUE = new const TokenTypeClass("true");
  33. TokenType FALSE = new const TokenTypeClass("false");
  34. TokenType TNULL = new const TokenTypeClass("null");
  35. TokenType TEXT = new const TokenTypeClass("String");
  36. TokenType LABEL = new const TokenTypeClass("Label");
  37. TokenType VAR = new const TokenTypeClass("var");
  38. TokenType GLOBAL = new const TokenTypeClass("$");
  39. TokenType INC = new const TokenTypeClass("++", 2);
  40. TokenType DEC = new const TokenTypeClass("--", 2);
  41. TokenType INVERT = new const TokenTypeClass("!", 2);
  42. TokenType BIT_INVERT = new const TokenTypeClass("~", 2);
  43. TokenType MUL = new const TokenTypeClass("*", 3);
  44. TokenType DIV = new const TokenTypeClass("/", 3);
  45. TokenType MOD = new const TokenTypeClass("%", 3);
  46. TokenType ADD = new const TokenTypeClass("+", 4);
  47. TokenType SUB = new const TokenTypeClass("-", 4);
  48. TokenType LEFT_SHIFT = new const TokenTypeClass("<<", 5);
  49. TokenType RIGHT_SHIFT = new const TokenTypeClass(">>", 5);
  50. TokenType LESS = new const TokenTypeClass("<", 6);
  51. TokenType LESS_EQUAL = new const TokenTypeClass("<=", 6);
  52. TokenType GREATER = new const TokenTypeClass(">", 6);
  53. TokenType GREATER_EQUAL = new const TokenTypeClass(">=", 6);
  54. TokenType EQUAL = new const TokenTypeClass("==", 7);
  55. TokenType NOT_EQUAL = new const TokenTypeClass("!=", 7);
  56. TokenType BIT_AND = new const TokenTypeClass("&", 8);
  57. TokenType BIT_XOR = new const TokenTypeClass("^", 9);
  58. TokenType BIT_OR = new const TokenTypeClass("|", 10);
  59. TokenType AND = new const TokenTypeClass("&&", 11);
  60. TokenType OR = new const TokenTypeClass("||", 12);
  61. TokenType SET = new const TokenTypeClass("=", 14);
  62. TokenType ADD_SET = new const TokenTypeClass("+=", 14);
  63. TokenType SUB_SET = new const TokenTypeClass("-=", 14);
  64. TokenType MUL_SET = new const TokenTypeClass("*=", 14);
  65. TokenType DIV_SET = new const TokenTypeClass("/=", 14);
  66. TokenType MOD_SET = new const TokenTypeClass("%=", 14);
  67. TokenType LEFT_SHIFT_SET = new const TokenTypeClass("<<=", 14);
  68. TokenType RIGHT_SHIFT_SET = new const TokenTypeClass(">>=", 14);
  69. TokenType BIT_AND_SET = new const TokenTypeClass("&=", 14);
  70. TokenType BIT_XOR_SET = new const TokenTypeClass("^=", 14);
  71. TokenType BIT_OR_SET = new const TokenTypeClass("|=", 14);
  72. TokenType COMMA = new const TokenTypeClass(",", 15);
  73. TokenType OPEN_BRACKET = new const TokenTypeClass("(", 1);
  74. TokenType CLOSE_BRACKET = new const TokenTypeClass(")", 1);
  75. TokenType OPEN_SQUARE_BRACKET = new const TokenTypeClass("[", 1);
  76. TokenType CLOSE_SQUARE_BRACKET = new const TokenTypeClass("]", 1);
  77. TokenType OPEN_CURVED_BRACKET = new const TokenTypeClass("{");
  78. TokenType CLOSE_CURVED_BRACKET = new const TokenTypeClass("}");
  79. TokenType SEMICOLON = new const TokenTypeClass(";");
  80. TokenType IF = new const TokenTypeClass("if");
  81. TokenType ELSE_IF = new const TokenTypeClass("else if");
  82. TokenType ELSE = new const TokenTypeClass("else");
  83. TokenType FOR = new const TokenTypeClass("for");
  84. TokenType WHILE = new const TokenTypeClass("while");
  85. TokenType FUNCTION = new const TokenTypeClass("function");
  86. TokenType BREAK = new const TokenTypeClass("break");
  87. TokenType CONTINUE = new const TokenTypeClass("continue");
  88. TokenType RETURN = new const TokenTypeClass("return");
  89. TokenType TRY = new const TokenTypeClass("try");
  90. TokenType CATCH = new const TokenTypeClass("catch");
  91. TokenType END_OF_FILE = new const TokenTypeClass("end_of_file");
  92. };