91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 845B
    文件類型: .rar
    金幣: 2
    下載: 1 次
    發布日期: 2021-08-04
  • 語言: C/C++
  • 標簽:

資源簡介

一個用C語言寫的語法分析程序:通過設計、編制、調試一個典型的語法分析程序,實現對詞法分析程序所提供 的單詞序列進行語法檢查和結構分析,進一步掌握常用的語法分析方法。

資源截圖

代碼片段和文件信息

#include
#include
#include
int?change(char?n)
{
????return?n-48;
}
int?find(char?nchar?m[])
{
????int?i=0;
????while(m[i]!=n)i++;
????return?i;
}
int?main()
{
????char?in[20]sign[30]avt[]={‘+‘‘*‘‘(‘‘)‘‘#‘};
????int?f[5][5]={{1-1-111}{11-111}{-1-1-102}{11211}{-1-1-120}};
????int?num[30]intop=-1tp=-1bsum;
????sign[++top]=‘#‘;
l3:
system(“cls“);
????printf(“請輸入算式:(退出請按q鍵)\n“);
????for(i=0;i<20;i++)
????in[i]=‘\0‘;
????scanf(“%s“in);
????if(strcmp(in“q“)==0)exit(0);
????strcat(in“#“);
????for(i=0;i????{
????????a=in[i];
????????if(a>=‘0‘&&a<=‘9‘)
????????{
????????????b=change(a);
????????????num[++tp]=b;
????????}
????????else?if(a==‘+‘||a==‘*‘||a==‘(‘||a==‘)‘||a==‘#‘)
????????{
l1:
????????????if(f[find(sign[top]vt)][find(avt)]==-1)
????????????{
????????????????sign[++top]=a;
????????????}
????????????else?if(f[find(sign[top]vt)][find(avt)]==2)
????????????{
???????????? ?printf(“有錯誤的算式!\n“);
?????????????????system(“pause“);
?????????????????exit(0);
????????????}
????????????else
????????????{
????????????????if(a==‘)‘)
????????????????{
???????????????? if(sign[top]==‘(‘)
{
top--;
continue;
}
????????????????}
????????????????if(sign[top]==‘*‘)
????????????????{
????????????????????sum=num[tp--];
????????????????????sum*=num[tp--];
????????????????????top--;
????????????????????num[++tp]=sum;
????????????????????if(a!=‘#‘&&a!=‘)‘)sign[++top]=a;
????????????????????else?goto?l1;
????????????????}
????????????????else?if(sign[top]==‘+‘)
????????????????{
????????????????????sum=num[tp--];
????????????????????sum+=num[tp--];
????????????????????top--;
????????????????????num[++tp]=sum;
????????????????????if(a!=‘#‘&&a!=‘)‘)sign[++top]=a;
????????????????????else?goto?l1;
????????????????}
????????????????else?if(a==‘#‘)
????????????????{
????????????????????sum=num[tp--];
????????????????}
????????????}
????????}
????????else
????????{
????????????printf(“錯誤的字符或符號!\n位置:%d錯誤的符號:%c\n“i+1a);
????????????system(“pause“);
???????????goto??l1;
????????}
}
???printf(“sum=%d\n“sum);
???system(“pause“);
???goto?l3;
?}



?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????2293??2010-01-19?12:30??語法分析.cpp

-----------?---------??----------?-----??----

?????????????????2293????????????????????1


評論

共有 條評論

相關資源