Commit Graph

576 Commits

Author SHA1 Message Date
Andrew Morris
de8aebd3c7 Remove incorrect named exports 2023-03-06 22:02:17 +11:00
Andrew Morris
3565d2464f Bypass rendering and parsing assembly 2023-03-06 20:06:21 +11:00
Andrew Morris
bab3ada9b8 Adjust newlines, as_lines() 2023-03-06 19:49:59 +11:00
Andrew Morris
eae0f1090e Use numbering for tmp registers 2023-03-06 19:39:34 +11:00
Andrew Morris
812b51dbba Fix inputs/passing/projEuler/p15.ts 2023-03-06 19:38:19 +11:00
Andrew Morris
88cac1fbe2 Removed remaining inline assembly 2023-03-06 18:29:56 +11:00
Andrew Morris
508f00e95c Simpler api for pushing instructions and labels 2023-03-06 17:16:44 +11:00
Andrew Morris
0e9682592e Use asm::Instruction in function_compiler 2023-03-06 16:39:59 +11:00
Andrew Morris
9dc82acebc Use asm::Instruction throughout expression_compiler 2023-03-06 16:17:33 +11:00
Andrew Morris
a18d6eec65 Use asm::Instruction for compound assignments 2023-03-06 16:02:40 +11:00
Andrew Morris
6000440313 Use asm::Instruction for unary and binary operators 2023-03-06 15:53:50 +11:00
Andrew Morris
018407dabc Start using asm::Instruction in compiler 2023-03-06 15:35:34 +11:00
Andrew Morris
eaf26f7a88 Prefer to_string 2023-03-06 15:05:38 +11:00
Andrew Morris
8c98da80be Use asm::Value in CompiledExpression 2023-03-06 14:59:56 +11:00
Andrew Morris
3093016344 Use asm::Pointer during compilation 2023-03-06 14:02:27 +11:00
Andrew Morris
6734567c89 Use definition_allocator from self 2023-03-06 13:26:32 +11:00
Andrew Morris
082591da5c Replace register strings with Register throughout function_compiler 2023-03-06 13:21:54 +11:00
Andrew Morris
6be70c189b Replace register strings with Register throughout expression_compiler 2023-03-06 12:48:41 +11:00
Andrew Morris
e87410dd23 Apply offsets to render_pos, fix empty objects 2023-03-06 09:56:30 +11:00
Andrew Morris
23cb16e5d5 render_pos 2023-03-06 09:40:46 +11:00
Andrew Morris
ac71b6ea50 Fix parameter registers 2023-03-06 09:09:43 +11:00
Andrew Morris
442a309e34 Fix redundant+wrong ValueType 2023-03-06 08:58:09 +11:00
Andrew Morris
01559ce0bd Use ValueType::End to mark the end of arrays and objects instead of encoding the number of elements 2023-03-06 08:54:47 +11:00
Andrew Morris
8c15b5b5eb Derive from Debug for assembly ast, comment unused ValueType 2023-03-06 08:49:15 +11:00
Andrew Morris
3323455cb1 DefinitionRef -> Pointer, fix ValueType::Pointer serialization 2023-03-06 08:39:06 +11:00
Andrew Morris
12995eb213 Format bytecode_decoder, report location of unrecognized bytecode type 2023-03-05 20:41:14 +11:00
Andrew Morris
0cfd2a9924 Fix register parsing and counting 2023-03-05 20:34:58 +11:00
Andrew Morris
e3208620b1 Fix consumption of closing ] in array exp 2023-03-05 20:21:06 +11:00
Andrew Morris
e9a5e4ab94 Use line and col in assembly parser 2023-03-05 18:22:04 +11:00
Andrew Morris
3a49b5aee1 Use new assembler 2023-03-05 18:21:00 +11:00
Andrew Morris
2dc78c2002 assembly_parser 2023-03-05 08:43:04 +11:00
Andrew Morris
372d9c9b36 Add asm::Value::Void 2023-03-05 07:27:59 +11:00
Andrew Morris
6df5bccf9c assembly -> asm 2023-03-04 22:36:46 +11:00
Andrew Morris
a71e92730d wip 2023-03-04 22:11:38 +11:00
Andrew Morris
d046ff8c3c std::fmt::Display for Assembly 2023-03-03 19:33:47 +11:00
Andrew Morris
9e5b65b594 assembly_ast basic structure 2023-03-03 19:08:09 +11:00
Andrew Morris
ad9ed69c7c ffi.ts concept 2023-03-03 16:23:03 +11:00
Andrew Morris
79f6616d90 modules concept code 2023-03-03 16:08:47 +11:00
Andrew Morris
b0f08e74ba Update example to use destructuring 2023-03-02 21:03:48 +11:00
Andrew Morris
6903f9d49f Add destructuring examples 2023-03-02 20:56:21 +11:00
Andrew Morris
7ea97ad22b More test updates 2023-03-02 18:39:23 +11:00
Andrew Morris
1daef33ad4 Add test 2023-03-02 18:33:14 +11:00
Andrew Morris
9400ab1643 Add tests (and fix default expr for target-access) 2023-03-02 18:23:59 +11:00
Andrew Morris
eafe601d29 Implement expressions inside patterns 2023-03-02 18:02:10 +11:00
Andrew Morris
e77667bd7d Move patterns into expression compiler 2023-03-02 17:39:12 +11:00
Andrew Morris
42c3ce706b decl_or_param_pat -> pat 2023-03-02 17:17:02 +11:00
Andrew Morris
cae818a3c7 Enable more destructuring 2023-03-02 17:14:45 +11:00
Andrew Morris
e7c30899de Split out assign_pat_eq 2023-03-02 16:51:38 +11:00
Andrew Morris
8ea6ce7dc2 Add failing tests 2023-03-02 16:38:47 +11:00
Andrew Morris
b75d7e57c5 Improve top-level member access with assign_and_packup 2023-03-02 15:00:04 +11:00