Commit Graph

62 Commits

Author SHA1 Message Date
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
nocturn9x 85f216695a Updated and clarified grammar 2021-08-19 15:32:42 +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 eb8567d6f4 Minor fixes 2021-07-18 21:27:42 +02:00
nocturn9x cbca2a9a47 Minor visual change 2021-07-18 16:26:25 +02:00
nocturn9x e1dba8ce98 Minor visual change 2021-07-18 16:26:08 +02:00
nocturn9x 4acf3f2111 Added warnings section to optimizer step 2021-07-18 16:25:03 +02:00
nocturn9x 866ed8e2a0 typo (inside -> outside) 2021-07-18 16:24:01 +02:00
nocturn9x ef3fa78d86 Updated README 2021-07-18 16:22:43 +02:00
nocturn9x 1262a77fb0 Improved lexer module + began to work on the parser 2021-07-18 16:21:34 +02:00
nocturn9x bb176b4e23 Added compilation pipeline 2021-07-18 16:21:07 +02:00
nocturn9x 9c880c7c5a Updated grammar.md 2021-07-13 16:16:15 +02:00