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
Tristan B. V. Kildaire
f92277e9e6
Removed IDENTIFIER
2021-03-28 20:07:44 +02:00
Tristan B. V. Kildaire
64d4a5a001
Updated parser test cases to fail on lexeing failure
2021-03-28 20:04:27 +02:00
Tristan B. V. Kildaire
40322e79f4
Fixed comment
2021-03-28 19:59:54 +02:00
Tristan B. V. Kildaire
20c9270739
Fixed bug in `isPathIdentifier`
2021-03-28 19:59:23 +02:00
Tristan B. V. Kildaire
25bfdfc24e
Moved `isCharacterNumber` to utils.d
2021-03-28 19:49:37 +02:00
Tristan B. V. Kildaire
9c72756336
Added support for lexing `a.a`
...
Moved `isAlpha` to utils.d
Return false on lexing failures, true otherwise
Abort compilation and lexing failures
2021-03-28 19:48:07 +02:00
Tristan B. V. Kildaire
1abbf31f56
WIP: Support for `x.x.x` ideas
2021-03-28 12:11:13 +02:00
Tristan B. V. Kildaire
1af072de8c
Added some more things
2021-03-27 15:27:14 +02:00
Tristan B. Kildaire
5761a454a8
Added name resolver
...
Sub-typed Clazz to Container
Updated test case
2021-03-24 23:19:40 +02:00
Tristan B. Kildaire
31fe91d947
Added statement from parseAccessor call
2021-03-24 23:17:58 +02:00
Tristan B. Kildaire
e663a0792b
In `parseBody()` after calling `parseClass` add the statement generated
2021-03-24 21:50:06 +02:00
Tristan B. Kildaire
4b9ca7588f
TypedEntity now houses `type` field for use by Function as returnType and for use by Variable for `type`
2021-03-23 21:46:27 +02:00
Tristan B. Kildaire
5c8e30f1f5
Run type checker system
...
WIP: Resolution of names
Reworked type hierachy for Enity in relation to Function, Variable and Class
Updated test case
2021-03-23 21:35:13 +02:00
Tristan B. Kildaire
69afebbe04
Add parameters to function
2021-03-22 11:18:56 +02:00
Tristan B. V. Kildaire
c02791d748
Return Entity with correct AccessorType set
2021-03-21 22:51:42 +02:00
Tristan B. V. Kildaire
293399722c
WIP Accessor types
2021-03-21 22:26:48 +02:00
Tristan B. V. Kildaire
f4550a77fc
Return Statement from `parseAccessor()`
2021-03-21 22:01:54 +02:00
Tristan B. V. Kildaire
b04060af80
Added getAllOf(Type) function
2021-03-21 22:01:38 +02:00
Tristan B. V. Kildaire
f1d1f7d610
Wrong input type fixed in TypeChecker, now all functions, globals and class definitions can br printed out
2021-03-21 22:01:28 +02:00
Tristan B. V. Kildaire
779a76acb6
Implemented `getGlobals()` for Program which will return all Variable objects representing variables defined globally
2021-03-21 21:44:22 +02:00
Tristan B. V. Kildaire
87f7f458c8
Call type checker
2021-03-21 21:43:05 +02:00
Tristan B. V. Kildaire
3165f46416
Added type checker
2021-03-21 21:43:01 +02:00
Tristan B. V. Kildaire
db4dd757eb
Null was there because of bug, that should never happen though so I want to unmask any future bugs.
2021-03-21 21:42:53 +02:00
Tristan B. V. Kildaire
a979d560c3
WIP: Symbol table additions
2021-03-21 17:57:56 +02:00
Tristan B. Kildaire
855be6f8f0
We will rather return Variable and modify in `parseAccessor`. And if not then we set to default
2021-03-21 15:56:51 +02:00
Tristan B. V. Kildaire
bc2f92a9f0
Fixed unit tests
2021-03-21 14:27:31 +02:00
Tristan B. V. Kildaire
91e326d517
Added some temporary (going to change them later) unit tests for the parser
2021-03-21 14:23:18 +02:00
Tristan B. V. Kildaire
8fe1737433
Added support for accessors to nested classes, classes and variables
...
Updated test case respectively
2021-03-21 14:03:13 +02:00
Tristan B. V. Kildaire
7adf0aad12
Added check for accessor
2021-03-21 13:32:51 +02:00
Tristan B. V. Kildaire
5121e60092
Should have not been static
...
Added `PROCTECTED` symbol
Added `isAccessor` to check whether or not the given token is an accessor type
2021-03-21 13:32:48 +02:00
Tristan B. V. Kildaire
72616d4354
Updated test case to add missing module header
2021-03-21 13:11:12 +02:00
Tristan B. V. Kildaire
8bde36d586
Added requirement for having a module header at the beginning of each source file
...
Updated test cases accordingly
2021-03-21 13:10:18 +02:00
Tristan B. V. Kildaire
85ab9bde02
Added AcessorType enum and FunctionType enum
2021-03-21 13:01:09 +02:00
Tristan B. V. Kildaire
f1b7a39751
Added some future data structure stubs for type checking
2021-03-21 13:00:56 +02:00
Tristan B. V. Kildaire
fb818c3c86
Added TODO
2021-03-21 12:39:55 +02:00
Tristan B. V. Kildaire
a004ff0233
WIP: Accessors for variable declarations, function definitions and class definitions
2021-03-21 12:39:29 +02:00
Tristan B. V. Kildaire
c7b2d1663f
Added TODO
2021-03-21 12:30:23 +02:00
Tristan B. V. Kildaire
8efeb9a3fb
Fixed function argument parsing
2021-03-21 10:02:23 +02:00
Tristan B. V. Kildaire
4e91bdf6fd
Updated test case for class parsing
2021-03-21 09:45:57 +02:00
Tristan B. V. Kildaire
9f6dd813c8
Added support for class inheritance parsing
2021-03-21 09:45:40 +02:00
Tristan B. Kildaire
ceffcd7b9c
Clean up
2021-03-20 21:26:42 +02:00
Tristan B. V. Kildaire
bf1f6fafa7
Removed uneeded stuff
2021-03-20 21:47:35 +02:00
Tristan B. V. Kildaire
43050f9d3f
Cleaned up
2021-03-20 18:50:48 +02:00
Tristan B. V. Kildaire
a911141da9
Added new test case for if-statement parsing to test lone else's and else if's
2021-03-20 18:43:22 +02:00
Tristan B. V. Kildaire
eaf359ec2d
Updated test case
2021-03-20 18:42:16 +02:00
Tristan B. V. Kildaire
88a5528070
Updated test cases for testing if-statement parsing
2021-03-20 18:41:35 +02:00
Tristan B. V. Kildaire
35132be9d6
If statement parsing completed
...
Also on unknown symbol in `parseBody` remember to error out and exit
2021-03-20 18:41:26 +02:00
Tristan B. V. Kildaire
70bdeed89b
WIP: If statement parsing seems to work and pick up some errors
2021-03-20 18:38:16 +02:00