https://github.com/leozhang1/QtInterpreter这个链接 token.h代码 展示
时间: 2023-09-28 14:11:35 浏览: 149
这个个人学习 的Qt的代码
以下是 `token.h` 的代码:
```c++
#ifndef TOKEN_H
#define TOKEN_H
#include <string>
enum class TokenType {
// Single-character tokens.
LEFT_PAREN, RIGHT_PAREN, LEFT_BRACE, RIGHT_BRACE,
COMMA, DOT, MINUS, PLUS, SEMICOLON, SLASH, STAR,
// One or two character tokens.
BANG, BANG_EQUAL,
EQUAL, EQUAL_EQUAL,
GREATER, GREATER_EQUAL,
LESS, LESS_EQUAL,
// Literals.
IDENTIFIER, STRING, NUMBER,
// Keywords.
AND, CLASS, ELSE, FALSE, FUN, FOR, IF, NIL, OR,
PRINT, RETURN, SUPER, THIS, TRUE, VAR, WHILE,
END_OF_FILE
};
class Token {
public:
Token(TokenType type, std::string lexeme, int line)
: type(type), lexeme(std::move(lexeme)), line(line) {}
std::string toString() const;
TokenType type;
std::string lexeme;
int line;
};
#endif // TOKEN_H
```
这是一个简单的词法分析器的 Token 类定义。Token 表示源代码中的一个标记,包括标记类型,词法单元和行号。其中 TokenType 枚举了所有可能的标记类型,Token 类包含了一个构造函数和一个 toString 方法用于输出 Token 信息。
阅读全文