Commit Graph

72 Commits

Author SHA1 Message Date
Sasha Koshka edb9c1a0b6 Fixed assignment to entry in nil map 2022-08-20 13:29:04 -04:00
Sasha Koshka bd433fc65d Untested object section parsing 2022-08-20 13:26:24 -04:00
Sasha Koshka c847d2187d Fixed the object section test 2022-08-20 13:25:43 -04:00
Sasha Koshka cb2264977a Added object sections to the tree for real lol 2022-08-20 13:24:56 -04:00
Sasha Koshka 790e7e632e Removed recursive member parsing nonsense from type section 2022-08-20 12:50:32 -04:00
Sasha Koshka fc1568aece Updated ToString methods to match new tree structure 2022-08-20 12:40:44 -04:00
Sasha Koshka 222c47ced9 Altered tree to separate object and blind type definitions 2022-08-20 02:46:40 -04:00
Sasha Koshka da6d587a48 Split test cases between blind types and objt types 2022-08-20 02:42:52 -04:00
Sasha Koshka 78b8b9dacd Fixed test case for parser
The correct output string was missing a type specifier. The lexer now passes
this test.
2022-08-19 11:37:30 -04:00
Sasha Koshka 2605d1fb09 Fixed nested complex initialization values not parsing 2022-08-19 11:36:30 -04:00
Sasha Koshka 9dce9b2f75 Fixed test formatting 2022-08-19 03:05:25 -04:00
Sasha Koshka 9b4279c052 Fixed ToString of type nodes 2022-08-19 03:03:36 -04:00
Sasha Koshka 2296765e81 Added recursive parsing of type nodes 2022-08-19 03:01:47 -04:00
Sasha Koshka 19d0b3f455 Complex default values of type nodes now ToString properly 2022-08-19 02:36:56 -04:00
Sasha Koshka e25e7bdf14 Parser can now parse array and object initializations 2022-08-19 02:34:17 -04:00
Sasha Koshka 63419165dd Moved most of type section parsing into reusable type node parsing method 2022-08-19 02:08:18 -04:00
Sasha Koshka 69aaae8f14 Restructured type definitions to use a node tree 2022-08-18 23:38:32 -04:00
Sasha Koshka 717474a59e Removed unnescessary println statements (oopsie) 2022-08-18 20:09:27 -04:00
Sasha Koshka ef90115a1b Fixed some test case formatting 2022-08-18 20:09:04 -04:00
Sasha Koshka cced825f74 Changed this one thing to the other thing 2022-08-18 19:40:35 -04:00
Sasha Koshka 9fd3fb1263 Added basic ToString method to TypeSection 2022-08-18 17:45:34 -04:00
Sasha Koshka 5c2a7aeb07 Created base for type section parsing 2022-08-18 17:39:19 -04:00
Sasha Koshka bc9beb0317 Created test case for type section 2022-08-18 16:56:42 -04:00
Sasha Koshka a548dcc585 Changed permission codes to only determine private/public/readonly
Changing permissions within the module was redundant and would have just
conflicted with the :mut type qualifier. This is easier to understand.
2022-08-18 12:09:17 -04:00
Sasha Koshka 39e4fbe844 Replaced references to file.Error with infoerr.Error 2022-08-18 00:58:40 -04:00
Sasha Koshka 63110d9a32 Removed bad spacing in ObjectInitializationValues.ToString
If a value had more initialzation values inside of it, it would leave a space
before the newline. This was causing the parser test to believe the parser to be
failing. The parser now passes the test.
2022-08-17 19:40:16 -04:00
Sasha Koshka 6a5851c9eb Parser tests now show exact line and column where data is mismatched 2022-08-17 19:36:33 -04:00
Sasha Koshka d78f150336 Removed data test case initializing pointers with phrases
Phrase parsing is out of scope for this branch. It will be implemented at the
same time as function parsing.
2022-08-17 14:16:54 -04:00
Sasha Koshka e5b92009f0 Re-arranged data parsing test case to be alphabetical 2022-08-17 13:53:08 -04:00
Sasha Koshka 98fb4e9c66 In ToString methods, maps are sorted alphabetically before output
This makes the output of ToString methods deterministic, and as such they can be
used for testing.
2022-08-17 13:50:33 -04:00
Sasha Koshka aee90757e3 Object initialization value parsing is now done recursively 2022-08-17 13:26:18 -04:00
Sasha Koshka 31bb36a4f7 Reworked parsing object initialization values 2022-08-17 12:53:35 -04:00
Sasha Koshka 384de58d41 Added previousToken method to parser 2022-08-17 12:39:26 -04:00
Sasha Koshka 8c03aa880b Reworked array initialization value parsing 2022-08-17 11:30:17 -04:00
Sasha Koshka 7bb6582e01 Added default nil argument kind 2022-08-17 01:07:12 -04:00
Sasha Koshka 0ad1c0b2f4 Fixed extraneous newlines after complex initialization values 2022-08-17 01:04:52 -04:00
Sasha Koshka 9ca1be2204 Fixed array initialization value parsing 2022-08-17 00:55:53 -04:00
Sasha Koshka 0dd9368393 Reworked data section so it stores single initialization argument 2022-08-17 00:49:49 -04:00
Sasha Koshka bd42c95de0 Parser can now sort of parse object member initialization values 2022-08-17 00:14:55 -04:00
Sasha Koshka bd456b72e9 Argument.ToString can now recover on nil interface value 2022-08-17 00:13:14 -04:00
Sasha Koshka eb3fb65c9b Changed object initialization values to be a map 2022-08-16 23:45:25 -04:00
Sasha Koshka bb2948d397 Added parsing array initialization values 2022-08-16 21:31:23 -04:00
Sasha Koshka 210e527b3a parseType method now understands arrays with undefined length 2022-08-16 20:55:43 -04:00
Sasha Koshka 97cb6e54eb Type.ToString now understands array lengths 2022-08-16 20:53:27 -04:00
Sasha Koshka 9e01eef45b Added elipsis token 2022-08-16 20:24:27 -04:00
Sasha Koshka efb3bbe21b Added base for parsing initialization values 2022-08-16 20:10:47 -04:00
Sasha Koshka c172c111d8 Rethought how object and array literals will work 2022-08-16 17:45:31 -04:00
Sasha Koshka 16bca57e36 Fixed numerous problems related to type parsing 2022-08-16 17:21:10 -04:00
Sasha Koshka 5e2d8c9955 Parser can now ToString data sections properly 2022-08-16 16:37:20 -04:00
Sasha Koshka 5c23c59c92 Added parsing primitive arguments 2022-08-16 16:27:52 -04:00