TokenType.cpp 3.2 KB

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