UVA 12421-12423 | Mini-Lua 系列题解

Gavin

UVA12421 (Jiandan) Mua (I) - Lexical Analyzer

先实现一个可以撤销读入的 Reader 类,撤销功能会在 Token 匹配时用到。

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
class Reader{
private:
std::vector<char> program;
std::vector<char>::iterator it;

public:
char get(){
return *it;
}

bool prev(){
if(it==program.begin()){
return false;
}
it = std::prev(it);
return true;
}

void last(){
it = std::prev(program.end());
}

void next(){
if(it==std::prev(program.end())){
program.push_back(std::getchar());
last();
return;
}
it = std::next(it);
}

bool eof(){
return get()==EOF;
}

Reader(){
program.push_back('\0');
it = program.begin();
}
};
  • 标题: UVA 12421-12423 | Mini-Lua 系列题解
  • 作者: Gavin
  • 创建于 : 2025-08-20 01:05:00
  • 更新于 : 2025-08-24 23:38:52
  • 链接: https://gavin-blog.pages.dev/2025/uva-12421-12423-mini-lua-系列题解/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
目录
UVA 12421-12423 | Mini-Lua 系列题解