请用c++编译一个词法分析程序
时间: 2023-10-20 14:07:41 浏览: 95
基于C++实现词法分析程序(编译原理实验)
5星 · 资源好评率100%
好的,以下是一个简单的词法分析程序的C代码:
```c
#include <stdio.h>
#include <ctype.h>
#define MAX_LEN 1000
int main() {
char input[MAX_LEN];
char token[MAX_LEN];
int i, j, k;
printf("Enter input string:\n");
fgets(input, MAX_LEN, stdin);
i = j = k = 0;
while (input[i] != '\0') {
if (isspace(input[i])) { // 忽略空格
i++;
continue;
}
else if (isalpha(input[i])) { // 处理标识符或关键字
while (isalnum(input[i])) {
token[k++] = input[i++];
}
token[k] = '\0';
printf("Identifier/Keyword: %s\n", token);
k = 0;
}
else if (isdigit(input[i])) { // 处理数字
while (isdigit(input[i])) {
token[k++] = input[i++];
}
token[k] = '\0';
printf("Number: %s\n", token);
k = 0;
}
else { // 处理运算符和其他符号
token[k++] = input[i++];
token[k] = '\0';
printf("Symbol: %s\n", token);
k = 0;
}
}
return 0;
}
```
这个程序可以在命令行中输入一个字符串,然后对其进行词法分析,将标识符、关键字、数字和符号分别输出。注意,这个程序只是一个简单的示例,实际的词法分析器要比这个复杂得多。
阅读全文