Commit Graph

59 Commits

Author SHA1 Message Date
Kayne Ruse
36154b25ac Changed dict type syntax to using a colon instead of a comma 2022-09-04 09:01:09 +01:00
Kayne Ruse
d2aacea8c5 This is really getting hard 2022-09-03 11:58:36 +10:00
Kayne Ruse
1c6c7e5d4f I GIVE UP 2022-08-29 21:38:54 +10:00
Kayne Ruse
d055e9dc94 WE ARE THE CHAMPIONS! 2022-08-29 15:33:58 +10:00
Kayne Ruse
a6f0200255 Eventually gonna squash all of today's work 2022-08-29 04:08:31 +01:00
Kayne Ruse
f705d82aee Wrote some small tests 2022-08-28 09:35:46 +01:00
Kayne Ruse
9c766ec61e Working on memory issues 2022-08-28 01:35:00 +01:00
Kayne Ruse
90e5a5d08b Rest parameter working 2022-08-27 11:59:54 +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
4f70bea808 Implemented logical && and || 2022-08-23 05:07:17 +01:00
Kayne Ruse
6939b216a9 Added arithmetic assign operators 2022-08-23 03:33:28 +01:00
Kayne Ruse
08e2adab50 #15 Fixed some of the worst memory leaks 2022-08-22 20:51:09 +01:00
Kayne Ruse
5b82ed8e45 Must force a type when dealing with compound types 2022-08-22 14:27:41 +01: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
df6bd58b1a Types are first-class citizens 2022-08-22 01:59:29 +01:00
Kayne Ruse
b385b461e0 Increment and decrement operators work 2022-08-21 00:23:09 +01:00
Kayne Ruse
c64d451287 Added string concatenation 2022-08-20 22:58:50 +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
8309535bbe Fixed negation issue, moved some scripts to test/ 2022-08-20 07:20:29 +01:00
Kayne Ruse
2bf721867b Comparions and the ! operator work 2022-08-20 06:20:20 +01:00
Kayne Ruse
97e72550da Removed under-used optimization options 2022-08-19 19:27:23 +01:00
Kayne Ruse
4f0aebc32f Type casting is working: 2022-08-19 19:24:07 +01:00
Kayne Ruse
9365541c8f Removed extra parameter 2022-08-19 17:56:35 +01:00
Kayne Ruse
16291bd1af Declare variables with a type but no value allowed 2022-08-19 17:52:24 +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
8d12db7dbe Some declaration guards 2022-08-15 03:12:10 +01:00
Kayne Ruse
4cda75df11 Added a limit to string and identifier lengths 2022-08-15 02:53:30 +01:00
Kayne Ruse
9e899f5974 Got scope-based variable shadowing working 2022-08-14 21:32:13 +01:00
Kayne Ruse
4aa6f75ea7 Expression statements and assignemnts are working 2022-08-14 19:57:24 +01:00
Kayne Ruse
e9ab6f3f96 Variables now persist between statements 2022-08-13 21:27:39 +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
7424a681d6 Fixed a segfault 2022-08-12 15:14:21 +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
80b64cf21e Fixed division by zero bugs 2022-08-12 07:26:58 +01:00
Kayne Ruse
00812e7a73 pre-computed identifer hashes 2022-08-11 18:36:03 +01:00
Kayne Ruse
1430aefdf3 Bugfix when strings are unterminated 2022-08-11 14:01:33 +01:00
Kayne Ruse
32ac46d9a0 Fiddled with the .toy file 2022-08-11 12:05:04 +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