Nocturn9x
|
7dc9ea17d5
|
Fixed assignment bug
|
2021-10-23 12:44:05 +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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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 |
nocturn9x
|
099109daa6
|
Added support for FloorDiv (//) and removed redundant variable from Lexer.next()
|
2021-07-31 10:20:16 +02:00 |
nocturn9x
|
eb538f9d4b
|
Removed 'comment' token and added FloorDiv token
|
2021-07-31 10:19:39 +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 |