Commit Graph

48 Commits

Author SHA1 Message Date
Kayne Ruse
4ad33a3082 Fixed jumps in functions issue 2022-09-03 07:57:25 +01:00
Kayne Ruse
90b504d3a4 No segfaults, still failing tests 2022-09-01 14:00:31 +10:00
Kayne Ruse
14718a08d3 I fucking found it 2022-08-30 04:51:28 +10:00
Kayne Ruse
1c6c7e5d4f I GIVE UP 2022-08-29 21:38:54 +10:00
Kayne Ruse
08c8e7e3e6 Another one bites the dust! 2022-08-29 16:25:53 +10:00
Kayne Ruse
a6f0200255 Eventually gonna squash all of today's work 2022-08-29 04:08:31 +01:00
Kayne Ruse
1937d727bb Working on refactoring, read more
The main program segfaults, but right now I'm working on the tests, mainly.
2022-08-29 10:21:25 +10:00
Kayne Ruse
f705d82aee Wrote some small tests 2022-08-28 09:35:46 +01:00
Kayne Ruse
151f681954 calls within parameter lists 2022-08-26 13:03:18 +01:00
Kayne Ruse
7bd67765aa Functions take a set number of arguments 2022-08-26 12:48:10 +01:00
Kayne Ruse
f36289786e Fixed a repl bug 2022-08-26 11:59:09 +01:00
Kayne Ruse
0c67ce6476 Stopgap limit on return count 2022-08-26 02:14:05 +01:00
Kayne Ruse
a4f1e048e9 Function calls, with args and single returns are working 2022-08-26 01:48:26 +01:00
Kayne Ruse
041fe99e01 Function declaration seems to work 2022-08-25 15:19:08 +01:00
Kayne Ruse
08e2adab50 #15 Fixed some of the worst memory leaks 2022-08-22 20:51:09 +01:00
solar-mist
2f538e79fe Fix heap use after free in compiler.c 2022-08-22 18:48:08 +00:00
Kayne Ruse
300f8e382b Store complex types in variables 2022-08-22 13:28:44 +01:00
Kayne Ruse
45920f763c Tweaked error messages 2022-08-22 05:17:17 +01:00
Kayne Ruse
9ac16f8e80 Comment tweaks 2022-08-22 02:16:24 +01:00
Kayne Ruse
df6bd58b1a Types are first-class citizens 2022-08-22 01:59:29 +01:00
Kayne Ruse
9c995830e2 Resolved #14 2022-08-21 00:51:28 +01:00
Kayne Ruse
b385b461e0 Increment and decrement operators work 2022-08-21 00:23:09 +01:00
Kayne Ruse
18c5fb6add Break and continue keywords are working 2022-08-20 20:08:22 +01:00
Kayne Ruse
f5e060051e While and for loops are working 2022-08-20 13:27:47 +01:00
Kayne Ruse
975ed41d14 If-then-else is working with jump statements 2022-08-20 12:38:29 +01:00
Kayne Ruse
4f0aebc32f Type casting is working: 2022-08-19 19:24:07 +01:00
Kayne Ruse
574a864dd0 Reworked the type system, types now have a single value 2022-08-17 17:39:33 +01:00
Kayne Ruse
9e899f5974 Got scope-based variable shadowing working 2022-08-14 21:32:13 +01:00
Kayne Ruse
74e2907f09 Fixed array/dictionary confusion 2022-08-13 16:31:11 +01:00
Kayne Ruse
3098d75d01 Caught some loose memory 2022-08-13 16:26:51 +01:00
Kayne Ruse
afad0d99cb I think var declarations are working correctly; no type checking yet 2022-08-13 15:57:30 +01:00
Kayne Ruse
55aa6eb273 The value is displaying correctly, but not the type 2022-08-12 17:27:57 +01:00
Kayne Ruse
53f0996fd1 Types are being read into the variable declaration, not yet used 2022-08-12 15:06:41 +01:00
Kayne Ruse
2f18989f25 Types now exist, but they're not being embedded into bytecode yet 2022-08-12 09:11:43 +01:00
Kayne Ruse
5c93bf663a Tweaked string quotes 2022-08-11 13:45:13 +01:00
Kayne Ruse
603d9d2b06 Recursive arrays and dictionaries! 2022-08-11 09:24:13 +01:00
Kayne Ruse
380b7a3699 fixed a bug 2022-08-10 18:22:02 +01:00
Kayne Ruse
67f7b3e436 Arrays and dictionaries have been implemented, read more
The arrays and dictionaries are currently being printed out correctly,
afaik. This means I should be able to go back and work on the type
system, assuming nothing happens.
2022-08-10 17:42:04 +01:00
Kayne Ruse
6a883bde96 Parser is reading variable declarations, read more
This is an incomplete process. It's supposed to be robust enough to
support the types of arrays and dictionaries, but arrays and
dictionaries aren't implemented in the literals yet, so that's my next
task.

I'll come back to variable declarations later.
2022-08-10 11:01:32 +01:00
Kayne Ruse
6d5549fc8e Added scopes using '{}' symbols, read more
I've also added a new literal type called 'identifier'. This will be
used for variable names, and has a type mask embedded in it.
2022-08-08 15:02:12 +01:00
Kayne Ruse
3fb952e3c2 Minor tweaks 2022-08-08 03:42:48 +01:00
Kayne Ruse
ceeca9d40f Fiddling with -Wpedantic 2022-08-07 21:39:21 +01:00
Kayne Ruse
3b89e216cc Fixed an non-optimized grouping bug 2022-08-07 16:46:54 +01:00
Kayne Ruse
9a415738d9 Implemented groupings 2022-08-07 15:04:19 +01:00
Kayne Ruse
d7fda480fd Added assert keyword, with re-routable print and assert outputs 2022-08-07 12:26:04 +01:00
Kayne Ruse
7a3986af33 Wrote the interpreter 2022-08-06 07:58:32 +01:00
Kayne Ruse
bfaf4e83bb Fixed a string comparison bug 2022-08-05 17:11:21 +01:00
Kayne Ruse
cd05d5d84a Got the compiler partially working 2022-08-05 16:29:12 +01:00