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 |
Nocturn9x
|
5cc2a60c8c
|
Fixed many bugs in the serializer and added (de)serialization output to main.nim
|
2021-11-12 17:47:11 +01:00 |
Nocturn9x
|
afa4369321
|
Made the serializer follow the spec (the 3 byte header was missing)
|
2021-11-12 16:56:41 +01:00 |
Nocturn9x
|
df67e7db64
|
Initial work for loadBytes and removed dumpBytes
|
2021-11-12 16:35:55 +01:00 |
Nocturn9x
|
3d4680e94d
|
Updated bytecode spec to take singletons into account
|
2021-11-12 16:27:12 +01:00 |
Nocturn9x
|
3fde477de6
|
Added serialization for singletons and updated bytecode spec
|
2021-11-12 16:15:30 +01:00 |
Nocturn9x
|
cdd529dbd0
|
Fixed some compiler bugs with emitting constants (bin/oct/hex), added string constants to literal() (whoopsie) and implemented basic serialization in Serializer.dumpBytes
|
2021-11-12 15:37:00 +01:00 |
Nocturn9x
|
b252749d0e
|
Added compiler support for collection literals
|
2021-11-12 14:20:14 +01:00 |
Nocturn9x
|
23fe444a9e
|
Added binary operations in compiler. Minor changes to bytecode spec. Initial ground work on the serializer
|
2021-11-12 13:29:26 +01:00 |
Nocturn9x
|
ac8b21f21b
|
Added support for unary + for consistency, initial working compiler for unary operations and literals (the optimizer has been disabled to show the work of the compiler)
|
2021-11-12 11:52:35 +01:00 |
nocturn9x
|
e249f0bf7b
|
Further ground work in the compiler
|
2021-11-08 10:14:46 +01:00 |
nocturn9x
|
08f68f09df
|
Added opcodes to build collection literals
|
2021-10-31 10:43:45 +01:00 |
nocturn9x
|
033aac50c2
|
Further initial work on the compiler + fixed some parsing bugs with unterminated collection literals. Added initial serializer module for bytecode caching to file. Made token objects value types
|
2021-10-31 10:43:02 +01:00 |
Nocturn9x
|
53741cb0df
|
Started ground work for the compiler
|
2021-10-30 13:21:54 +02:00 |
Nocturn9x
|
df59bc8f0d
|
Fixed bug in the optimizer when folding exponentiation with negative exponents
|
2021-10-30 11:48:46 +02:00 |
Nocturn9x
|
a15aee3d23
|
Added temporary debugger
|
2021-10-30 15:05:04 +02:00 |
Nocturn9x
|
125e41864f
|
Fixed license headers (whoops), started working on bytecode chunks, removed empty modules. Added config.nim and debugger.nim from japl v1 to start merging the two projects together
|
2021-10-30 14:38:46 +02:00 |
Nocturn9x
|
cce5047a61
|
Got rid of Parser.context attribute (using Parser.currentFunction now) and added basic docs on the Parser object
|
2021-10-29 19:51:09 +02:00 |
Nocturn9x
|
a8bb212092
|
Updated copyright notices
|
2021-10-29 12:41:15 +02:00 |
Nocturn9x
|
ce3fbe6ced
|
Fixed bug that always parsed function bodies as empty blocks
|
2021-10-29 12:38:59 +02:00 |
Nocturn9x
|
fd336b5761
|
Minor documentation change in the lexer
|
2021-10-29 12:35:47 +02:00 |