给我一个使用C语言编写一个词法分析器的例子
时间: 2024-05-08 07:16:48 浏览: 101
以下是一个简单的使用C语言编写的词法分析器的例子:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char input[100];
printf("请输入要分析的字符串:\n");
fgets(input, 100, stdin);
int i = 0;
while (input[i] != '\0') {
if (isdigit(input[i])) {
printf("数字 ");
while (isdigit(input[i])) {
printf("%c", input[i]);
i++;
}
printf("\n");
} else if (isalpha(input[i])) {
printf("标识符 ");
while (isalnum(input[i])) {
printf("%c", input[i]);
i++;
}
printf("\n");
} else if (ispunct(input[i])) {
printf("符号 %c\n", input[i]);
i++;
} else {
i++;
}
}
return 0;
}
```
该程序接受用户输入的字符串,然后遍历该字符串并分析每个字符。如果字符是数字,则打印“数字”并输出数字的完整序列。如果字符是字母,则打印“标识符”并输出该标识符的完整序列。如果字符是标点符号,则打印“符号”并输出该符号的值。如果字符不属于这三个类别,则忽略它并继续遍历。
阅读全文