词法分析器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了词法分析器相关的知识,希望对你有一定的参考价值。

#include<stdio.h>
#include<stdlib.h>
void main()
{
int i;
char s[10];
printf("词法分析器输出类型说明:");
printf("1.保留字\n");
printf("2.运算符\n");
printf("3.分界符\n");
printf("4.常数\n");
printf("5.标识符\n\n\n\n");
printf("请输入字符串:");
scanf("%s",&s);
for(i=0;i<10;i++)
{
if(s[i]==‘a‘&&s[i+1]==‘u‘&&s[i+2]==‘t‘&&s[i+3]==‘o‘)
printf("1, auto\n");
else if(s[i]==‘i‘&&s[i+1]==‘n‘&&s[i+2]==‘t‘)
printf("1, int\n");
else if(s[i]==‘c‘&&s[i+1]==‘h‘&&s[i+2]==‘a‘&&s[i+3]==‘r‘)
printf("1, char\n");
else if(s[i]==‘w‘&&s[i+1]==‘h‘&&s[i+2]==‘i‘&&s[i+3]==‘l‘&&s[i+4]==‘e‘)
printf("1, while\n");
else if(s[i]==‘d‘&&s[i+1]==‘o‘)
printf("1, do\n");
else if(s[i]==‘f‘&&s[i+1]==‘o‘&&s[i+2]==‘r‘)
printf("1, for\n");
else if(s[i]==‘g‘&&s[i+1]==‘o‘&&s[i+2]==‘t‘&&s[i+3]==‘o‘)
printf("1, goto*\n");
else if(s[i]==‘-‘)
printf("2, -\n");
else if(s[i]==‘*‘)
printf("2, *\n");
else if(s[i]==‘/‘)
printf("2, /\n");
else if(s[i]==‘+‘)
printf("2, +\n");
else if(s[i]==‘<‘)
printf("2, <\n");
else if(s[i]==‘>‘)
printf("2, >\n");
else if(s[i]==‘;‘)
printf("3, ;\n");
else if(s[i]==‘=‘)
printf("3, =\n");
else if(s[i]==‘,‘)
printf("3, ,\n");
else if(s[i]==‘0‘)
printf("4, 0\n");
else if(s[i]==‘1‘)
printf("4, 1\n");
else if(s[i]==‘2‘)
printf("4, 2\n");
else if(s[i]==‘3‘)
printf("4, 3\n");
else if(s[i]==‘4‘)
printf("4, 4\n");
else if(s[i]==‘5‘)
printf("4, 5\n");
else if(s[i]==‘6‘)
printf("4, 6\n");
else if(s[i]==‘7‘)
printf("4, 7\n");
else if(s[i]==‘8‘)
printf("4, 8\n");
else if(s[i]==‘9‘)
printf("4, 9\n");
else if(s[i]==‘10‘)
printf("4, 10\n");
else if(s[i]==‘a‘)
printf("5, a\n");
else if(s[i]==‘b‘)
printf("5, b\n");
}
}

以上是关于词法分析器的主要内容,如果未能解决你的问题,请参考以下文章

编译原理词法分析

Second-词法分析

词法分析器

三词法分析

词法分析

词法分析