TokenType.cpp 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. #include "TokenType.h"
  2. std::string TokenTypeUtils::getName(TokenType tt) {
  3. switch(tt) {
  4. case NUMBER: return "number";
  5. case STRING: return "string";
  6. case LITERAL: return "literal";
  7. case LABEL: return "label";
  8. case TRUE: return "true";
  9. case FALSE: return "false";
  10. case NULL_TOKEN: return "null";
  11. case OPEN_BRACKET: return "(";
  12. case CLOSE_BRACKET: return ")";
  13. case OPEN_SQUARE_BRACKET: return "[";
  14. case CLOSE_SQUARE_BRACKET: return "]";
  15. case OPEN_CURVED_BRACKET: return "{";
  16. case CLOSE_CURVED_BRACKET: return "}";
  17. case SEMICOLON: return ";";
  18. case COMMA: return ",";
  19. case INC: return "++";
  20. case DEC: return "--";
  21. case INVERT: return "!";
  22. case BIT_INVERT: return "~";
  23. case MUL: return "*";
  24. case DIV: return "/";
  25. case MOD: return "%";
  26. case ADD: return "+";
  27. case SUB: return "-";
  28. case ADD_SET: return "+=";
  29. case SUB_SET: return "-=";
  30. case MUL_SET: return "*=";
  31. case DIV_SET: return "/=";
  32. case MOD_SET: return "%=";
  33. case LEFT_SHIFT: return "<<";
  34. case RIGHT_SHIFT: return ">>";
  35. case LEFT_SHIFT_SET: return "<<=";
  36. case RIGHT_SHIFT_SET: return ">>=";
  37. case BIT_AND_SET: return "&=";
  38. case BIT_XOR_SET: return "^=";
  39. case BIT_OR_SET: return "|=";
  40. case LESS: return "<";
  41. case LESS_EQUAL: return "<=";
  42. case GREATER: return ">";
  43. case GREATER_EQUAL: return ">=";
  44. case EQUAL: return "==";
  45. case NOT_EQUAL: return "!=";
  46. case BIT_AND: return "&";
  47. case BIT_XOR: return "^";
  48. case BIT_OR: return "|";
  49. case AND: return "&&";
  50. case OR: return "||";
  51. case SET: return "=";
  52. case IF: return "if";
  53. case ELSE: return "else";
  54. case ELSEIF: return "else if";
  55. case WHILE: return "while";
  56. case TRY: return "try";
  57. case CATCH: return "catch";
  58. case FOR: return "for";
  59. case FUNCTION: return "function";
  60. case BREAK: return "break";
  61. case CONTINUE: return "continue";
  62. case RETURN: return "return";
  63. case EOF_TOKEN: return "end of file";
  64. }
  65. return "Unknown TokenType";
  66. }
  67. std::string TokenTypeUtils::getEnumName(TokenType tt) {
  68. switch(tt) {
  69. case NUMBER: return "NUMBER";
  70. case STRING: return "STRING";
  71. case LITERAL: return "LITERAL";
  72. case LABEL: return "LABEL";
  73. case TRUE: return "TRUE";
  74. case FALSE: return "FALSE";
  75. case NULL_TOKEN: return "NULL_TOKEN";
  76. case OPEN_BRACKET: return "OPEN_BRACKET";
  77. case CLOSE_BRACKET: return "CLOSE_BRACKET";
  78. case OPEN_SQUARE_BRACKET: return "OPEN_SQUARE_BRACKET";
  79. case CLOSE_SQUARE_BRACKET: return "CLOSE_SQUARE_BRACKET";
  80. case OPEN_CURVED_BRACKET: return "OPEN_CURVED_BRACKET";
  81. case CLOSE_CURVED_BRACKET: return "CLOSE_CURVED_BRACKET";
  82. case SEMICOLON: return "SEMICOLON";
  83. case COMMA: return "COMMA";
  84. case INC: return "INC";
  85. case DEC: return "DEC";
  86. case INVERT: return "INVERT";
  87. case BIT_INVERT: return "BIT_INVERT";
  88. case MUL: return "MUL";
  89. case DIV: return "DIV";
  90. case MOD: return "MOD";
  91. case ADD: return "ADD";
  92. case SUB: return "SUB";
  93. case ADD_SET: return "ADD_SET";
  94. case SUB_SET: return "SUB_SET";
  95. case MUL_SET: return "MUL_SET";
  96. case DIV_SET: return "DIV_SET";
  97. case MOD_SET: return "MOD_SET";
  98. case LEFT_SHIFT: return "LEFT_SHIFT";
  99. case RIGHT_SHIFT: return "RIGHT_SHIFT";
  100. case LEFT_SHIFT_SET: return "LEFT_SHIFT_SET";
  101. case RIGHT_SHIFT_SET: return "RIGHT_SHIFT_SET";
  102. case BIT_AND_SET: return "BIT_AND_SET";
  103. case BIT_XOR_SET: return "BIT_XOR_SET";
  104. case BIT_OR_SET: return "BIT_OR_SET";
  105. case LESS: return "LESS";
  106. case LESS_EQUAL: return "LESS_EQUAL";
  107. case GREATER: return "GREATER";
  108. case GREATER_EQUAL: return "GREATER_EQUAL";
  109. case EQUAL: return "EQUAL";
  110. case NOT_EQUAL: return "NOT_EQUAL";
  111. case BIT_AND: return "BIT_AND";
  112. case BIT_XOR: return "BIT_XOR";
  113. case BIT_OR: return "BIT_OR";
  114. case AND: return "AND";
  115. case OR: return "OR";
  116. case SET: return "SET";
  117. case IF: return "IF";
  118. case ELSE: return "ELSE";
  119. case ELSEIF: return "ELSEIF";
  120. case WHILE: return "WHILE";
  121. case TRY: return "TRY";
  122. case CATCH: return "CATCH";
  123. case FOR: return "FOR";
  124. case FUNCTION: return "FUNCTION";
  125. case BREAK: return "BREAK";
  126. case CONTINUE: return "CONTINUE";
  127. case RETURN: return "RETURN";
  128. case EOF_TOKEN: return "EOF";
  129. }
  130. return "UNKNOWN";
  131. }