没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
TinyCompiler 序言 项目概述 本项目是基于flex,bison和LLVM,使用c ++ 11实现的类C语法编译器,使用flexbindingyacc对源代码进行词法,语法分析;在语法分析阶段生成整个源代码相应的抽象语法树后,根据LLVM IR(中间表示)模块中定义的中间代码语法输出与LLVM中间语言语法,机器无关的中间代码;最后,本项目通过调用LLVM后端模块的接口,根据本地指令集与操作系统架构,将中间代码编译成二进制目标代码。编译生成的目标代码之后可直接编译生成初始化文件,或与其他目标代码链接生成替代文件。 本项目解析的语法与是C语言的一个子集,但部分语法存在区别,这些将在最后的测试用例中具体说明。目前已支持的数据类型包括: 虚空 整型 浮动 双 烧焦 串 布尔 自定义结构体 样本(包括多维样本) 支持的主要语法包括: 变量的声明,初始化(包括一维细分初始化,多维序列暂不支持初始化,只能逐个元素赋值使用) 函数声明,函数调用(传递参数类型可以是任意已支持类型) 外部函数声明和调用 控制流语句if-else,for,while和任意层级的嵌套使用 单行注释(#) 二元运算
资源推荐
资源详情
资源评论
收起资源包目录
TinyCompiler-master.zip (36个子文件)
TinyCompiler-master
token.l 3KB
grammar.y 8KB
ASTNodes.h 22KB
utils.cpp 3KB
testmain.cpp 569B
tests
testArray.input 427B
testStruct.png 132KB
testStructAST.png 450KB
testExtern.input 189B
testArray.png 129KB
testArrayAST.png 524KB
testBasic.png 176KB
testBasic.input 436B
testBasicAST.png 602KB
testStruct.input 299B
Readme.md 41KB
visualization
d3.js 319KB
disp.html 478B
test.js 1KB
A_tree.json 6KB
testmain.ll 3KB
main.cpp 933B
ObjGen.cpp 2KB
token.cpp 52KB
.gitignore 1KB
CMakeLists.txt 410B
ObjGen.h 207B
Makefile 828B
graphs
ASTUML.jpg 185KB
CodeGen.cpp 21KB
y.tab.c 61KB
test.input 529B
CodeGen.h 4KB
TypeSystem.h 3KB
TypeSystem.cpp 5KB
.vscode
settings.json 168B
共 36 条
- 1
资源评论
一枝清荷
- 粉丝: 23
- 资源: 4630
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功