q/src
2025-04-16 17:38:48 +02:00
..
arm Refactored arm package 2025-04-16 17:38:48 +02:00
asm Added label type 2025-03-13 16:57:13 +01:00
asmc Refactored arm package 2025-04-16 17:38:48 +02:00
ast Implemented instruction splitting as a generator 2025-03-20 13:53:23 +01:00
build Updated module path 2025-02-25 17:16:09 +01:00
cli Added wasm target 2025-03-12 23:15:43 +01:00
compiler Implemented an ordered set for function dependencies 2025-03-22 12:38:41 +01:00
config Added wasm target 2025-03-12 23:15:43 +01:00
core Improved type safety for memory writes 2025-04-14 15:58:15 +02:00
cpu Simplified CPU state 2025-03-31 14:36:42 +02:00
data Enabled arm64 encoding 2025-03-06 16:54:28 +01:00
dll Improved Windows support 2024-08-19 17:25:51 +02:00
elf Implemented dynamic section alignment 2025-03-09 00:23:23 +01:00
errors Improved type safety for memory writes 2025-04-14 15:58:15 +02:00
eval Added label type 2025-03-13 16:57:13 +01:00
exe Added exe package to manage sections 2025-03-08 22:14:24 +01:00
expression Improved test descriptions 2025-04-15 11:51:03 +02:00
fs Added exe package to manage sections 2025-03-08 22:14:24 +01:00
macho Added exe package to manage sections 2025-03-08 22:14:24 +01:00
pe Implemented dynamic section alignment 2025-03-09 00:23:23 +01:00
register Simplified CPU state 2025-03-31 14:36:42 +02:00
riscv Improved documentation 2025-03-28 15:35:29 +01:00
scanner Improved type safety for memory writes 2025-04-14 15:58:15 +02:00
scope Implemented Value interface 2025-02-28 12:15:19 +01:00
set Implemented an ordered set for function dependencies 2025-03-22 12:38:41 +01:00
sizeof Fixed move instruction encoding on arm64 2025-03-15 13:49:30 +01:00
token Removed struct keyword 2025-04-04 13:32:55 +02:00
types Added Value type 2025-02-27 14:16:25 +01:00
wasm Added wasm target 2025-03-12 23:15:43 +01:00
x86 Implemented division by immediates in the IR 2025-03-31 15:51:04 +02:00
readme.md Implemented an ordered set for function dependencies 2025-03-22 12:38:41 +01:00

Overview

  • arm - ARM64 implementation (w.i.p.)
  • asm - Pseudo-assembler stage
  • asmc - Compiles assembler to actual machine code
  • ast - Abstract syntax tree generation with the Parse function
  • build - Build command
  • cli - Command line interface
  • compiler - Compiler frontend used by build
  • config - Globals for the entire project
  • core - Definition of Function and how to compile it (uses register.Machine)
  • cpu - Types to simulate a generic CPU during compilation
  • data - Data container that can re-use existing data (e.g. the Hello in Hello World)
  • dll - DLL support for Windows systems (w.i.p.)
  • elf - ELF format for Linux executables
  • exe - Generic executable format to calculate section offsets
  • errors - Error types
  • eval - Evaluates expressions
  • expression - Expression parser generating trees with the Parse function
  • fs - File system access
  • macho - MachO format for Mac executables
  • pe - PE format for Windows executables
  • register - Defines Machine type combining an assembler with CPU states
  • riscv - RISCV implementation (w.i.p.)
  • scanner - Scanner frontend used by build
  • scope - Defines a Scope used for code blocks
  • set - Generic set implementation
  • sizeof - Calculates the byte size of numbers
  • token - Converts a file to tokens with the Tokenize function
  • types - Type system
  • x86 - x86-64 implementation

Typical flow

  1. main
  2. cli.Main
  3. build.Run
  4. scanner.Scan
  5. compiler.Compile
  6. compiler.WriteFile