TokenType.cpp 4.8 KB

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