Commit Graph

40 Commits

Author SHA1 Message Date
tali d7bb317e2b fix Ir.Bop codegen bugs 2023-12-13 17:13:30 -05:00
tali 22a11c7e47 add recursive bytecode printout for vtables 2023-12-13 17:12:40 -05:00
tali a3f92e5621 improve code pretty printer 2023-12-13 16:59:54 -05:00
tali dd27dc04d2 reimplement bc compiler to utilize a simpler intermediate repr 2023-12-13 16:40:44 -05:00
tali 898cf7380c change LOC ins pretty printer 2023-12-07 12:54:17 -05:00
tali 10f5a5a6e2 fix binop codegen 2023-12-07 12:34:50 -05:00
tali 1aa704fa49 add back bcc with support for simple functions 2023-12-06 22:25:35 -05:00
tali d7bf73a17c change RET instruction to take an argument 2023-12-06 22:25:16 -05:00
tali 44406a233e add back CALl instruction 2023-12-06 22:20:59 -05:00
tali c51b482607 big clean up of Code, Interp, removed all of Bcc 2023-12-06 21:49:54 -05:00
tali 1da782920e added nil, true, false literals to the parser! 2023-12-02 17:04:14 -05:00
tali 333b8e7450 switch formatter to ocp-indent 2023-12-02 17:02:40 -05:00
tali d523c5c997 slightly improve pretty printing 2023-12-02 16:12:51 -05:00
tali 88fff1c119 add standard library / initial environment 2023-12-02 16:08:29 -05:00
tali ffbe99061f compile basic function calls 2023-12-02 16:06:36 -05:00
tali 62cf27b0c7 refactor codegen emitting slot indices 2023-12-02 15:36:53 -05:00
tali 0460e6b646 refactor handling slot/method indices 2023-12-02 15:31:29 -05:00
tali 24409f7902 add named fields and preliminary method support 2023-12-02 13:51:15 -05:00
tali b018c83782 rename Spice.Syn -> Spice.Ast 2023-12-02 13:50:24 -05:00
tali 32b3eda926 refactor 'stack pointer' manip to be a parameter instead of a ref 2023-11-30 17:27:47 -05:00
tali fd3b356699 compile scope expressions 2023-11-30 14:01:40 -05:00
tali c089d893c6 fix eval true/false :O 2023-11-30 13:57:18 -05:00
tali 2bdb1511ab add GRT instruction and implement missing comparators 2023-11-30 13:57:18 -05:00
tali 22b0ce775d compile if expressions into conditional branches 2023-11-29 23:06:12 -05:00
tali 58827f230d prettier printing for basic block labels 2023-11-29 23:06:07 -05:00
tali 5a7ae5d5a4 add exp parenthesis syntax (FIXME: shift/reduce conflict!) 2023-11-29 23:04:55 -05:00
tali fca1c8f557 fix bug in binop code gen 2023-11-29 23:04:45 -05:00
tali 3d88cbe319 add comparison instructions and compile some more operators 2023-11-29 22:48:58 -05:00
tali c1eaa5baef remove lir, add basic single pass compiler 2023-11-29 22:27:05 -05:00
tali 846cae64ff temporarily remove branch ins 2023-11-29 21:42:44 -05:00
tali 7569cd2ee4 add object values, CON instruction 2023-11-29 17:56:42 -05:00
tali fb8a2cdcab add code interpreter 2023-11-29 16:52:45 -05:00
tali ee5ca040c7 add runtime value data type 2023-11-29 16:48:24 -05:00
tali b17531b799 add bytecode-like data type 2023-11-29 16:48:12 -05:00
tali 41c64d8c51 move modules around 2023-11-29 13:52:16 -05:00
tali 0e1562984b add ANF IR and conversion pass 2023-11-29 13:44:41 -05:00
tali 3cd480fbee refactor errors 2023-11-29 13:44:39 -05:00
tali c800a14262 use Fmt library in Syn 2023-11-25 16:10:16 -05:00
tali dc3a0368b3 add if/else 2023-11-23 23:18:49 -05:00
tali 466b224e65 spice lang parser and lexer 2023-11-23 23:11:30 -05:00