Commit Graph

50 Commits

Author SHA1 Message Date
Nocturn9x 13a6d71cfa Minor formatting and language changes to bytecode spec 2022-03-14 09:09:42 +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 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 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 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 12afed8419 Initial work on bytecode code section 2021-11-21 11:37:20 +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 77224d707c Added encoding for collections 2021-11-17 12:10:22 +01:00
Nocturn9x 7194e937fb Added lexical specification for augmented (aka inplace) assignment 2021-11-16 13:31:52 +01:00
nocturn9x 4f400d7aab Changed all references of NimVM to JAPL's 2021-11-13 19:47:22 +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 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 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 759c4a4214 Updared grammar for try statement 2021-10-29 11:47:18 +02:00
Nocturn9x 73020fd48b Added exception handling parse handlers and slicing support 2021-10-28 15:48:23 +02:00
Nocturn9x c1a0ecca91 Minor reordering and numerous small fixes to grammar. Added try/except/finally/else syntax 2021-10-28 09:57:03 +02:00
Nocturn9x dc7c6b5f6d Added parser support for the 'defer' keyword 2021-10-27 18:47:16 +02:00
nocturn9x 16f1ffb7d0 Added lambda functions as expressions. Added 'as', 'is' and 'of' binary operators. Added collection literals. Renamed isLiteral to isConstant to better reflect usage. Added isLiteral for all literals, including collections. Fixed some edge cases with nested function scopes. Simplified some representation of AST nodes 2021-10-24 19:08:17 +02:00
nocturn9x e6dbc3cad6 Added 'is', 'as' and 'of' 2021-10-24 17:01:03 +02:00
nocturn9x d0a252e13c Fixed assignment expression, made lambda an expression 2021-10-24 16:39:32 +02:00
Nocturn9x 151b8da0d5 Initial (semi-broken) support for await and yield statements/expressions. Minor changes to the lexer and grammar 2021-10-25 11:50:12 +02:00
Nocturn9x 118b8e5ffc Added differentiation between yield statement and yield expressions and added missing semicolon to delStmt 2021-10-23 12:46:11 +02:00
Nocturn9x 73c00ab4ea Added missing '?' grammar rule for import statements 2021-10-23 12:00:26 +02:00
Nocturn9x 7a80bb071f Fixed grammar rule for import statements 2021-10-23 11:59:42 +02:00
Nocturn9x 941a5221ad Extended bytecode spec with notes on various types 2021-10-22 09:39:28 +02:00
Nocturn9x a75342d27b Added headers 2021-10-20 16:25:56 +02:00
Nocturn9x 9580dc3745 Fixed missing quotes around declaration modifier 2021-10-20 16:17:26 +02:00
Nocturn9x 06b57f143a Fixed missing verb 2021-10-20 16:10:59 +02:00
Nocturn9x b9ed2d1410 Fixed unix epoch time 2021-10-20 16:09:51 +02:00
Nocturn9x 9043af131a Fixed missing article in sentence 2021-10-20 16:06:59 +02:00
Nocturn9x 602c7e8c57 Laid out initial bytecode spec 2021-10-21 12:22:37 +02:00
nocturn9x a2f9456de4 Removed support for the let keyword. Made the optimizer act in-place in most cases. Constant declarations now require initialization. Slight changes to main.nim due to changes in the optimizer 2021-10-16 17:50:31 +02:00
nocturn9x 342c3125b8 Removed accidentally pasted rule from text 2021-09-27 15:48:26 +02:00
nocturn9x 1dbc0bb81c Completely redesigned the AST structure: parsing is almost complete. Formal spec should be mostly fine as well 2021-09-26 16:26:36 +02:00
nocturn9x 3b287aad7f Added 'yield' expression support 2021-09-14 16:12:48 +02:00
nocturn9x 6bc713b2d0 Removed 'dynamic' keyword and extended classDecl to allow for multiple inheritance 2021-09-14 11:00:00 +02:00
nocturn9x 546de1dcb6 Finished all statements, updated grammar, done variable declaration, laid out class/fun/lambda 2021-09-05 19:25:36 +02:00
nocturn9x d192d5e6b7 Removed capitalization from error messages. Added support for del and assert statements 2021-08-24 11:33:52 +02:00
nocturn9x 08058453f7 Improved grammar for float literals to allow a wider range of notations. Also added binary, octal and hexadecimal integer literals 2021-08-23 20:20:22 +02:00
nocturn9x cd84f8a187 Updated grammar with nee assert keyword 2021-08-21 15:05:14 +02:00
nocturn9x efde97ead2 Updated specification with new syntax 2021-08-20 18:13:49 +02:00
nocturn9x 85f216695a Updated and clarified grammar 2021-08-19 15:32:42 +02:00
nocturn9x 925ad52293 Added escape sequence support for string literals, string prefixes, multi-line strings. Ditched multi-line comments and changed inline comment character to '#'. Updated grammar accordingly 2021-07-27 14:11:51 +02:00
nocturn9x 9c880c7c5a Updated grammar.md 2021-07-13 16:16:15 +02:00
nocturn9x 7eff6834c7 Added headers to bytecode.md 2021-07-13 16:15:49 +02:00
nocturn9x 7abf56a884 Typo 2021-07-13 16:12:08 +02:00
nocturn9x 22b71f9dbe Shortened line 2021-07-13 16:11:08 +02:00
nocturn9x 22181c7f78 Added docs 2021-07-13 16:09:40 +02:00