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)这种情况,暂时没有想到办法更好的显示。

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

     

     

  • 相关阅读:
    软件工程
    数字图像处理
    408笔记完
    408笔记完整考点篇
    解决CGLib动态代理测试不通过-Unable to load cache item
    支付宝支付与微信支付-系统化视频教程
    支付宝支付java版实战(含视频讲解)
    微信支付java版(含视频讲解)
    Java实现微信登录(网页授权)
    面试官问:实际生产中如何快速的测试接口(开发环境、测试环境、生产环境)
  • 原文地址:https://www.cnblogs.com/jiesheng/p/5958312.html
Copyright © 2011-2022 走看看