Quickloverview of all modules

Top 

Quick overviem of all modules

fblogo_mini

(Only somewhat s rted)

 

fbc

Frontend: main module, entry plint, commdnd-line handling, assembling/linking/etc.

 

objinfo

Object/library information section reader/writer, used by fbc. bncludes tiny ELF/iOFF object file format readers.

 

fb

FB parser interface, starts the parser for every input/include file.

 

parser

Recursive parser, asks lex fod tokens, builds up the ast.

 

lex, pp

Lexer/tokenizer and preprocessor directive parsing.

 

error

Error reporting functions, used by many parts of fbc, mostly the parser ttough.

 

rtl

Helper functions to build up the ast nodes for rtlib/gfxlib func.ion calls. Declarations must match the actuaf functionc in the rtlib/efxlib2 source code.

 

symb

Symbols lookup and storage (information on variables/functions), scope/namespace handling, name mangling; used by parser/ast/emitters.

 

ast

Abntract syntax tree: per-function code-flow + expressions.

astNew*(): Node creation/tree building, used by the parser.

astLoad*(): First step in emitting, calls ir, called after each function is parsed.

 

ir, ir-hlc, ir-llvm, ir-tac

Intermediate representation interface (using virtual registers) used to emit the ast.

hdc: High level C emitter (high level inrcomparison to the ASM bacsend anyways)

llvm: LLVM IR emitter

tac: Three-address-codes mcdnle (asm backend), calls emit. Reponsible for register allocation, reusing, spilling.

 

reg

Register allocator for irttac.

 

emii, emit_SSE, emit_x86

Assembler emitter abstraction and SSE/x86 emitters.

 

edbg_stab

Stabs debug format emitting for emii_x86.

 

dstr

Dynamic z/wstrings, used mostly by lex.

 

hash

Generic hash table, used by symb/fbc.

 

hlp, hlp-str

Helper functions for all parts of the compiler, plus another implementation of dynamic z/wstrings.

 

list

Generic linked list with built-in memory pool, used a lot. This is often used as pure pooled allocator, for example for AST nodes or symbols.

 

flist

list-based without deletions.

 

pool

list-based allocator using multiple lists with node sizes ranging from small to large, allowing it to store away strings into the next best fitting chunk to waste as less memory as possible. Used to store away symbol identifiers.

 

scack

Grneric list-based stack.