53 lines
1.1 KiB
C++
53 lines
1.1 KiB
C++
#include "Token.h"
|
|
|
|
Token Token::Invalid = Token(Token::Kind::INVALID, "");
|
|
|
|
Token::Token(Kind kind, std::string lexme): kind(kind), lexme(lexme) {
|
|
}
|
|
|
|
Token::Kind Token::getKind() {
|
|
return kind;
|
|
}
|
|
|
|
std::string Token::getLexme() {
|
|
return lexme;
|
|
}
|
|
|
|
bool Token::operator==(Token const& other) {
|
|
return kind == other.kind;
|
|
}
|
|
|
|
bool Token::operator!=(Token const& other) {
|
|
return kind != other.kind;
|
|
}
|
|
|
|
std::string Token::toString() {
|
|
switch (kind) {
|
|
case PLUS:
|
|
return "PLUS";
|
|
case MINUS:
|
|
return "MINUS";
|
|
case STAR:
|
|
return "STAR";
|
|
case SLASH:
|
|
return "SLASH";
|
|
case PERCENT:
|
|
return "PERCENT";
|
|
case LEFT_PAREN:
|
|
return "LEFT_PARENT";
|
|
case RIGHT_PAREN:
|
|
return "RIGHT_PAREN";
|
|
case DOT:
|
|
return "DOT";
|
|
case COMMA:
|
|
return "COMMA";
|
|
case INTEGER:
|
|
return "INTEGER";
|
|
case NEW_LINE:
|
|
return "NEW_LINE";
|
|
case END:
|
|
return "END";
|
|
case INVALID:
|
|
return "INVALID";
|
|
}
|
|
} |