Commit Graph

195 Commits

Author SHA1 Message Date
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 7dc9ea17d5 Fixed assignment bug 2021-10-23 12:44:05 +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 ef8a26492a Added checks for break and continue outside loops in the parser + some minor fixes/typos 2021-10-23 11:55:48 +02:00
Nocturn9x 8070803d05 Generalized errors and moved them to src/meta/errors.nim. Further work in the compiler 2021-10-23 11:48:52 +02:00
Nocturn9x 7237141ec1 Parser bugfixes + small changes in initializer methods for parser and compiler. Added generic error type for NimVM parsing exceptions 2021-10-23 09:12:05 +02:00
Nocturn9x 4ad34f30e4 Laid groundwork for the compiler 2021-10-23 09:00:16 +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 2e42e0fcb9 Slightly optimized constant folding of block statements 2021-10-15 15:46:27 +02:00
Nocturn9x 31c6f300fa Added constant folding for default arguments in function declarations 2021-10-15 15:33:12 +02:00
Nocturn9x 13efaa5e17 Added constant folding for string multiplication 2021-10-15 15:19:23 +02:00
Nocturn9x f2cc2d0ef4 Edited docstring for Lexer.error() 2021-10-05 10:15:10 +02:00
nocturn9x 69e20e4446 Made yield expressions more consistent and allowed them as default arguments in function declarations. Fixed parser bug with nil assignments and added a warning about dynamic const declarations in the optimizer 2021-10-04 14:01:21 +02:00
nocturn9x a9c09bd585 Optimizer now folds constants in function calls. Added constant folding for string addition 2021-10-01 10:06:02 +02:00
nocturn9x 7f8574cbba \r\n is no longer automatically converted to \n or \r on non-windows platforms 2021-10-01 09:47:00 +02:00
nocturn9x 4a06f9cbf2 Added LF conversion for darwin 2021-09-30 18:46:33 +02:00
nocturn9x 12f388949c Updated readme 2021-09-28 18:14:41 +02:00
nocturn9x b3b7b29045 Updated readme 2021-09-28 18:12:35 +02:00
nocturn9x e0701d8d9a Added missing bitwise operators to parser. Added missing string representation for singletons AST nodes. Improved and bugfixed optimizer 2021-09-28 18:07:08 +02:00
nocturn9x 3fcdb3ec0a Better over- and underflow handling in the optimizer 2021-09-27 19:33:37 +02:00
nocturn9x 89f57b4c07 Added main.nim (finally) 2021-09-27 19:30:11 +02:00
nocturn9x 04cbe291c8 Removed main.nim from gitignore 2021-09-27 19:30:00 +02:00
nocturn9x 63bbf63e3e More binary operation support for the optimizer 2021-09-27 19:29:45 +02:00
nocturn9x 6625eda5ee Started to work on the optimizer and added skeleton for utility module 2021-09-27 17:45:26 +02:00
nocturn9x 6b921342e4 Updated gitignore 2021-09-27 15:50:32 +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 a2caa6214f Completely rewrote AST with a less flexible, but easier to read and understand design 2021-09-14 16:14:48 +02:00
nocturn9x 3b287aad7f Added 'yield' expression support 2021-09-14 16:12:48 +02:00
nocturn9x a11e5cfb11 Removed '!' token and fixed duplicate 'inf' entry in keywords table. Removed TokenType.Inf in favor of TokenType.Infinity and renamed TokenType.NaN to TokenType.NotANumber 2021-09-14 11:05:41 +02:00
nocturn9x 63e2912d81 Removed 'dynamic' keyword 2021-09-14 11:00:50 +02:00
nocturn9x 6bc713b2d0 Removed 'dynamic' keyword and extended classDecl to allow for multiple inheritance 2021-09-14 11:00:00 +02:00
nocturn9x f9ce99b3ff Removed most redundant fully-qualified enum names 2021-09-14 10:53:02 +02:00
nocturn9x 1042093eeb Typo (TokenType.Function -> TokenType.Fun) 2021-09-05 19:26:27 +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 e6e8a271a5 Added for and while loops to parser 2021-09-02 09:28:02 +02:00
nocturn9x 45385b58a2 Moved parser and lexer to exception-based error handling. Fixed bug in the parser with mul (did not match '*'). Improved escape sequence support in lexer and fixed minor bugs. Also added format strings and improved string parsing 2021-08-24 19:16:28 +02:00
nocturn9x 6c6d8236c4 Reserved keyword foreach for future use and updates AST with previously added reserved keywords 2021-08-24 15:44:40 +02:00
nocturn9x 3a25803346 Added break, return, continue and import keywords 2021-08-24 15:30:50 +02:00
nocturn9x 00dda45e48 Added support for the dynamic keyword, reserved for future use 2021-08-24 15:14:16 +02:00
nocturn9x 15774586f8 Added dummy support for async/await keywords to reserve them for the future 2021-08-24 15:13:33 +02:00
nocturn9x 85004e24b6 Added block statements 2021-08-24 12:26:38 +02:00