2024-11-16 15:06:38 -05:00

1.2 KiB

Source files

main.c

Responsible for dispatching initialization, deinitialization and the compiler. Only deals with the highest level of abstractions and kept clean.

eaxhla.l|y|c|h

Flex/Bison scanner/parser respectively. The C source contains definitions which store the abstract state and or required to construct it.

eaxhla.l is strictly limited to raising errors which sabotage scanning. (Unterminated / partial tokens)

eaxhla.y is strictly limited to raising syntax errors.

eaxhla.c is strictly limited to raising logical errors

compile.c|h

Responsible for transforming the abstract state of eaxhla.c to something that can be understood by the assembler, dispatching it and creating the executable.

assembler.c|h

Creates machine code from an array of tokens.

debug.h

Defines various debug output functions or nop alternatives for them in non-debug builds. Must be kept in symmetrical ballance regarding #if DEBUG == 1 and !1.

Builds

We like Gnu Make. // X: I hate it.

Debug builds might be create by defining DEBUG as 1. The Makefile respects DEBUG in the environment.

Some default values are determined as appropriate for the compiling system.