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 |
|
Andrew Morris
|
54568ef1e4
|
Use definition allocator
|
2022-05-12 09:27:01 +10:00 |
|
Andrew Morris
|
605905fe7e
|
Support variable declarations
|
2022-05-11 22:29:39 +10:00 |
|
Andrew Morris
|
0343c2bdc4
|
Implement referencing definitions and non-main function definitions
|
2022-05-11 22:00:33 +10:00 |
|