Commit Graph

132 Commits

Author SHA1 Message Date
ade1a809aa refactor: fix broken build, disable some tests until refactor is done 2024-06-02 08:36:12 -05:00
1d4cec5548 refactor: module constructions 2024-06-01 21:32:16 -05:00
5dafd6ca20 refactor: begin to simplify AST 2024-06-01 18:57:10 -05:00
18f3f21eec Typecheck function block 2024-05-30 16:09:52 -05:00
19cba2a7b3 Split Number into Int & Float 2024-05-06 10:13:21 -05:00
59894a1b64 Add even more tests 2024-05-04 19:08:22 -05:00
6f47dc69b6 More tests 2024-05-04 18:34:44 -05:00
231187d1f1 Add tests 2024-05-04 18:22:36 -05:00
a7417e8a99 Add tests to function parameters 2024-03-18 16:41:11 -05:00
2d32f1a0bc Parse val/var binding & implicit val binding 2024-03-18 09:51:17 -05:00
f60992c303 Parse function return datatype 2024-03-18 09:20:21 -05:00
b0606195f5 Use val/var again instead of let/mut 2024-03-18 08:57:28 -05:00
8a039ffc64 Refactor parsing pt5 2024-03-15 17:42:35 -05:00
61051ed11b Parsing refactor pt4 2024-03-15 17:01:11 -05:00
ec09dbfc0d Refactor parsing pt3 2024-03-15 16:56:45 -05:00
98f67bd097 refactor syntax result pt2 2024-03-15 16:44:29 -05:00
e43eb9e137 Refactor parsing return values 2024-03-15 16:07:28 -05:00
1348020cd7 Simplify ParseResult struct 2024-03-15 15:49:02 -05:00
ac2ab8d2dc Check for function & binding duplication in the global scope 2024-03-09 21:34:05 -05:00
ed9ccab5e1 Add lifetimes 2024-03-09 12:33:11 -05:00
e074e2cd74 Use ref to a Token instead of a string value 2024-03-09 12:21:52 -05:00
83c0c59ae9 Implement a rudimentary symbol table 2024-02-02 06:53:24 -05:00
cb1c0d80f8 Begin work on semantic analysis 2024-01-21 20:27:30 -05:00
2184f7e654 Parse function parameters 2024-01-21 15:06:53 -05:00
a605d182b4 Codegen function call parameters 2024-01-11 19:36:11 -05:00
a6bff95d24 Parse function call parameters 2024-01-11 19:29:19 -05:00
Araozu
02f3c9aee6 Use expressions as a function call callable 2024-01-02 12:45:45 -05:00
61de3b100f [Codegen] Minimal codegen for a Block 2024-01-02 07:06:46 -05:00
2830a1befd Refactor Binding 2023-12-16 20:51:12 -05:00
3e592392a8 Change syntax from val/var to let (mut) 2023-12-16 20:47:42 -05:00
cae07fcc49 small changes 2023-12-09 19:23:03 -05:00
dcffe062a1 Parse binary operators 2023-11-21 21:40:11 -05:00
d4a633f7c0 Parse binary / * 2023-11-21 21:29:55 -05:00
a54abcc394 Structure for parsing operators. Parse unary operator 2023-11-21 21:02:50 -05:00
c045721f46 Change grammar to incorporate binary operators 2023-11-21 07:49:49 -05:00
c02e1c1f8e [Syntax] Parse function call inside a binding 2023-11-04 06:52:46 -05:00
799cda1bf0 [Syntax] Refactor the expression parser to use ParseResult 2023-11-04 06:46:42 -05:00
e02a95f065 fix tests 2023-11-04 05:41:16 -05:00
Araozu
ed0e163283 [Syntax] Refactor binding parsing 2023-10-05 20:26:47 -05:00
Araozu
f769a2ec1d tag 0.0.7 2023-10-05 06:56:21 -05:00
Araozu
18cbe2a8ab [Syntax] Parse var/val binding as statemente 2023-10-05 06:51:48 -05:00
Araozu
0630287e34 [Syntax] Parse function call as a statement 2023-10-05 06:31:24 -05:00
Araozu
9af450eaa0 Refactor 2023-10-01 18:41:00 -05:00
Araozu
971b9d9516 Parse minimal function call 2023-10-01 17:43:59 -05:00
Araozu
c4d13e76bc Parse empty arguments list 2023-10-01 17:37:19 -05:00
Araozu
03b5a1b6de Start function call parsing 2023-10-01 17:18:28 -05:00
Araozu
2e9776de01 [syntax] refactor bindings 2023-09-24 18:51:08 -05:00
Araozu
1fbc353ebf Extract params list parsing 2023-09-21 20:52:55 -05:00
Araozu
fec196d5aa Refactor function declaration parsing 2023-09-21 20:34:51 -05:00
Araozu
8bf24e3f1a Parse minimal block of code 2023-09-20 19:53:46 -05:00
Araozu
bbd82b07c4 Tag 0.0.6 2023-09-19 20:42:03 -05:00
Araozu
6604632d9e [syntax] Ignore whitespace when parsing a function declaration 2023-09-19 20:30:49 -05:00
Araozu
807c46314b [syntax] Alternative function to expect tokens 2023-09-19 20:06:38 -05:00
Araozu
5dd104bcc9 Parse multiple top level declarations 2023-09-17 17:58:56 -05:00
Araozu
19474eb85e Refactor last change 2023-09-10 11:40:46 -05:00
Araozu
8b80dad589 Emit INDENT token on indentation increase 2023-09-10 11:16:34 -05:00
Araozu
2481b7297c Codegen minimal function declaration 2023-09-08 20:28:53 -05:00
Araozu
5f25bae3e0 Parse minimal function declaration 2023-09-08 20:18:19 -05:00
Araozu
94f0b0c92d Refactor AST location 2023-09-07 20:50:51 -05:00
Araozu
c0b5dde9cf Refactor token creation 2023-09-07 20:46:11 -05:00
Araozu
fe8f4f3fd1 Remove lifetimes 2023-09-07 20:32:59 -05:00
Araozu
4f1fc93ceb Remove doc from compiler 2023-09-07 20:18:35 -05:00
Araozu
a88729b395 Move folders to add a new documentation generator binary 2023-03-27 09:41:16 -05:00
Araozu
def93715c7 Refactor. Fix invalid position field of Number tokens 2023-03-16 13:31:24 -05:00
Araozu
f882942f3f Specific reason for failure for syntax error 2023-03-15 16:41:04 -05:00
Araozu
e383d300f2 Show offending line and token when a syntax error is found 2023-03-15 16:33:00 -05:00
Araozu
cdafc40ff7 Add minimal error reporting for syntax analysis 2023-03-14 16:10:43 -05:00
Araozu
f28e7394e9 Scan datatypes. Parse datatype annotations 2023-02-15 16:17:50 -05:00
Araozu
5d40be6d90 Get datatype from an identifier in the symbol table. Improve code documentation 2023-02-11 18:13:05 -05:00
Araozu
8aba492f15 Parse strings and booleans 2023-02-10 12:30:10 -05:00
Araozu
850ed4cdaf Parse simple var binding 2023-02-09 18:44:31 -05:00
Araozu
1c90ee293b Add simple symbol table 2023-01-23 07:58:53 -05:00
Araozu
6cecd6af52 Add binding parsing 2023-01-17 08:04:11 -05:00
Araozu
7d99920a71 Add parsing for simple declarations 2023-01-08 18:09:06 -05:00
Araozu
e080945d37 Start simple AST parsing 2023-01-05 18:20:58 -05:00
Araozu
0a22391bae Fix bugs and improve error messages 2023-01-05 12:48:34 -05:00
Araozu
2c17557aad Fix errors in lexical analyzer 2022-11-28 19:16:55 -05:00
Araozu
0bb71c6822 Scan operators 2022-11-28 18:33:34 -05:00
Araozu
de34dd0b71 Scan simple floating point numbers 2022-11-28 17:31:02 -05:00
Araozu
a788a12eb3 Scan hex values 2022-11-28 17:05:43 -05:00
Araozu
730c5391d9 Scan simple hex value 2022-11-28 16:45:39 -05:00
Araozu
c2946e7a9b Scan integers 2022-11-21 16:58:51 -05:00