(Частично отсортировано)
fbc
Интерфейс: основной модуль, точка входа, обработка
командной строки, assembling/linking/etc.
fb-objinfo
bfd-wrapper
Маленький враппер C над bfd.h (нативный libbfd), чтобы не
было необходимости использовать точные заголовки FB. (Заголовки FB для
некоторых libbfd версий существуют, таким образом эта обертка не требуется,
но это - значение по умолчанию, чтобы сделать компиляцию fbc более
приятной).
fb
Интерфейс FB парсера , запускает парсер для каждого
входного/включаемого файла.
parser
Рекурсивный парсер, опрашивает lex для маркеров, создает
ast.
lex,
pp
Лексер/Маркировщик и директива препроцессора парсинга.
error
Функции отчетов об ошибках, используемые многими частями
FBC, в основном парсером.
rtl
Помощник функций, для создания ast узлов, используемых
для rtlib/gfxlib вызовов функций. Декларации должны соответствовать
фактическим функциям в rtlib/gfxlib2 исходном коде.
symb
Поиск символов и хранение (информация о
переменных/функциях), обработка областей видимости/пространств имен,
искажение имени; используется parser/ast/emitters.
ast
Дерево абстрактного синтаксиса: поток кода посредством
функций + выражения.
astNew* (): Создания узла/построение дерева, используемое парсером.
astLoad* (): Первый шаг в издании, ir вызовов, вызванном после того, как
каждая функция проанализирована.
ir,
ir-hlc,
ir-tac
Промежуточный интерфейс представления (использование
виртуальных регистров) раньше издавал ast.
hlc: Высокоуровневый C эмиттер (gcc бэкэнд).
tac: модуль с тремя адресными кодами (asm бэкэнд), вызовы эмиттера.
reg
Средство выделения регистра для ir-tac.
emit,
emit_SSE,
emit_x86
Ассемблерная эмиттерная абстракция и эмиттеры SSE/x86.
edbg_stab
Stabs отладки, испуская формат для emit_x86.
dstr
Динамические z/wstrings, используемые в основном lex.
hash
Универсальная хэш-таблица, используемая symb/fbc.
hlp,
hlp-str
Вспомогательные функции для всех частей компилятора, плюс
другая реализация динамических z/wstrings.
list
Универсальный связанный список со встроенным пулом
памяти. Это часто используется в качестве чистого объединенного средства
выделения, например для узлов AST или символов.
flist
основанный на списке без удалений.
pool
Основанное на списке средство выделения, используя
многократные списки с размерами узла в пределах от малого и большого,
позволяя ему хранить строки в следующем оптимальном блоке, чтобы тратить как
можно меньше памяти. Используется, чтобы хранить идентификаторы символа.
stack
Общий список на основе стека.