编绎技术上机报告之简单语法分析

编绎技术上机报告之简单语法分析|上机实验实习报告|计算机上机实习报告|简单的语法分析程序的设计

实验目的

      通过本次实验对语法分析的目的,语法分析

.实验内容:

            简单的语法分析程序的设计

.实验流程图

.实验原代码:

<程序>->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");}

.实验结果:若图片无法显示请联系站长QQ3249114

     

.实验总结

    语法分析程序一词法分析输出的符号串作为输入,在分析过程中检查这个符号串是否为该程序语言的句子.若是,则输出该句子的分析树;否则就表示源程序存在语法错误.它的主要任务是按照程序语言的语法规则,从由词法分析输出的源程序符号中识别出各类语法成分,同时进行语法检查,为语义分析和代码生成作准备.执行语法分析任务的程序叫语法分析程序.

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有