Commit Graph

71 Commits

Author SHA1 Message Date
Andrew Morris
b4e450abcd Simplifiy todo diagnostics 2023-03-07 10:54:12 +11:00
Andrew Morris
5427fb1051 Populate scope for export decls 2023-03-07 10:31:17 +11:00
Andrew Morris
106bded066 Split out populate_scope 2023-03-07 10:17:06 +11:00
Andrew Morris
19904c41ec Ignore empty statements 2023-03-07 10:09:56 +11:00
Andrew Morris
be9b078864 Simplify default exports, fix anonymous 2023-03-07 10:05:17 +11:00
Andrew Morris
264aff25aa Update assembly concepts to include export line 2023-03-07 09:11:00 +11:00
Andrew Morris
cfd427b9be Add export line to assembly 2023-03-07 08:50:56 +11:00
Andrew Morris
c83432102f Compiler -> ModuleCompiler 2023-03-07 08:12:26 +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
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
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
b75d7e57c5 Improve top-level member access with assign_and_packup 2023-03-02 15:00:04 +11:00
Andrew Morris
16fed23c66 AssignTarget::from_pat_or_expr 2023-03-02 11:34:30 +11:00