• c语言解析 > C语言词法分析器构造实验报告
  • C语言词法分析器构造实验报告

    免费下载 下载该文档 文档格式:DOC   更新时间:2004-12-03   下载次数:0   点击次数:1
    文档基本属性
    文档语言:Simplified Chinese
    文档格式:doc
    文档作者:sophia
    关键词:
    主题:
    备注:
    点击这里显示更多文档属性
    C语言词法分析器构造实验报告
    02计算机(2) 2002374203 冯绍欣
    一,题目要求:
    完成一个C语言的词法分析器的构造.此词法分析器能识别附值语句,循环语句,条件语句,并能处理注释.
    二,设计方案:
    这个词法分析器分析的主要关键字有:main, int, float, char, if, else, for, while, do, switch, case, break; default.选择要分析的c文件,首先对其去掉注释和与空格处理,再根据字符的不同类型分析.
    1,全局数据结构:
    字符数组 set[ ]:存放从文件中读到的所有字符;
    str[ ]:存放经过注释处理和预空格处理的字符;
    strtoken[ ]:存放当前分析的字符;
    结构体 KEYTABLE:存放关键字及其标号;
    全局字符变量 ch:当前读入字符;
    全局整型变量 sr, to:数组str, strtoken 的指针.
    2,以层次图形式描述模块的组成及调用关系
    3,主要函数的设计要求(功能,参数,返回值):
    openfile:打开文件;
    GetChar:将下一个输入字符读到ch中,搜索指示器前移一字符位置;
    GetBC:检查ch中的字符是否为空白.若是,则调用GetChar直至ch中进入一个非空白字符;
    Concat:将ch中的字符连接到strtoken之后;
    IsLetter 和IsDigit:布尔函数过程,分别判断ch中的字符是否为字母和数字;
    Reserve:整型函数过程,对strtoken中的字符串查找关键字表,若是关键字则返回编码,否则返回-1;
    Retract:将搜索指示器回调一个字符位置,将ch置为空白字符;
    reflesh:刷新,把strtoken数组置为空;
    prearrange1:将注释部分置为空格;
    prearrange2:预处理空格,去掉多余空格;
    analysis:词法分析;
    main:主函数.
    4,状态转换图:
    字母或数字
    字母 非字母或数字
    数字 数字
    非数字
    字符a
    字符a
    字符b
    ' = '
    字符c
    字符a包括:= , & , | , + , --
    字符b包括:-- , , | , *
    字符c包括:, , : , ( , ) , { , } , [ , ] , ! ,# , % , " , / , * , + , -- , > , <, .
    三,源代码如下:

    下一页

  • 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
  • 免费下载 DOC格式下载
  • 您可能感兴趣的
  • c语言实例解析精粹  c语言真题及答案解析  c语言习题与解析下载  c语言错题解析  计算机c语言真题解析  c语言高级实例解析  2010年c语言试题解析  c语言程序解析  c语言命令lsla解析