文件名称:
TinyCompiler:基于flex(lex),bison(yacc)和LLVM的c编译器,支持LLVM IR和obj代码生成。基于flex,bison以及LLVM,使用c ++ 11实现的类C语法编译器,支持生成中间代码及替换文件-源码
开发工具:
文件大小: 2mb
下载次数: 0
上传时间: 2021-01-31
详细说明:TinyCompiler
序言
项目概述
本项目是基于flex,bison和LLVM,使用c ++ 11实现的类C语法编译器,使用flexbindingyacc对源代码进行词法,语法分析;在语法分析阶段生成整个源代码相应的抽象语法树后,根据LLVM IR(中间表示)模块中定义的中间代码语法输出与LLVM中间语言语法,机器无关的中间代码;最后,本项目通过调用LLVM后端模块的接口,根据本地指令集与操作系统架构,将中间代码编译成二进制目标代码。编译生成的目标代码之后可直接编译生成初始化文件,或与其他目标代码链接生成替代文件。
本项目解析的语法与是C语言的一个子集,但部分语法存在区别,这些将在最后的测试用例中具体说明。目前已支持的数据类型包括:
虚空
整型
浮动
双
烧焦
串
布尔
自定义结构体
样本(包括多维样本)
支持的主要语法包括:
变量的声明,初始化(包括一维细分初始化,多维序列暂不支持初始化,只能逐个元素赋值使用)
函数声明,函数调用(传递参数类型可以是任意已支持类型)
外部函数声明和调用
控制流语句if-else,for,while和任意层级的嵌套使用
单行注释(#)
二元运算
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.