-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathToken.cpp
More file actions
53 lines (45 loc) · 1.69 KB
/
Copy pathToken.cpp
File metadata and controls
53 lines (45 loc) · 1.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include "Token.h"
#include <sstream>
using namespace std;
Token::Token(TokenType type, std::string description, int line) {
// TODO: initialize all member variables
// converts enums tokens to strings
this->type = type;
this->value = description;
this->line = line;
}
string Token::tokenToString(TokenType type){
switch(type){
case TokenType::COLON: return "COLON"; break;
case TokenType::COLON_DASH: return "COLON_DASH"; break;
case TokenType::COMMA: return "COMMA"; break;
case TokenType::PERIOD: return "PERIOD"; break;
case TokenType::Q_MARK: return "Q_MARK"; break;
case TokenType::LEFT_PAREN: return "LEFT_PAREN"; break;
case TokenType::RIGHT_PAREN: return "RIGHT_PAREN"; break;
case TokenType::MULTIPLY: return "MULTIPLY"; break;
case TokenType::ADD: return "ADD"; break;
case TokenType::SCHEMES: return "SCHEMES"; break;
case TokenType::FACTS: return "FACTS"; break;
case TokenType::RULES: return "RULES"; break;
case TokenType::QUERIES: return "QUERIES"; break;
case TokenType::ID: return "ID"; break;
case TokenType::STRING: return "STRING"; break;
case TokenType::COMMENT: return "COMMENT"; break;
case TokenType::UNDEFINED: return "UNDEFINED"; break;
case TokenType::_EOF: return "EOF"; break;
default: return "UNDEFINED"; break;
}
}
//get description funtion
string Token::getTokenValue(){
return this->value;
}
TokenType Token::getTokenType(){
return this->type;
}
string Token::toString() {
stringstream oss;
oss << "(" << tokenToString(type) << ",\"" << value << "\"," << line << ")";
return oss.str();
}