编绎技术上机报告之简单语法分析|上机实验实习报告|计算机上机实习报告|简单的语法分析程序的设计
实验目的
      通过本次实验对语法分析的目的,语法分析
二.实验内容:
            简单的语法分析程序的设计
三.实验流程图
四.实验原代码:
<程序>->begin<语句>end
<语句>-><赋值语句>|<条件语句>
<赋值语句>-><变量>:=<表达式>
<条件语句>->if<表达式>then<语句>
<表达式>-><变量>|<表达式>+<变量>
<变量>->x
#include<stdio.h>
#include<ctype.h>
char ch;
int T();
int F();
int P();
int E()
{
       int es=0;
       es=T();
       if(ch=='+')
       {
              ch=getchar();
              es=T();
              printf("+");
                     return (es);
       }
       else return(es);
}
int T()
{
       int es=0;
       es=F();
       if(ch=='*')
       {
              ch=getchar();
              es=P();
              printf("*");
              return(es);
       }
       else return(es);
}
int P()
{
       int es=0;
       es=F();
       if(ch=='=')
       {
              ch=getchar();
              es=T();
              printf("=");
              return(es);
       }
       else return(es);
}
int F()
{
       int es=0;
       if(ch=='(')
       {
              ch=getchar();
              es=E();
              if(ch!=')')return(3);
              else
              {
                     ch=getchar();
                     return(es);
              }
       }
              else
              {
                     if(isalpha(ch))
                     {
                            printf("%c",ch);
                            ch=getchar();
                            return(es);
                     }
                     else return(4);
              }
}
void main()
{
       int es=0;
       printf("请输入算术表达式:");
    ch=getchar();
       printf("算术表达式:");
       es=E();
       if(es==0)
              printf("\n翻译成功!\n");
       else
              printf("\n表达式有语法错误!\n");}
五.实验结果:若图片无法显示请联系站长QQ752018766
      
辣.实验总结
语法分析程序一词法分析输出的符号串作为输入,在分析过程中检查这个符号串是否为该程序语言的句子.若是,则输出该句子的分析树;否则就表示源程序存在语法错误.它的主要任务是按照程序语言的语法规则,从由词法分析输出的源程序符号中识别出各类语法成分,同时进行语法检查,为语义分析和代码生成作准备.执行语法分析任务的程序叫语法分析程序.