电脑技术吧

会员投稿 会员登录 会员注册 网站公告:
搜索: 您现在的位置主页 > C语言 亚博ios下载地址 > C语言基础 > 正文

词法分析器--(2)

作者:admin    文章来源:互联网 电脑技术吧     点击数:    更新时间:2011-09-27
收藏】 【挑错】 【推荐】 【打印

char numberprocess(char ch)//数字处理程序
{
int i=-1;
char num[20];
while (isdigit(ch)!=0)
{
num[ i]=ch;
ch=fgetc(fp);
}
if(isalpha(ch)!=0)
{
while(isspace(ch)==0)
{
num[ i]=ch;
ch=fgetc(fp);
}
num[i 1]='\0';
printf("错误!非法标识符:%s\n",num);
goto u;
}
num[i 1]='\0';
printf("\n",num);
//strcat(num,"\n");
//fputs(num,outp);
u: return(ch);
}

copyright dedecms

//////////////////////////////////////////////////////////////////////////////////////////////

本文来自织梦

char otherprocess(char ch)
{
int i=-1;
char other[20];
if (isspace(ch)!=0)
{
ch=fgetc(fp);
goto u;
}
while ((isspace(ch)==0)&&(isalnum(ch)==0))
{
other[ i]=ch;
ch=fgetc(fp);
}
other[i 1]='\0';
if (search(other,2))
printf("\n",other);
else
if (search(other,3))
printf("<%s,->\n",other);
else
if (search(other,4))
printf("<%s,->\n",other);
else
printf("错误!非法字符:%s\n",other);
u: return (ch);
} 本文来自织梦


/////////////////////////////////////////////////////////////////////////////////////////////
void main ()
{
char str,c;
printf("**********************************词法分析器************************************\n");
//outp=fopen("二元式表.txt","w");
if ((fp=fopen("源程序.txt","r"))==NULL)
printf("源程序无法打开!\n");
else
{
str =fgetc(fp);
while (str!=EOF)
{
if (isalpha(str)!=0)
str=letterprocess(str);
else
{
if (isdigit(str)!=0)
str=numberprocess(str);
else
str=otherprocess(str);
}

};
printf("词法分析结束,谢谢使用!\n");
printf("点任意键退出!\n");
}
c=getch();
}

织梦好,好织梦

本文来自织梦

发表评论 请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名:密码:新注册
评论总数: [ 查看全部 ] 网友评论
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 在线帮助