Mattia Giambirtone
|
b1cc2755b8
|
Updated README
|
2022-05-20 16:16:52 +02:00 |
Mattia Giambirtone
|
919f07df55
|
Updated README
|
2022-05-20 16:16:22 +02:00 |
Mattia Giambirtone
|
00ace4c9ab
|
Updated README
|
2022-05-20 16:15:44 +02:00 |
Mattia Giambirtone
|
ef5f00b69a
|
Updated README
|
2022-05-20 16:15:17 +02:00 |
Mattia Giambirtone
|
2a3e05d6b3
|
Updated README
|
2022-05-20 16:14:08 +02:00 |
Mattia Giambirtone
|
e0fa1342a5
|
Updated README
|
2022-05-20 16:03:19 +02:00 |
Mattia Giambirtone
|
751cf644dc
|
Removed unneded flags
|
2022-05-20 16:01:34 +02:00 |
Mattia Giambirtone
|
64368b636a
|
Added tests directory
|
2022-05-20 15:56:16 +02:00 |
Mattia Giambirtone
|
beb853837a
|
Added skeleton for future expansion
|
2022-05-20 15:55:28 +02:00 |
Mattia Giambirtone
|
c9ac6550d2
|
Updated README since this code is now very different from JAPL's
|
2022-05-20 15:52:29 +02:00 |
Mattia Giambirtone
|
1a0587d08b
|
Minor style changes, removed findImpl from compiler, made the VM use the multibyte utilities, bytecode chunks now no longer store AST node objects and use a stream of bytes instead, fixed issues with endScope() in the compiler which would not pop properly from self.names, fixed issues with blockStmt in parser, added more multibyte utilities
|
2022-05-20 15:47:04 +02:00 |
Mattia Giambirtone
|
77bd0c8b6f
|
Minor changes to bytecode file
|
2022-05-18 13:47:07 +02:00 |
Mattia Giambirtone
|
cb21af4aa3
|
Added Makefile, prettyfied code, initial work on pragmas
|
2022-05-18 13:32:32 +02:00 |
Mattia Giambirtone
|
e8cbec94bd
|
Minor bug fixes
|
2022-05-16 19:40:13 +02:00 |
Mattia Giambirtone
|
ffee77b6fc
|
Made function jumps absolute
|
2022-05-16 19:31:17 +02:00 |
Mattia Giambirtone
|
620c56237a
|
Fixed an issue with jump offsets and with functions return types
|
2022-05-16 19:23:38 +02:00 |
Mattia Giambirtone
|
e823a459c8
|
Implemented jump opcodes and LoadUInt64 in the VM, some style and proc changes in the compiler, chunk constants are now type-aware, fixed various inheritance mistakes in the AST node, refined type inference system, moved types back to the compiler and completely redesigned operator parsing to be more modular
|
2022-05-07 10:48:42 +02:00 |
Mattia Giambirtone
|
4af22621ea
|
Updated .gitignore
|
2022-05-04 14:28:52 +02:00 |
Mattia Giambirtone
|
6ec5619d04
|
Added missing typing module
|
2022-05-04 14:28:36 +02:00 |
Mattia Giambirtone
|
c7500f610e
|
Renamed all infer* functions to inferType, minor changes to signatures of declaration() and statement()
|
2022-05-04 14:27:15 +02:00 |
Mattia Giambirtone
|
a1c5430773
|
Collections are no longer a compiler intrinsic. Added parser support for ptr/ref arguments
|
2022-05-04 14:01:38 +02:00 |
Mattia Giambirtone
|
f189b0214e
|
Initial work on simplifying the type system and added more VM utility functions
|
2022-05-02 23:19:31 +02:00 |
Mattia Giambirtone
|
b4fffe18aa
|
Completely reworked the type inference system. Initial work on specializing the constants table in the bytecode chunk
|
2022-05-02 17:26:38 +02:00 |
Mattia Giambirtone
|
0493181262
|
Removed broken optimizer module
|
2022-05-02 12:38:43 +02:00 |
Mattia Giambirtone
|
8d31b79302
|
The parser can now correctly recognize returning functions from other functions
|
2022-05-02 11:13:04 +02:00 |
Mattia Giambirtone
|
f2b60bd9c4
|
Experimental support for multiple arguments of the same type using only one type declaration + various compiler fixes
|
2022-05-01 13:08:02 +02:00 |
Mattia Giambirtone
|
776968bffc
|
Name stropping, added NoOp, minor AST fixes, removed builtin opcodes for most operations
|
2022-04-29 23:04:53 +02:00 |
Mattia Giambirtone
|
299b359344
|
Name stropping now is generic to identifiers
|
2022-04-29 17:15:57 +02:00 |
Mattia Giambirtone
|
cc47113d65
|
Deleted peon bytecode file
|
2022-04-29 16:57:41 +02:00 |
Mattia Giambirtone
|
d81ceb6760
|
Added types module
|
2022-04-29 16:57:14 +02:00 |
Mattia Giambirtone
|
223ba603a7
|
Removed old JAPL type system. Initial dummy VM for testing purposes
|
2022-04-28 18:06:53 +02:00 |
Mattia Giambirtone
|
0e4eb82554
|
Fixed AST inheritance issues and got back to a working state
|
2022-04-28 11:50:10 +02:00 |
Mattia Giambirtone
|
f26541d4ae
|
BROKEN: Initial work on closed-over variables and attempt to cleanup the AST type structure
|
2022-04-27 16:03:48 +02:00 |
Mattia Giambirtone
|
87b46da41a
|
Updated .gitignore to ignore .pbc files
|
2022-04-26 16:22:46 +02:00 |
Mattia Giambirtone
|
d7cb6eaae0
|
Bytecode is now serialized to a file
|
2022-04-26 16:22:23 +02:00 |
Mattia Giambirtone
|
c1152b8859
|
Updated commit hash in config.nim
|
2022-04-26 13:05:17 +02:00 |
Mattia Giambirtone
|
76d2b4e59d
|
Fixed various bugs with parsing and compiling functions as well as with jumping
|
2022-04-26 13:04:40 +02:00 |
Mattia Giambirtone
|
4839c9a341
|
Turned off optimizer (breaks compiler) further work on closures and scope resolution
|
2022-04-26 09:29:59 +02:00 |
Mattia Giambirtone
|
d38ad5aab4
|
Initial work on static name resolution
|
2022-04-21 15:58:42 +02:00 |
Mattia Giambirtone
|
79ca72d983
|
Initial work on type inference and variable declarations. Minor changes to the optimizer
|
2022-04-21 15:25:29 +02:00 |
Mattia Giambirtone
|
e02f159514
|
Initial work on inferring types
|
2022-04-12 12:18:25 +02:00 |
Mattia Giambirtone
|
025f8b463b
|
Fixed parsing of argument-less function. Removed main.nim
|
2022-04-12 10:56:05 +02:00 |
Mattia Giambirtone
|
2c2cd03d4a
|
Minor changes
|
2022-04-11 15:00:15 +02:00 |
Mattia Giambirtone
|
42c47fc0e8
|
Minor changes
|
2022-04-11 14:59:34 +02:00 |
Mattia Giambirtone
|
722d345979
|
Minor changes
|
2022-04-11 14:41:20 +02:00 |
Mattia Giambirtone
|
8a509f2de6
|
Minor changes to optimizer
|
2022-04-07 15:29:19 +02:00 |
Mattia Giambirtone
|
a388333278
|
Hooked up old JAPL components
|
2022-04-07 15:06:15 +02:00 |
Mattia Giambirtone
|
78e169bd82
|
Hooked up the compiler and debugger (VERY experimental)
|
2022-04-07 13:02:23 +02:00 |
Mattia Giambirtone
|
15c46a2f46
|
Parser support for forward declarations
|
2022-04-07 12:15:34 +02:00 |
Mattia Giambirtone
|
e1543f8ba6
|
Removed unused unnest() procedure
|
2022-04-07 11:52:05 +02:00 |