Commit Graph

354 Commits (bf6a724783904ae9a4d938c36c452fbc45391b5e)

Author SHA1 Message Date
Tristan B. V. Kildaire c3a1a93b3a First-level precedence-based name collision detection 2021-04-01 15:21:10 +02:00
Tristan B. V. Kildaire 265f00f03b Made error messages more verbose 2021-04-01 08:56:06 +02:00
Tristan B. V. Kildaire d781a92554 More verbose error messages 2021-04-01 08:51:55 +02:00
Tristan B. V. Kildaire 4f32fb9619 Only use grand resolver here now that it is implemented 2021-04-01 08:47:44 +02:00
Tristan B. V. Kildaire c5f45e6a36 Added top down (using module name) resolution to the grand resolver 2021-03-31 21:15:28 +02:00
Tristan B. V. Kildaire ab5ee58055 Removed useless check 2021-03-31 21:08:41 +02:00
Tristan B. V. Kildaire 91231ddebd Removed redundant check 2021-03-31 20:57:29 +02:00
Tristan B. V. Kildaire 0e748f15c1 Refactored name resolution code 2021-03-31 12:54:34 +02:00
Tristan B. V. Kildaire 0fda46c857 Added TODO 2021-03-31 10:34:24 +02:00
Tristan B. V. Kildaire 290028d203 Updated test case 2021-03-31 10:33:59 +02:00
Tristan B. V. Kildaire bcd9ea608a Updated test case 2021-03-31 10:30:25 +02:00
Tristan B. V. Kildaire bd3a1bfd70 Grand resolver completed (one bug remains for parentless niggas)
Updated test cases to test this (I have tested erroneous as well and they work well)
2021-03-30 23:22:37 +02:00
Tristan B. V. Kildaire c3faf06914 Bottom up and top-down name resolution are working 2021-03-30 22:04:11 +02:00
Tristan B. V. Kildaire 2c54333259 Don't allow classes to be defined with same name as their container (direct) 2021-03-30 21:54:27 +02:00
Tristan B. V. Kildaire 9b84fc3428 Allow shadowing of types 2021-03-30 21:36:35 +02:00
Tristan B. V. Kildaire e7905aace2 Made class name constraints good. You can have your duplicate names nested but not at same level 2021-03-30 21:29:57 +02:00
Tristan B. V. Kildaire 16435c204e Epic class inheritance name resolution 2021-03-30 21:07:04 +02:00
Tristan B. V. Kildaire 28bc6c140e WIP 2021-03-30 20:05:16 +02:00
Tristan B. V. Kildaire ec5d70f02c WIP: Class definining 2021-03-30 18:51:32 +02:00
Tristan B. V. Kildaire 5f6c9b5f57 Cleaned up variable declaring
Also declared variables when assignment is completed
2021-03-30 18:02:13 +02:00
Tristan B. V. Kildaire 0445534cda Refactored symbols 2021-03-30 17:35:16 +02:00
Tristan B. V. Kildaire 6649804d4e Refactoring
Removed uneeded type 'Symbol'
2021-03-30 17:31:37 +02:00
Tristan B. Kildaire f693d71a8a Allowed function calls to have multiple arguments passed to them 2021-03-30 16:25:26 +02:00
Tristan B. Kildaire 4610a2ba7b WIP 2021-03-30 16:20:47 +02:00
Tristan B. Kildaire 4ddf3b8710 Seems to work 2021-03-30 10:09:55 +02:00
Tristan B. Kildaire 10a9b8d470 Deuplicate identifier deteciton works 2021-03-30 09:56:37 +02:00
Tristan B. Kildaire 06ba886328 WIP 2021-03-29 22:27:48 +02:00
Tristan B. Kildaire 74fb188d82 Now all containers set their children Statements to be parented to them (container a reference to them) 2021-03-29 22:20:47 +02:00
Tristan B. Kildaire afcf1609b6 Added `parenTo(Statement)` to `Statement` which will allow us to link stuff toghether in containers 2021-03-29 21:48:59 +02:00
Tristan B. Kildaire adc9457a0f WIP: Name resoltuion 2021-03-29 21:47:30 +02:00
Tristan B. Kildaire 0433bccc00 Duplicate variable detection works 2021-03-29 21:26:16 +02:00
Tristan B. Kildaire 9c829302a5 WIP 2021-03-29 21:06:37 +02:00
Tristan B. Kildaire 2cf88b01be WIP: Might need to attach parnt to have linked list linked stuff up, for scope and stuff 2021-03-29 21:06:30 +02:00
Tristan B. V. Kildaire 6edd787588 Fixed `getAllOf` 2021-03-29 19:13:39 +02:00
Tristan B. V. Kildaire 38ef3a49c1 Added support for unary operators
Currently any math operator is allowed in unary form, of course this must be changed

Updated test cases to test this
2021-03-29 17:31:17 +02:00
Tristan B. V. Kildaire 50e84ec06e Fixed bug for `()` parsing 2021-03-29 14:48:47 +02:00
Tristan B. V. Kildaire fc6b28fcca WIP: Expression parsing and data strucure generation 2021-03-29 14:35:52 +02:00
Tristan B. V. Kildaire 61aaa84daf Fixed parsing of dot-path identifiers
Updated test case
2021-03-29 13:48:32 +02:00
Tristan B. V. Kildaire e469cc3ec3 Added functions to lexer to aid in dot-identifier parsing
Made isPathIdentifier public

Updated test case
2021-03-29 13:44:09 +02:00
Tristan B. V. Kildaire e003a9879f Removd testing stuff 2021-03-29 13:34:30 +02:00
Tristan B. V. Kildaire 1883a91e86 Fixed unit tests 2021-03-28 22:41:04 +02:00
Tristan B. V. Kildaire 66ca7e5e5b Updated test case 2021-03-28 22:40:35 +02:00
Tristan B. V. Kildaire 7296bea22a Updated test case 2021-03-28 22:37:35 +02:00
Tristan B. V. Kildaire e8915d7525 Fixed bug for name checking for function parameters 2021-03-28 22:32:44 +02:00
Tristan B. V. Kildaire 165d08f411 Removed debug panic 2021-03-28 22:29:52 +02:00
Tristan B. V. Kildaire c53397fa0d Fixed class name check in class definition 2021-03-28 22:29:33 +02:00
Tristan B. V. Kildaire 6a19e1c430 Fixed bug that made identifier checks not work 2021-03-28 22:27:09 +02:00
Tristan B. V. Kildaire b465d7e5b7 Fixed function calls 2021-03-28 22:05:58 +02:00
Tristan B. V. Kildaire 733bf117c0 Using `parseName` now for whenever a name appears, this is for function calls (not in expressions), typed declarations
We are not gonna do f(x)*f(g); Like no, only a function per statement. So we need not implement expression statements.

Name parsing is done seperately for parseExpression

Also added null check for Function.getVariables, as function calls don't yet get added and add 0 ptrs
2021-03-28 21:54:38 +02:00
Tristan B. V. Kildaire 467bdb6ff9 Added two functions which will be used for checking if we get an identifier that ia valid for being a path identifier and also one for normal identifiers. 2021-03-28 20:11:54 +02:00