Commit Graph

125 Commits

Author SHA1 Message Date
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
nocturn9x d192d5e6b7 Removed capitalization from error messages. Added support for del and assert statements 2021-08-24 11:33:52 +02:00
nocturn9x 3f1c6077bc Added apache license and updated headers 2021-08-23 20:43:18 +02:00
nocturn9x c5f1f438b7 Added support for full scientific notation on floats + octal, binary and hex integer literals 2021-08-23 20:23:35 +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 3948dbcc7a Fixed indentation issue in README 2021-08-21 15:24:22 +02:00
nocturn9x 858d03ccd4 Added placeholder for the garbage collector 2021-08-21 15:23:03 +02:00
nocturn9x a7330e880d Added src/memory and related README section 2021-08-21 15:21:16 +02:00
nocturn9x d20434b798 Re-extended project structure 2021-08-21 15:14:56 +02:00
nocturn9x 4c8178e05c Added note on syntax and inspiration. Improved title 2021-08-21 15:12:27 +02:00
nocturn9x cd84f8a187 Updated grammar with nee assert keyword 2021-08-21 15:05:14 +02:00
nocturn9x aeaaff2555 Simplified README 2021-08-21 15:05:02 +02:00
nocturn9x 9bb1bc8462 Added more expressions to the parser 2021-08-21 15:04:46 +02:00
nocturn9x e1a6aea05c Added assert keyword and removed unused method 2021-08-21 15:03:27 +02:00
nocturn9x 1b4e8d6fab Added basic expressions to recursive descent parser 2021-08-20 18:47:30 +02:00
nocturn9x 5bf36e5f2d Removed and, or, not keywords 2021-08-20 18:41:37 +02:00
nocturn9x 0f9c388c60 Added and, or, not keywords 2021-08-20 18:40:16 +02:00
nocturn9x bc2bec05de Fixed self.check() 2021-08-20 18:27:49 +02:00
nocturn9x 32f375c40c Minor changes to the lexer 2021-08-20 18:14:22 +02:00
nocturn9x efde97ead2 Updated specification with new syntax 2021-08-20 18:13:49 +02:00
nocturn9x 66b6f4521a Fixed lexer bugs, removed struct keyword, added more keywords (class, import, from, async, raise) and triple-character tokens support 2021-08-19 15:57:49 +02:00