A single-pass compiler for a simple imperative language.
 
 
Go to file
James T. Martin 68ce32a6df
Slightly unfuck codegen for relative jumps and blocks.
Still pretty horribly broken. I was generating dispacements
backwards, failing to emit stuff like the beginning of
loops, the logic for `if` jumps was backwards, etc.
I was also completely forgetting to increment file_here
for appends. I don't remember what all I did; check the diff.
2022-10-19 12:21:46 -07:00
docs Removed radix#int syntax, added keywords to lexer. 2022-09-10 14:58:22 -07:00
src Slightly unfuck codegen for relative jumps and blocks. 2022-10-19 12:21:46 -07:00
.editorconfig Initial commit. 2022-09-05 23:48:56 -07:00
.gitignore Added documentation for the upcoming indentation-sensitive syntax. 2022-09-08 11:40:10 -07:00
LICENSE.txt Initial commit. 2022-09-05 23:48:56 -07:00
Makefile Factor out executable format handling into a new file. 2022-09-10 22:06:21 -07:00
README.md Initial commit. 2022-09-05 23:48:56 -07:00

README.md

Passlang

A one-pass, linear-time compile-and-go compiler.

I'm imposing these restrictions on myself to avoid over-engineering and give myself a design challenge. The goal is to make the absolute best language I can under these constraints, and then incrementally begin to relax the restrictions only when absolutely necessary to make progress.