zoukankan      html  css  js  c++  java
  • 实验一实验报告

    实验一、词法分析实验

    专业:商业软件工程   姓名:郑杰升  学号;201506110235

    一、        实验目的

    编写一个关于词法分析的程序,加深对课堂教学内容的理解,提高词法分析方法的实践能力。

     

     

    二、        实验内容和要求

    要求:

    -输入:源程序字符串

    -输出:二元组(syn,token或sum)构成的序列。其中:syn为单词种别码;token为存放的单词自身字符串; sum为整型常数。

    三、        实验方法、步骤及结果测试

    1. 1.      源程序名:压缩包文件(rarzip)中源程序名词法分析.c

    可执行程序名:词法分析.exe

    1. 2.      原理分析及流程图

     

    1. 1.      主要程序段及其解释:

    实现主要功能的程序段,重要的是程序的注释解释。

    识别特定字符串:

    char *keys[6]={"begin","if","then","while","do","end"};

    ¦¦

    if(strcmp(token,keys[n])==0)

                /*extern int strcmp(const char *s1,const char * s2);

                比较两个字符串

                设这两个字符串为str1,str2,

                若str1==str2,则返回零;

                若str1>str2,则返回正数;

    若str1<str2,则返回负数。*/

            {

                syn=n+1;

                break;

            }

    识别两个组成的字符:

      case '<':

                token[m++]=ch;

                ch=prog[p++];

                if(ch=='=')

                {

                    syn=21;

                    token[m++]=ch;

                }

                else

                {

                    syn=20;

                    p--;

                }

            break;

    syn为字符对应值

    1. 2.      运行结果及分析

    输入正确字符会输出对应值,输入错误字符则会报错。

    四。        实验总结

    在报错时,由于在程序中将错误识别值设为10,所以在输出时会出现(0    10)这种情况,暂时没有想到办法更好的显示。

    并且如果错误字符串后连续输入多个连续字符会出现无法识别的情况,同样暂时无法解决。

     

     

  • 相关阅读:
    MATLAB相机标定转XMl代码
    摄像头录制及调试
    opencv之常用还是忘,那咋办嘛
    Python贪吃蛇
    Linux指令
    寻找最小矩形边框--OpenCv
    2019 C语言测试
    opencv之重映射
    指针的总计
    图像变换之霍夫变换
  • 原文地址:https://www.cnblogs.com/jiesheng/p/5958312.html
Copyright © 2011-2022 走看看