Commit Graph

473 Commits

Author SHA1 Message Date
Kayne Ruse
80ccd119ff Changed truthiness 2022-08-20 22:43:44 +01:00
Kayne Ruse
18ecece348 Tweaked TODO 2022-08-20 20:11:11 +01:00
Kayne Ruse
18c5fb6add Break and continue keywords are working 2022-08-20 20:08:22 +01:00
Kayne Ruse
daceaa5492 Found a weird bug, reporting it 2022-08-20 13:44:55 +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
cbdfcbcc14 Tweaked docs 2022-08-20 07:21:43 +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
8eca419138 Updated spec 2022-08-19 20:11:56 +01:00
Kayne Ruse
596a4882bc Fixed a print bug with casting 2022-08-19 19:53:55 +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
bde07f6c12 Removed debug.c and debug.h, since they're outmoded 2022-08-15 13:08:31 +01:00
Kayne Ruse
42716b24c9 Updated README.md 2022-08-15 12:29:27 +01:00
Kayne Ruse
ecca17dbef Updated spec 2022-08-15 12:17:27 +01:00
Kayne Ruse
7e01ead6ff Fixed some issues in scope 2022-08-15 10:15:24 +01:00
Kayne Ruse
6b834ca6d1 Type checking in place 2022-08-15 03:52:44 +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
633df5f376 Tweaked example.toy 2022-08-13 16:34:07 +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
b80888a7bb Removed debugging output 2022-08-13 15:57: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
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
998b913fc9 Got literal types represented correctly 2022-08-12 11:10:52 +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
42e55c1db6 Added equality check for arrays and dictionaries - needs testing 2022-08-11 20:13:01 +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
46097000a8 Removed debug display 2022-08-11 13:50:24 +01:00
Kayne Ruse
5c93bf663a Tweaked string quotes 2022-08-11 13:45:13 +01:00
Kayne Ruse
32ac46d9a0 Fiddled with the .toy file 2022-08-11 12:05:04 +01:00
Kayne Ruse
52651c5f2c Tweaked dictionary hashing to not hash null keys 2022-08-11 11:38:27 +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
9603baeb0a Added console colors, tweaked help menu 2022-08-09 13:51:03 +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