Commit Graph

372 Commits

Author SHA1 Message Date
nocturn9x ff0ec33991 Strings are now implemented in terms of an array of char and are no longer garbage collected by nim automatically 2020-08-23 23:48:38 +02:00
nocturn9x 92e91f2c17 Removed binary file 2020-08-23 16:13:28 +02:00
nocturn9x 3e5c86f1a1 Have to fix weird string type issues 2020-08-23 16:12:54 +02:00
nocturn9x 01b7c6e6a2 Completely revised the object structure, need to fix compiler (nim) crash issue 2020-08-23 12:10:08 +02:00
nocturn9x ea471678ae Breaking changes, starting to work on a new GC 2020-08-21 19:10:33 +02:00
nocturn9x 50d171de83 Added support for break (thanks dictu) 2020-08-20 22:51:56 +02:00
nocturn9x d2910fb13d Fixed while loop 2020-08-20 14:36:58 +02:00
nocturn9x e76534f8f2 Empty strings are now falsey 2020-08-20 14:30:00 +02:00
nocturn9x bf055191a7 Continue statement implemented, break needs jumping mechanism 2020-08-20 11:23:49 +02:00
nocturn9x d3999887a1 Support for nested loops 2020-08-20 09:29:59 +02:00
nocturn9x b58ea99aed Fixed a bug in the lexer 2020-08-19 21:45:51 +02:00
nocturn9x 9552a1f04f Made the repl exit gracefully after Ctrl+C 2020-08-19 18:15:48 +02:00
nocturn9x 1dadbd0523 Added for and while loop 2020-08-19 16:19:10 +02:00
nocturn9x faf5e6149b Fixed numerous bugs with improper statements in the parser 2020-08-19 14:19:01 +02:00
nocturn9x b9fecca2d9 Fixed a bug in the REPL and added logical operators 2020-08-19 13:24:37 +02:00
nocturn9x 941e728a92 If statement now pops from the stack, added debug machinery for new opcodes 2020-08-19 13:10:34 +02:00
nocturn9x a9f35d2134 Fixed various bugs (scoping, parsing) and added if/else constructs 2020-08-19 12:40:01 +02:00
nocturn9x 7ed7d49ecd Fixed the del statement 2020-08-17 08:55:33 +02:00
nocturn9x ad769ffbaf Added local scoping support 2020-08-17 08:17:27 +02:00
nocturn9x ca2e643e5d Fixed assignment precedence and various minor bugs 2020-08-15 12:07:01 +02:00
nocturn9x 7e40894047 Added support for the del statement 2020-08-15 11:38:36 +02:00
nocturn9x 5667691669 Implemented globals setters and getters, also made the repl friendlier and fixed some minor bugs with strings multiplication 2020-08-15 11:27:04 +02:00
nocturn9x b708340183 Added support for mutually exclusive slice conditions, started to work on the global scope 2020-08-15 08:52:58 +02:00
nocturn9x 810c49f29e Added support for slice ranges 2020-08-14 10:20:42 +02:00
nocturn9x cbe8272ecc Added support for string slicing and integer implicit cinversions with comparison operators 2020-08-14 10:02:13 +02:00
nocturn9x b8ea713312 Added support for string literals and related operations 2020-08-14 08:25:05 +02:00
nocturn9x 3fe0660b32 Removed gitignore and updated old one 2020-08-13 23:47:29 +02:00
nocturn9x 52bd5ad830 Added gitignore 2020-08-13 23:46:33 +02:00
nocturn9x 5ab06455cf Added the new instructions in the debugger 2020-08-13 23:45:25 +02:00
nocturn9x cc1b41e7ed Added comparison operators and logical not 2020-08-13 23:39:26 +02:00
nocturn9x 8ed20c0275 Added support for booleans and fixed a couple bugs 2020-08-13 17:53:23 +02:00
nocturn9x bf2814f580 Partial fix to expressions bug 2020-08-12 11:41:21 +02:00
nocturn9x 1005c81a1f Attempt to fix unterminated expressions (failed) 2020-08-10 22:36:41 +02:00
nocturn9x 58866be514 Removed development binary file 2020-08-10 18:40:22 +02:00
nocturn9x 22e35b9a46 Fixed minor bug in the interpreter 2020-08-10 18:39:53 +02:00
nocturn9x 14442a659f Updated readme 2020-08-10 10:56:34 +02:00
nocturn9x e4791ef027 Added double-precision floating point numbers and integers. Implemented the 4 fundamental operations, modulo division and exponentiation 2020-08-10 10:48:21 +02:00
nocturn9x fe07ed4f49 Minor refactoring to value representation, needs a fix to the function pointers 2020-08-09 21:45:50 +02:00
nocturn9x 382e92f900 Fixed the fuckload of mistakes and errors 2020-08-09 10:09:03 +02:00
nocturn9x 7ec58d482e Added support for number literals in the compiler 2020-08-08 19:08:09 +02:00
nocturn9x c4baf9b7bf Started to wire up the VM with the lexer and the parser/compiler 2020-08-08 16:19:44 +02:00
nocturn9x ee9444a3bf Added support for OP_CONSTANT_LONG 2020-08-07 19:38:52 +02:00
nocturn9x ab6cb16e42 Working on the bytecode VM 2020-08-07 17:11:06 +02:00
nocturn9x 76eb517d98 Redefined directory structure and partially reviewed lexer.nim 2020-08-06 17:28:28 +02:00
nocturn9x 5caac38b8b Added support for list literals 2020-08-06 14:51:50 +02:00
nocturn9x 586cd9418d Refactored directories and fixed visibility of lex() procedure in lexer.nim 2020-08-06 00:28:32 +02:00
nocturn9x 076e8a6911 Nim lexer completed 2020-08-06 00:14:26 +02:00
nocturn9x 326220f89c Fixed a multiline comment bug 2020-08-06 00:13:32 +02:00
nocturn9x 7c3a7013e9 Added support for nested multi-line comments 2020-08-05 20:39:13 +02:00
nocturn9x 05ad117781 Added parseIdentifier and related utilities 2020-08-05 19:01:00 +02:00