词法分析+C+++实现
时间: 2023-12-15 13:06:15 浏览: 34
词法分析是编译原理中的一个重要概念,它是将源代码分解成一个个单词的过程。C++是一种面向对象的编程语言,可以用来实现词法分析器。以下是一个简单的C++词法分析器的实现:
```cpp
#include <iostream>
#include <string>
#include <vector>
#include <regex>
using namespace std;
int main() {
string code = "int main() { return 0; }";
vector<string> tokens;
regex pattern("[a-zA-Z]+|[0-9]+|\\+|\\-|\\*|\\/|\\(|\\)|\\{|\\}|\\;");
sregex_iterator it(code.begin(), code.end(), pattern);
sregex_iterator end;
while (it != end) {
tokens.push_back(it->str());
++it;
}
for (auto token : tokens) {
cout << token << endl;
}
return 0;
}
```
上述代码中,我们使用了C++11中的正则表达式库regex来匹配代码中的单词。我们定义了一个正则表达式pattern,用来匹配代码中的标识符、数字和运算符等。然后我们使用sregex_iterator来遍历整个代码字符串,将匹配到的单词存储在一个vector中,并最终输出这些单词。