Commit Graph

300 Commits

Author SHA1 Message Date
Sasha Koshka 767bf81b85 Lobbotomized the codebase 2022-09-13 16:31:08 -04:00
Sasha Koshka 21ea27791d Removed the last traces of the word "initialization" 2022-09-13 11:12:38 -04:00
Sasha Koshka 5384dff15b Removed object sections from body 2022-09-13 11:10:42 -04:00
Sasha Koshka ba3825287d Removed the horrendus "ArgumentKindObjectInitializationValues" name 2022-09-13 11:09:41 -04:00
Sasha Koshka 389c9a313c Function section ouputs now print complex initialization values 2022-09-13 11:02:24 -04:00
Sasha Koshka dbd0eb570d Did some ToString stuff 2022-09-12 15:27:29 -04:00
Sasha Koshka 3e9ff7dcd6 Altered syntax tree accordingly
🦀🦀🦀 Object sections are gone 🦀🦀🦀 and members are now stored
in the type specifier.
2022-09-11 16:15:02 -04:00
Sasha Koshka 0af08a4d24 Merged objt and type test cases 2022-09-11 15:35:07 -04:00
Sasha Koshka 362b904900 Rewrote test cases with new syntax 2022-09-11 10:52:53 -04:00
Sasha Koshka 7e972e2132 Syntax tree now stores map of require names -> full paths 2022-09-07 17:12:46 -04:00
Sasha Koshka 596deaf0c3 i forgor 2022-09-07 15:50:37 -04:00
Sasha Koshka d4d7c03830 Function output default values are skimmed over 2022-09-05 15:13:27 -04:00
Sasha Koshka d6db27ccb6 Function root blocks are now skimmed over 2022-09-05 15:06:22 -04:00
Sasha Koshka ae0166b509 Data section initialization values are now skimmed over 2022-09-05 15:04:39 -04:00
Sasha Koshka 613ccc3fba Add skipIndentLevel function 2022-09-05 14:56:35 -04:00
Sasha Koshka cc1eaa2c11 Add test case for skimming 2022-09-05 14:52:37 -04:00
Sasha Koshka 2295e3bd32 Data sections can now be marked as external 2022-09-05 14:09:47 -04:00
Sasha Koshka fe6c82ae9e Added skim boolean that does nothing 2022-09-05 13:46:10 -04:00
Sasha Koshka 49bcbcaa96 Now works with tests 2022-09-05 13:42:17 -04:00
Sasha Koshka 2e79d9c834 Parse -> Fetch, now tries to hit cache 2022-09-05 13:31:38 -04:00
Sasha Koshka a791063d5b Add a parser cache map 2022-09-05 13:23:14 -04:00
Sasha Koshka ef9d518032 Renamed returnsTo to returnees 2022-09-05 11:49:19 -04:00
Sasha Koshka 51def46d91 Updated other test cases and examples to match 2022-09-05 11:35:32 -04:00
Sasha Koshka 5127b80630 Parser has been updated to handle new syntax 2022-09-05 11:28:27 -04:00
Sasha Koshka 0b71ab8787 Added test case with multiple type qualifiers 2022-09-05 11:23:16 -04:00
Sasha Koshka 98a88b71be Updated tree and accessor semantics 2022-09-05 11:20:23 -04:00
Sasha Koshka 031907a6e0 Updated data ToString 2022-09-05 11:13:16 -04:00
Sasha Koshka 7731fa86a1 Updated test case for new syntax 2022-09-05 11:12:55 -04:00
Sasha Koshka f9187ea583 Created getters for func section 2022-09-05 10:39:46 -04:00
Sasha Koshka e06de0ad9a same thing forf phrases and blocks 2022-09-05 02:04:37 -04:00
Sasha Koshka caeed943a3 Added accessors for FaceSection and FaceBehavior 2022-09-05 01:21:51 -04:00
Sasha Koshka bc4b2bd33c Added accessors for ObjtSection and EnumSection 2022-09-05 01:09:29 -04:00
Sasha Koshka 88de6f0908 Added accessors to Argument and ObjtMember 2022-09-05 01:05:03 -04:00
Sasha Koshka 319ed789bf Added accessors to ArrayInitializationValues 2022-09-04 23:47:56 -04:00
Sasha Koshka 3ae8209712 asdjkhaslkjhlkfjhaslkdjhalksjdlksdjalskdj 2022-09-04 22:40:26 -04:00
Sasha Koshka 89834ac390 The syntax tree is no longer passed by reference 2022-09-04 22:30:14 -04:00
Sasha Koshka 7af575e865 Added TypeKindVariableArray 2022-09-04 22:27:06 -04:00
Sasha Koshka 57b98636d0 Added accessors for Identifier and Type 2022-09-04 22:19:19 -04:00
Sasha Koshka 691df94ef4 Removed many cringe pass-by-references 2022-09-04 19:55:47 -04:00
Sasha Koshka f3c72f8f30 The section kind specific maps are gone
I've REPLACED IT with the unified sections map. Interfaces, baby!
2022-09-04 19:30:59 -04:00
Sasha Koshka 9269161138 Tree returns a section interface when given a name 2022-09-04 17:13:49 -04:00
Sasha Koshka d930e72c0c Added more methods to the section interface 2022-09-04 14:04:48 -04:00
Sasha Koshka ded0ce58ec Created Section interface 2022-09-04 14:02:48 -04:00
Sasha Koshka 899f4815bc Did the same thing with default values 2022-09-04 03:31:35 -04:00
Sasha Koshka e0a04e68e3 Did the same thing but with permissions 2022-09-03 23:03:09 -04:00
Sasha Koshka 3f7c779e2b Got rid of useless setters for the traits 2022-09-03 22:58:35 -04:00
Sasha Koshka ef375810fb Did the same thing with type specifiers 2022-09-03 22:56:08 -04:00
Sasha Koshka 8e74216430 Names are now composed from a nameable struct 2022-09-03 22:33:34 -04:00
Sasha Koshka 729ae78eae Location is now included in structs via composition 2022-09-03 22:17:05 -04:00
Sasha Koshka 1274eeb400 Parser now uses new equal signs 2022-09-03 20:32:27 -04:00
Sasha Koshka aff2e55aa5 Separated data.go 2022-09-03 20:16:49 -04:00
Sasha Koshka 6446cbfafc The test case was wrong 2022-09-03 20:07:25 -04:00
Sasha Koshka 9fb75e0228 Function output default values are ToString'd 2022-09-03 19:49:08 -04:00
Sasha Koshka 16e06aacb8 Set phrase initialization values ToString correctly 2022-09-03 19:24:09 -04:00
Sasha Koshka bf2839508d Set phrase initiailzation values are now parsed correctly 2022-09-03 16:37:36 -04:00
Sasha Koshka c6428f6f8e Blocks under phrases are parsed according to phrase kind 2022-09-03 16:28:36 -04:00
Sasha Koshka ac548bf438 `loc` will be the referencing "operator" 2022-09-03 16:24:13 -04:00
Sasha Koshka 48f72e614b parsePhraseCommand also generates a phrase kind value 2022-09-03 16:06:29 -04:00
Sasha Koshka 977ecba78c The entirety of phrase command parsing is in one function
This function is also responsible for setting a kind attribute on
the phrase. This will make the semantic analyzer's job easier.
2022-09-03 15:49:47 -04:00
Sasha Koshka 7bde082f36 Switch cases are parsed now 2022-09-03 15:38:57 -04:00
Sasha Koshka bcd44828dc Blocks under control flow phrases now parse
... except for switch cases. This will be added momentarily.
2022-09-03 15:22:18 -04:00
Sasha Koshka 837b1c76a4 Parser is more restrictive of phrase commands 2022-09-03 13:19:47 -04:00
Sasha Koshka de7234f4d7 Parsing return direction works 2022-09-03 13:14:38 -04:00
Sasha Koshka 645456bb48 Fixed func section test case formatting 2022-09-03 12:56:20 -04:00
Sasha Koshka 257d22b6f7 Parser no longer skips token after an argument level phrase 2022-09-03 12:54:41 -04:00
Sasha Koshka f592e1cc43 Properly ToString'd operator phrase commands 2022-09-03 11:43:02 -04:00
Sasha Koshka 0872eb51a1 Separated phrase parsing into its own file 2022-09-03 11:37:07 -04:00
Sasha Koshka 1efd77acfe Partially implemented operator phrase commands 2022-09-03 11:34:13 -04:00
Sasha Koshka c2a8c4cd97 Added new token kind slices to func.go 2022-09-03 00:40:56 -04:00
Sasha Koshka b220f3dab5 Definition arguments are now parsed correctly 2022-09-03 00:17:25 -04:00
Sasha Koshka 689200085a Putting pointers in interfaces is incredibly stupid 2022-09-03 00:01:01 -04:00
Sasha Koshka dbbe0198d5 Phrases in functions are now ToString'd 2022-09-02 23:38:30 -04:00
Sasha Koshka eee50dc9b0 Added argument level phrase parsing 2022-09-02 22:43:48 -04:00
Sasha Koshka 44021fe875 Added some primitive phrase parsing 2022-09-02 22:37:52 -04:00
Sasha Koshka fccb67e5c0 Added basic func section ToString 2022-09-02 02:36:14 -04:00
Sasha Koshka ed44795664 Lexer now rejects strange chars in integer literals 2022-09-02 01:37:58 -04:00
Sasha Koshka ac7074a819 Added support for "external" keyword 2022-09-02 01:25:22 -04:00
Sasha Koshka 08f111ccbf Various fixes to function parsing
- Newlines are handled better
- Types are actually parsed
2022-09-01 22:10:57 -04:00
Sasha Koshka bcb1b9b6d2 parseFuncSection calls parseFuncArguments now 2022-09-01 21:43:56 -04:00
Sasha Koshka 8ccfc935ab Test logs error even if tree is nil 2022-09-01 21:37:15 -04:00
Sasha Koshka fcfa672652 Cleaned some go vet warnings 2022-09-01 18:40:51 -04:00
Sasha Koshka f585e5119f Removed useless logging in objt sections 2022-09-01 18:03:01 -04:00
Sasha Koshka aec266a82e Fail test on nil tree 2022-09-01 18:02:14 -04:00
Sasha Koshka 8d46188f6c Throw an error on malformed func arguments list 2022-09-01 17:55:57 -04:00
Sasha Koshka 5371c0eeae Added untested parsing of function arguments 2022-09-01 17:42:56 -04:00
Sasha Koshka 7deacff330 AST supports function output default values 2022-09-01 17:13:40 -04:00
Sasha Koshka 65c213f1f3 Fixed import paths 2022-08-30 01:11:10 -04:00
Sasha Koshka c3b6330b22 Added base function parsing 2022-08-25 20:01:12 -04:00
Sasha Koshka 723b506005 Added test code for function sections 2022-08-25 16:08:18 -04:00
Sasha Koshka e630ec6f04 Added function section to tree 2022-08-25 12:02:43 -04:00
Sasha Koshka b7631530bc yeah 2022-08-24 23:54:06 -04:00
Sasha Koshka fa1d8efe55 Its just as I feared. Identifier parsing doesn't work! 2022-08-24 23:50:16 -04:00
Sasha Koshka 89a60e620e Altered objt section test case to not be alphabetically organized 2022-08-24 20:20:55 -04:00
Sasha Koshka cd528552c8 Object sections now parse members into array 2022-08-24 20:19:14 -04:00
Sasha Koshka 067bf2f4df Altered tree so that object members are stored in an array 2022-08-24 20:09:57 -04:00
Sasha Koshka c470997887 Did the same thing to interfaces 2022-08-24 18:57:07 -04:00
Sasha Koshka 715766edb4 Objects can only inherit by specifiying an identifier 2022-08-24 18:52:31 -04:00
Sasha Koshka e316eb7791 Changed bit field syntax to use an & symbol 2022-08-24 18:37:44 -04:00
Sasha Koshka 731cc828ce Added untested bit width parsing 2022-08-24 18:29:15 -04:00
Sasha Koshka 05aa0e6177 Added bitfields to object section test case 2022-08-24 18:23:11 -04:00
Sasha Koshka fb43f96acc Added bit fields to tree and ToString for object member 2022-08-24 18:22:47 -04:00
Sasha Koshka b64fbd9fc4 Split tests into multiple files
This should make it easier to work on sections independantly of one another
without creating merge conflicts
2022-08-24 01:22:24 -04:00
Sasha Koshka 0d366964ca Enum members are now ordered 2022-08-24 01:16:44 -04:00
Sasha Koshka 0b80a55f79 Repaired output formatting of interface section 2022-08-24 00:53:42 -04:00
Sasha Koshka 08935d69c0 Parser actually adds interface behavior to interface 2022-08-24 00:52:37 -04:00
Sasha Koshka 39f8d7e4ac Fixed parsing of interface section behaviors 2022-08-24 00:25:52 -04:00
Sasha Koshka 1f88b54eaa Face sections are actually ToString'd now 2022-08-23 22:25:21 -04:00
Sasha Koshka b0d4ecc83f Added interface section parsing to body 2022-08-23 15:14:44 -04:00
Sasha Koshka 4eac5c67aa Added untested interface section parsing 2022-08-23 15:13:00 -04:00
Sasha Koshka 441b036a1c Updated test case to reflect previous commit 2022-08-23 14:07:56 -04:00
Sasha Koshka 8817d72cb3 Interfaces can inherit other interfaces 2022-08-23 13:56:59 -04:00
Sasha Koshka 3ef1e706b3 Added ToString method to face section 2022-08-23 13:54:44 -04:00
Sasha Koshka 944fc8514e Add correct output for face test case 2022-08-23 13:46:20 -04:00
Sasha Koshka cd55a0ad8d Add interface section to tree 2022-08-23 10:56:37 -04:00
Sasha Koshka c29efd97ba Organized test case members alphabetically 2022-08-23 01:36:40 -04:00
Sasha Koshka aa84d9a429 Removed space alignment and hex literals from test case check
ToString is not capable of producing this
2022-08-23 01:35:35 -04:00
Sasha Koshka 5dcf3b3d1a Fixed ToString formatting of enum 2022-08-23 01:33:28 -04:00
Sasha Koshka d8074fa5cb Enum default values are now parsed properly
Previously the parser would stay on the member name and parse it the default
value. It now moves forward and catches the actual default value.
2022-08-23 01:30:56 -04:00
Sasha Koshka 6a6fe8353e Add untested enum parsing 2022-08-21 11:17:56 -04:00
Sasha Koshka c4f763af5b Added test case for enum section 2022-08-21 02:48:36 -04:00
Sasha Koshka 6fbda34300 Add base enum parsing method 2022-08-21 02:42:25 -04:00
Sasha Koshka 59126f60cc Added enum sections to tree 2022-08-21 02:40:04 -04:00
Sasha Koshka f3b2d11f59 I swear its not my code thats wrong its the test
No like literally this keeps happening
2022-08-20 15:45:45 -04:00
Sasha Koshka 3900bbe7bf Parser test cases now print out line numbers 2022-08-20 15:45:01 -04:00
Sasha Koshka b878017b81 The last item of object sections is now saved. 2022-08-20 15:22:25 -04:00
Sasha Koshka 5271876196 Changed data in object test to use objt keyword instead of type 2022-08-20 13:46:10 -04:00
Sasha Koshka 617d76fc46 Object sections now parse properly 2022-08-20 13:43:10 -04:00
Sasha Koshka 0ceaedbcd8 Object sections now ToString properly 2022-08-20 13:42:09 -04:00
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