Commit Graph

178 Commits

Author SHA1 Message Date
Nocturn9x 633c032601 Added Ctrl+E and Ctrl+A bindings 2022-01-31 15:10:53 +01:00
nocturn9x 29df939df3 Added some frontend stuff 2022-01-10 11:53:41 +01:00
nocturn9x 3df9bdc88f Removed debugging raise statement 2022-01-10 11:53:14 +01:00
nocturn9x 44cce0a380 Minor changes to the compiler 2022-01-07 10:57:15 +01:00
nocturn9x fec05a1291 Merge branch 'master' of https://github.com/japl-lang/JustAnotherJAPL 2022-01-06 16:53:50 +01:00
nocturn9x ef69de00fd Updated config.nim 2022-01-06 16:53:32 +01:00
nocturn9x fdfe87ad42 Fixed a bug in patchJump(). Added basic functionality for many keywords. Initial work on continue and break 2022-01-06 16:53:06 +01:00
Mattia 3b81831bc9
Update README.md 2022-01-04 18:01:19 +01:00
Mattia 1670ff1518
Update README.md 2022-01-04 17:57:42 +01:00
nocturn9x e5173435f5 Added del statement 2022-01-04 17:51:59 +01:00
nocturn9x 19df7e84a1 Added support for in-place operators, removed all inplace opcodes, renamed DeleteNameFast to DeleteFast and the Update* opcodes to Store*. Updated grammar accordingly 2021-12-30 16:03:40 +01:00
nocturn9x 6070d69d00 Integrated jale inside the test REPL for nicer behavior 2021-12-28 16:47:20 +01:00
nocturn9x cb34a22a53 Fixed a bug in the debugger when visualizing encoded dictionary elements and simplified dispatching code inside Compiler.expression() for literals 2021-12-28 16:37:30 +01:00
nocturn9x 71dfac87dd Minor QoL improvements to main.nim 2021-12-26 20:05:44 +01:00
nocturn9x 0a3d93512c Updated commit in config.nim 2021-12-22 17:22:27 +01:00
nocturn9x e234c8caaf Removed serialization for singletons as those are encoded as bytecode instructions (whoopsie), and updated the bytecode spec accordingly. Added minor QoL improvements to the parser/compiler REPL 2021-12-22 17:13:03 +01:00
nocturn9x 303a98b9e4 Removed leftover raise statements (whoops) 2021-12-22 16:23:18 +01:00
nocturn9x 44fdfe50a6 Updated commit in config.nim 2021-12-22 16:22:31 +01:00
nocturn9x bfacd24bce Fixed string serialization and reverted .escape() call in AST and Token string representation 2021-12-22 16:21:56 +01:00
Nocturn9x ed13304809 Began deserializing the constants table and the code section of bytecode files. Minor fixes to debugger and bytecode.nim 2021-12-17 17:54:22 +01:00
nocturn9x 195045e4f2 Minor additions and fixes (preparation for break and continue in the compiler) 2021-12-11 15:57:28 +01:00
Nocturn9x 302acbcaae Updated config.nim 2021-11-21 12:51:56 +01:00
Nocturn9x f90f732a66 Added control flow (if/else) and looping (for/while). Changed all *Fast instructions so they don't contain the word 'Name' anymore, as they work with stack offsets and that wording could cause confusion. Fixed bug in the parser that caused for loops to produce the wrong AST 2021-11-21 12:50:41 +01:00
Nocturn9x 12afed8419 Initial work on bytecode code section 2021-11-21 11:37:20 +01:00
Nocturn9x a1698ef892 Fixed wrong bytecode emission when compiling constants. Added a few more checks and made dynamic declarations illegal inside local scopes again (will change once closures are implemented) 2021-11-20 18:12:49 +01:00
Nocturn9x 690d4d364a Added a brief description of what JAPL adds on top of lox 2021-11-20 17:43:26 +01:00
Nocturn9x 2ab4bdc46d Added multiple inline exception support for except handlers and updated grammar accordingly. Added scopeDepth field to parser to keep track of local scopes and emit some errors about declarations. Added some more docs to bytecode instructions, fixed some issues with local scopes in the compiler and made dynamic declarations legal in functions. Added a flag for disabling compiler optimizations 2021-11-20 13:19:57 +01:00
Nocturn9x 9160cb32db Updated config.nim 2021-11-17 21:15:08 +01:00
Nocturn9x 93fdb6bd10 Statically resolved locals are now popped off the stack (whoops) 2021-11-17 21:14:41 +01:00
Nocturn9x 2582d18596 Updated config.nim 2021-11-17 20:42:56 +01:00
Nocturn9x 24c7b30271 Bugfixes to name resolution and scopes 2021-11-17 20:40:05 +01:00
Nocturn9x 352af30bee Added basic (untested) support for static and dynamic variable declarations. Minor fixes to main.nim 2021-11-17 19:05:03 +01:00
Nocturn9x 77224d707c Added encoding for collections 2021-11-17 12:10:22 +01:00
Nocturn9x fa2e19583d Removed debugging echo statements 2021-11-16 15:50:01 +01:00
Nocturn9x 51246d552f Updated commit hash in config.nim 2021-11-16 15:48:50 +01:00
Nocturn9x 1515a53cd0 Initial support for global dynamic variable declarations 2021-11-16 15:46:55 +01:00
Nocturn9x 8c3b98f0c6 Added ownership field to declarations 2021-11-16 15:21:05 +01:00
Nocturn9x 3b08932403 Improved error handling for declarations inside functions 2021-11-16 13:32:12 +01:00
Nocturn9x 7194e937fb Added lexical specification for augmented (aka inplace) assignment 2021-11-16 13:31:52 +01:00
Nocturn9x 09766ab243 Added missing exports 2021-11-15 14:27:32 +01:00
Nocturn9x 8bac5fe657 Fixed typos, added more docs. Renamed Local in compiler.nim to a more generic Name. Removed 'raise' from main.nim 2021-11-15 14:26:31 +01:00
nocturn9x 44b52949e4 Fixed bug with collections 2021-11-13 20:47:46 +01:00
nocturn9x 1b3ae004bc Fixed crash when the input file is empty 2021-11-13 20:00:13 +01:00
nocturn9x 2d9260fc95 Made the commit hash truncation 1 byte longer for consistency with JAPL's help message 2021-11-13 19:50:18 +01:00
nocturn9x 087443c7f9 Removed 'raise' statement from loop 2021-11-13 19:48:38 +01:00
nocturn9x 318e72b9e1 Compiler support for BuildList, BuildSet, BuildDict and BuildTuple 2021-11-13 19:48:17 +01:00
nocturn9x 15a2403120 Quality of life improvements and untested support for debugging the new BuildList/Set/Tuple/Dict instructions 2021-11-13 19:47:59 +01:00
nocturn9x 4f400d7aab Changed all references of NimVM to JAPL's 2021-11-13 19:47:22 +01:00
Nocturn9x 5f33af5b2c Updated copyright notices to include contributors to the project 2021-11-13 11:32:48 +01:00
Nocturn9x 014f20bfe8 Finally fixed README 2021-11-12 18:42:55 +01:00