Nocturn9x
|
10df2d3c17
|
Initial work on the type system. Added ImplicitReturn bytecode optimization. Made checkDecl a template instead of a procedure
|
2022-03-21 15:04:45 +01:00 |
Nocturn9x
|
9babc75995
|
Fixed issues with some grammatical constructs, updated copyright year and minor changes to funDecl
|
2022-03-11 16:46:51 +01:00 |
Nocturn9x
|
65053b7a05
|
Updates to the bytecode spec. Started working a bit on the type system
|
2022-02-03 15:14:31 +01:00 |
Nocturn9x
|
776a2241f7
|
Readded frontend
|
2022-01-31 15:14:26 +01:00 |
Nocturn9x
|
a545341428
|
Swapped frontend and backend directories (wrong naming)
|
2022-01-31 15:14:08 +01:00 |
Nocturn9x
|
633c032601
|
Added Ctrl+E and Ctrl+A bindings
|
2022-01-31 15:10:53 +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
|
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 |
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
|
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
|
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
|
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
|
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
|
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
|
93fdb6bd10
|
Statically resolved locals are now popped off the stack (whoops)
|
2021-11-17 21:14:41 +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
|
fa2e19583d
|
Removed debugging echo statements
|
2021-11-16 15:50:01 +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
|
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
|
318e72b9e1
|
Compiler support for BuildList, BuildSet, BuildDict and BuildTuple
|
2021-11-13 19:48:17 +01:00 |
Nocturn9x
|
5f33af5b2c
|
Updated copyright notices to include contributors to the project
|
2021-11-13 11:32:48 +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
|
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 |