lxx2013 / myCOStream

通过对COStream的重构, 走一遍词法-语法-图划分-代码生成 的流程, 加深理解

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

COStream 重构

1. 目录说明

  • src 源码目录
    • bin 编译生成的.o文件,会被make clean删除掉
    • config 词法分析和语法分析配置文件
    • include
    • src
    • Makefile
    • a 临时使用的作为a.out存在的可执行程序
  • tests 测试用例
  • doc 文档
    • 0.makefile.md makefile 文件解读
    • 1.lex.md 词法分析
    • 2.yacc.md 语法分析
    • ...
    • 7.heap.md 鸡肋的内存分配封装

2. 功能覆盖说明 & 吐槽

这是一个实验性的项目, 我只在其中实现 COStream前端代码的一个子集,

事实上它原本前端代码那么繁杂也不知道都发挥作用了没, 例如123..123F

  • 数据类型
    • 暂不支持 unsigned , 精力集中于 int double, 尽量少用 long 和 float
  • Node 类型目前支持到了:
    • IdNode ConstNode
  • Analysis 暂不支持

3.截图展示效果

  • 目前已经达到的效果: v1.3.0 - 能输出 type 为 Sint 的节点了(包括八进制和十六进制的识别,此时为简化处理都把它们处理为 Sint)

About

通过对COStream的重构, 走一遍词法-语法-图划分-代码生成 的流程, 加深理解


Languages

Language:Python 48.9%Language:Yacc 16.1%Language:C++ 14.1%Language:Lex 10.3%Language:C 8.0%Language:Makefile 2.0%Language:Shell 0.5%