博客
关于我
c之词法分析程序
阅读量:768 次
发布时间:2019-03-24

本文共 589 字,大约阅读时间需要 1 分钟。

一、实现目的本部分主要实现两个功能:首先,从源程序文件中读取有效字符并生成内部表示文件;其次,完成词法分析的实现。

二、实现环境开发工具:Visual Studio 2013关键头文件:#include <stdio.h>#include <string.h>#include <windows.h>#define PRINT(NUM, NAME) printf("%d,"%s"\n", NUM, NAME)

代码解释:

  • 文件打开与读取
    • 以只读模式打开指定文件
    • 使用fscanf读取一行内容,采用空格终止读取方式
  • 字符处理与标识符生成
    • 对特殊字符(如逗号、分号等)单独处理
    • 对运算符(如+、-、*等)与赋值符号(如=)进行分类
    • 对字母字符进行标识符生成
    • 对字母字符进行断句判断
  • 最后关闭文件并暂停系统
  • 代码示例:

    int main() {    int a = 10;    int b = 20;    int c = 0;    while (1) {        if (a > b) {            break;        }        a += 1;        c += a;    }}

    结果展示:程序将执行了以下操作:

  • 文件打开并读取内容
  • 然后对字符进行分类处理
  • 最终输出结果
  • (以下展示为代码运行示意图,实际输出将根据程序执行结果而定)

    转载地址:http://mflkk.baihongyu.com/

    你可能感兴趣的文章
    Netty5.x 和3.x、4.x的区别及注意事项(官方翻译)
    查看>>
    netty——bytebuf的创建、内存分配与池化、组成、扩容规则、写入读取、内存回收、零拷贝
    查看>>
    netty——Channl的常用方法、ChannelFuture、CloseFuture
    查看>>
    netty——EventLoop概念、处理普通任务定时任务、处理io事件、EventLoopGroup
    查看>>
    netty——Future和Promise的使用 线程间的通信
    查看>>
    netty——Handler和pipeline
    查看>>
    Vue输出HTML
    查看>>
    netty——黏包半包的解决方案、滑动窗口的概念
    查看>>
    Netty中Http客户端、服务端的编解码器
    查看>>
    Netty中使用WebSocket实现服务端与客户端的长连接通信发送消息
    查看>>
    Netty中实现多客户端连接与通信-以实现聊天室群聊功能为例(附代码下载)
    查看>>
    Netty中的组件是怎么交互的?
    查看>>
    Netty中集成Protobuf实现Java对象数据传递
    查看>>
    netty之 定长数据流处理数据粘包问题
    查看>>
    Netty事件注册机制深入解析
    查看>>
    netty代理
    查看>>
    Netty入门使用
    查看>>
    netty入门,入门代码执行流程,netty主要组件的理解
    查看>>
    Netty原理分析及实战(一)-同步阻塞模型(BIO)
    查看>>
    Netty原理分析及实战(三)-高可用服务端搭建
    查看>>