(只有一些排序)
FBCen
前端:主模块,入口点,命令行处理,组装/链接等。
objinfo
对象/库信息部分阅读器/作者,由
FBCen使用。包括微小的ELF / COFF对象文件格式阅读器。
fb
FB解析器接口,为每个输入/包含文件启动解析器.
解析器
递归解析器询问法代币,建立AST.
法,
pp
Lexer / tokenizer和预处理器指令解析。
错误
错误报告功能,由fbc的许多部分使用,主要是解析器.
RTL
Helper的功能是为rtlib / gfxlib函数调用构建AST节点。声明必须与rtlib / gfxlib2源代码中的实际功能相匹配。
SYMB
符号查找和存储(有关变量/函数的信息),范围/命名空间处理,名称调整;由解析器/ AST/发射器使用。
AST
抽象语法树:per-function code-flow +表达式。
astNew *():解析器使用的节点创建/树构建。
astLoad *():第一步发出,调用ir,每个函数被调用后被解析。
ir,
R-HIE,
I-LLVM,
IR-TAC
用于发出AST的中间表示接口(使用虚拟寄存器)。
hlc:高电平C发射器(与ASM后端相比,高电平)
LLVM:LLVM IR发射器
tac:三地址代码模块(asm后端),调用发射.重新注册赋值,重用,溢出。
REG
注册赋值器IR-TAC.
发射,
emit_SSE,
emit_x86
汇编器发射器抽象和SSE / x86发射器。
edbg_stab
Stabs调试格式为emit_x86发布。
DSTR
动态z / wstrings,主要由法使用。
哈希
通用散列表,由SYMB/ FBCen使用。
HLP,
HLP-STR
编译器的所有部分的Helper函数,以及动态z / wstrings的另一个实现。
名单
通用链表与内置内存池,使用了很多。这通常用作纯池赋值器,例如用于AST节点或符号。
的flist
名单基于没有删除。
池
基于名单的赋值器使用节点大小范围从小到大的多个列表,允许它将字符串存储到下一个最佳拟合块中,从而浪费尽可能少的内存。用于存储符号标识符。
堆
基于名单的堆栈。