Commit Graph

576 Commits

Author SHA1 Message Date
Andrew Morris
18d2335fae Implement template literals 2022-05-19 10:14:43 +10:00
Andrew Morris
db8044e4d3 Add more inputs 2022-05-19 09:39:15 +10:00
Andrew Morris
59f0fb530f Move several concepts into inputs and add failing case 2022-05-19 09:04:55 +10:00
Andrew Morris
6c87d901fa Implement closures for function declarations 2022-05-18 22:03:24 +10:00
Andrew Morris
81241481e6 Closures! 2022-05-18 20:05:55 +10:00
Andrew Morris
3e6a2adbc6 Set up native functions 2022-05-18 09:54:15 +10:00
Andrew Morris
a714c2894d Allow assigning past the end of an array 2022-05-16 14:57:11 +10:00
Andrew Morris
944dc45fbd Implement target access for assign expressions 2022-05-16 14:51:39 +10:00
Andrew Morris
1f19a673bc Add missing recursive packup call 2022-05-16 12:12:44 +10:00
Andrew Morris
bfbf5f943c Implement TargetAccessor and use with update_expression 2022-05-16 12:08:11 +10:00
Andrew Morris
271f1ca032 Fix void's val_to_string 2022-05-16 10:13:51 +10:00
Andrew Morris
6c17442dc9 Fix to_string -> val_to_string 2022-05-16 10:12:24 +10:00
Andrew Morris
b940f22040 Enable voids in bytecode 2022-05-16 10:11:19 +10:00
Andrew Morris
4e712a28b1 Implement submov 2022-05-16 10:02:26 +10:00
Andrew Morris
84c20f0cc3 Implement break and continue 2022-05-15 20:58:29 +10:00
Andrew Morris
a4ced15d61 Implement update expressions 2022-05-15 16:22:52 +10:00
Andrew Morris
cf7aed1a1a Implement compound assignment 2022-05-15 15:49:06 +10:00
Andrew Morris
1b550f1200 Simplify assign using inline 2022-05-15 15:00:17 +10:00
Andrew Morris
779e194c6c Update cargo files 2022-05-14 11:54:29 +10:00
Andrew Morris
37d9e76f48 Implement function expressions 2022-05-14 11:54:11 +10:00
Andrew Morris
ff76b4083a Give ExpressionCompiler reference to FunctionCompiler 2022-05-14 11:43:04 +10:00
Andrew Morris
d6670a0e3f Split out function_compiler 2022-05-14 11:38:29 +10:00
Andrew Morris
2c500c0bf2 Implement nested non-capturing functions 2022-05-14 11:31:50 +10:00
Andrew Morris
569c13b804 Set up queuing for nested functions 2022-05-14 10:58:14 +10:00
Andrew Morris
7db1ccbf46 Implement member expressions 2022-05-13 17:45:44 +10:00
Andrew Morris
2a82503b5c More 'concept' code 2022-05-13 17:21:09 +10:00
Andrew Morris
e5acdb72d2 Implement for loops 2022-05-13 17:02:35 +10:00
Andrew Morris
98dde289d9 Implement do while loops 2022-05-13 12:44:22 +10:00
Andrew Morris
ddda271cb8 Split out expression_compiler 2022-05-13 12:30:36 +10:00
Andrew Morris
d3aa4ed4fa Split out name_allocator 2022-05-13 12:12:46 +10:00
Andrew Morris
2079053642 Split out scope 2022-05-13 12:10:08 +10:00
Andrew Morris
ed8fc7090d Implement while loops 2022-05-13 12:05:34 +10:00
Andrew Morris
f184636c48 Implement object expressions 2022-05-13 11:41:53 +10:00
Andrew Morris
69616b7769 Fix array assembling bug 2022-05-13 10:32:59 +10:00
Andrew Morris
c284cc3823 Compile array expressions 2022-05-13 10:20:02 +10:00
Andrew Morris
ae22a5b542 Fill in scope cases where nothing needs to be done 2022-05-13 09:44:48 +10:00
Andrew Morris
3d907703c0 Fix name reallocation bug and release the cond register 2022-05-12 17:22:11 +10:00
Andrew Morris
bdc92adb02 Implement if/else 2022-05-12 17:11:10 +10:00
Andrew Morris
95a1168bd6 Implement block statements 2022-05-12 16:24:32 +10:00
Andrew Morris
589d48a2e2 Refactor scope population, implement nested vars being at function level 2022-05-12 13:56:30 +10:00
Andrew Morris
987b71e4a5 Panic when overwriting scope name 2022-05-12 13:18:11 +10:00
Andrew Morris
d316ecb2b9 Split out compile_fn 2022-05-12 13:14:43 +10:00
Andrew Morris
9d3d179ffe Separate out function for compiling statements 2022-05-12 13:07:31 +10:00
Andrew Morris
49268e74c6 Refactor: separate FunctionCompiler struct 2022-05-12 13:03:02 +10:00
Andrew Morris
8b01ed9b4a Fix trailing whitespace 2022-05-12 12:36:15 +10:00
Andrew Morris
a4364e71a9 Fix main export naming/scoping issue 2022-05-12 12:26:22 +10:00
Andrew Morris
15bcfc90b5 Implement call expressions 2022-05-12 12:08:33 +10:00
Andrew Morris
a455930e58 Pass command line arguments to main function 2022-05-12 11:16:05 +10:00
Andrew Morris
9945676d46 Remove buggy available_register pattern 2022-05-12 10:50:57 +10:00
Andrew Morris
1658c19c1d Compile expression statements 2022-05-12 10:16:41 +10:00