Nocturn9x
|
a8bb212092
|
Updated copyright notices
|
2021-10-29 12:41:15 +02:00 |
Nocturn9x
|
ce3fbe6ced
|
Fixed bug that always parsed function bodies as empty blocks
|
2021-10-29 12:38:59 +02:00 |
Nocturn9x
|
fd336b5761
|
Minor documentation change in the lexer
|
2021-10-29 12:35:47 +02:00 |
Nocturn9x
|
d81948ed23
|
Significantly improved generator/coroutine detection in the parser, extending it to all expressions variants. Fixed a bug where the lexer would spin up an infinite loop with unterminated string literals
|
2021-10-29 12:33:07 +02:00 |
Nocturn9x
|
f80ac42101
|
Minor changes to error message for missing initializer in constant declaration
|
2021-10-29 10:51:27 +02:00 |
Nocturn9x
|
d905f319b2
|
Ehnanced generator detection code
|
2021-10-29 10:34:07 +02:00 |
Nocturn9x
|
48087419b2
|
Improved error handling and parsing for try statements
|
2021-10-29 09:54:38 +02:00 |
Nocturn9x
|
73020fd48b
|
Added exception handling parse handlers and slicing support
|
2021-10-28 15:48:23 +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
|
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
|
74b8328bf7
|
Implemented yield expressions vs yield statements
|
2021-10-23 12:58:23 +02:00 |
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
|
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
|
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 |
nocturn9x
|
1262a77fb0
|
Improved lexer module + began to work on the parser
|
2021-07-18 16:21:34 +02:00 |
nocturn9x
|
26e1727e72
|
Updated src directory with new project structure
|
2021-07-13 16:10:08 +02:00 |