1.3 KiB
1.3 KiB
HLA
General
- x86_64
- GPLv3-only
Technologies
- Chad C, C99
- Flex/Bison
Train of translation
file -> preprocessor -> as -> link -> exe
NOTE: the compiler front-end should be able to handle the preprocessing someway, but we are not making our own preprocessor. use Frexx or m4
implementation
- flex parsing
- bison creates partial syntax trees (since we dont optimize, we can render in relatively small chunks because not all that much context is needed)
- xolatile magic
Types
<prefix><size>
prefixes:
- s - signed
- u - unsigned
sizes:
- 8
- 16
- 32
- 64
Syntax
Macros
- fuck macros
- use a preprocessor
Asm
- no ',' argument deliteters
- optional "[]" argument parenthesizing
Machine code
machine
// literal values
end machine
All literal values (string or numeric) is copied as machine code
Logic
- only evaulated in logical blocks
logical blocks
- if-then-else-end-if
operators
- =
-
- <
- <=
-
=
- !=
- not
- and
- or
- xor
Functions
<qualifyiers>
<type> <name>
<declarations>
begin
<code>
end <type>
qualifier:
- fast -> use the fastcall calling convention
- ? stack -> place all arguments on the stack
labels
my_label:
Come back to later
register
volatile
extern
static
LATER
- DWARF2
- linker??