Commit Graph
100 Commits
Author SHA1 Message Date
sashakoshka 2e79d9c834 Parse -> Fetch, now tries to hit cache 2022-09-05 13:31:38 -04:00
sashakoshka a791063d5b Add a parser cache map 2022-09-05 13:23:14 -04:00
sashakoshka 447cc08884 Update readme and heatmap 2022-09-05 12:47:03 -04:00
sashakoshka ef9d518032 Renamed returnsTo to returnees 2022-09-05 11:49:19 -04:00
sashakoshka 51def46d91 Updated other test cases and examples to match 2022-09-05 11:35:32 -04:00
sashakoshka 5127b80630 Parser has been updated to handle new syntax 2022-09-05 11:28:27 -04:00
sashakoshka 0b71ab8787 Added test case with multiple type qualifiers 2022-09-05 11:23:16 -04:00
sashakoshka 98a88b71be Updated tree and accessor semantics 2022-09-05 11:20:23 -04:00
sashakoshka 031907a6e0 Updated data ToString 2022-09-05 11:13:16 -04:00
sashakoshka 7731fa86a1 Updated test case for new syntax 2022-09-05 11:12:55 -04:00
sashakoshka f9187ea583 Created getters for func section 2022-09-05 10:39:46 -04:00
sashakoshka e06de0ad9a same thing forf phrases and blocks 2022-09-05 02:04:37 -04:00
sashakoshka caeed943a3 Added accessors for FaceSection and FaceBehavior 2022-09-05 01:21:51 -04:00
sashakoshka bc4b2bd33c Added accessors for ObjtSection and EnumSection 2022-09-05 01:09:29 -04:00
sashakoshka 88de6f0908 Added accessors to Argument and ObjtMember 2022-09-05 01:05:03 -04:00
sashakoshka 319ed789bf Added accessors to ArrayInitializationValues 2022-09-04 23:47:56 -04:00
sashakoshka 0cb6b2bf66 Added a generic map iterator type 2022-09-04 23:05:45 -04:00
sashakoshka 3ae8209712 asdjkhaslkjhlkfjhaslkdjhalksjdlksdjalskdj 2022-09-04 22:40:26 -04:00
sashakoshka 89834ac390 The syntax tree is no longer passed by reference 2022-09-04 22:30:14 -04:00
sashakoshka 7af575e865 Added TypeKindVariableArray 2022-09-04 22:27:06 -04:00
sashakoshka 57b98636d0 Added accessors for Identifier and Type 2022-09-04 22:19:19 -04:00
sashakoshka 691df94ef4 Removed many cringe pass-by-references 2022-09-04 19:55:47 -04:00
sashakoshka 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
sashakoshka 9269161138 Tree returns a section interface when given a name 2022-09-04 17:13:49 -04:00
sashakoshka d930e72c0c Added more methods to the section interface 2022-09-04 14:04:48 -04:00
sashakoshka ded0ce58ec Created Section interface 2022-09-04 14:02:48 -04:00
sashakoshka 899f4815bc Did the same thing with default values 2022-09-04 03:31:35 -04:00
sashakoshka e0a04e68e3 Did the same thing but with permissions 2022-09-03 23:03:09 -04:00
sashakoshka 3f7c779e2b Got rid of useless setters for the traits 2022-09-03 22:58:35 -04:00
sashakoshka ef375810fb Did the same thing with type specifiers 2022-09-03 22:56:08 -04:00
sashakoshka 8e74216430 Names are now composed from a nameable struct 2022-09-03 22:33:34 -04:00
sashakoshka 729ae78eae Location is now included in structs via composition 2022-09-03 22:17:05 -04:00
sashakoshka 4c01d41723 Updated example code 2022-09-03 20:34:50 -04:00
sashakoshka 1274eeb400 Parser now uses new equal signs 2022-09-03 20:32:27 -04:00
sashakoshka a665463932 Lexer no longer freaks out when parsing a 0 2022-09-03 20:27:03 -04:00
sashakoshka cc14292c63 Added equals assignment operator
The set phrase will be removed and just replaced with a single
equals sign. Double equals will be used for comparison. This will
be much easier to understand.
2022-09-03 20:23:27 -04:00
sashakoshka aff2e55aa5 Separated data.go 2022-09-03 20:16:49 -04:00
sashakoshka 6446cbfafc The test case was wrong 2022-09-03 20:07:25 -04:00
sashakoshka 9fb75e0228 Function output default values are ToString'd 2022-09-03 19:49:08 -04:00
sashakoshka 16e06aacb8 Set phrase initialization values ToString correctly 2022-09-03 19:24:09 -04:00
sashakoshka bf2839508d Set phrase initiailzation values are now parsed correctly 2022-09-03 16:37:36 -04:00
sashakoshka c6428f6f8e Blocks under phrases are parsed according to phrase kind 2022-09-03 16:28:36 -04:00
sashakoshka ac548bf438 loc will be the referencing "operator" 2022-09-03 16:24:13 -04:00
sashakoshka 48f72e614b parsePhraseCommand also generates a phrase kind value 2022-09-03 16:06:29 -04:00
sashakoshka 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
sashakoshka 7bde082f36 Switch cases are parsed now 2022-09-03 15:38:57 -04:00
sashakoshka 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
sashakoshka 837b1c76a4 Parser is more restrictive of phrase commands 2022-09-03 13:19:47 -04:00
sashakoshka de7234f4d7 Parsing return direction works 2022-09-03 13:14:38 -04:00
sashakoshka 7714c08846 Tokens with a dash beginning are positioned correctly 2022-09-03 12:58:06 -04:00
sashakoshka 645456bb48 Fixed func section test case formatting 2022-09-03 12:56:20 -04:00
sashakoshka 257d22b6f7 Parser no longer skips token after an argument level phrase 2022-09-03 12:54:41 -04:00
sashakoshka f592e1cc43 Properly ToString'd operator phrase commands 2022-09-03 11:43:02 -04:00
sashakoshka 0872eb51a1 Separated phrase parsing into its own file 2022-09-03 11:37:07 -04:00
sashakoshka 1efd77acfe Partially implemented operator phrase commands 2022-09-03 11:34:13 -04:00
sashakoshka c2a8c4cd97 Added new token kind slices to func.go 2022-09-03 00:40:56 -04:00
sashakoshka 1f68f252e0 Added defer statement to control flow test 2022-09-03 00:17:50 -04:00
sashakoshka b220f3dab5 Definition arguments are now parsed correctly 2022-09-03 00:17:25 -04:00
sashakoshka 689200085a Putting pointers in interfaces is incredibly stupid 2022-09-03 00:01:01 -04:00
sashakoshka dbbe0198d5 Phrases in functions are now ToString'd 2022-09-02 23:38:30 -04:00
sashakoshka eee50dc9b0 Added argument level phrase parsing 2022-09-02 22:43:48 -04:00
sashakoshka 44021fe875 Added some primitive phrase parsing 2022-09-02 22:37:52 -04:00
sashakoshka fccb67e5c0 Added basic func section ToString 2022-09-02 02:36:14 -04:00
sashakoshka 32e5b0ce98 Fixed parser test case
The octal literals with 9 in them were causing the parser to fail.
2022-09-02 01:40:33 -04:00
sashakoshka ed44795664 Lexer now rejects strange chars in integer literals 2022-09-02 01:37:58 -04:00
sashakoshka ac7074a819 Added support for "external" keyword 2022-09-02 01:25:22 -04:00
sashakoshka 08f111ccbf Various fixes to function parsing
- Newlines are handled better
- Types are actually parsed
2022-09-01 22:10:57 -04:00
sashakoshka bcb1b9b6d2 parseFuncSection calls parseFuncArguments now 2022-09-01 21:43:56 -04:00
sashakoshka 09706ef7f3 Commented out some things in func test case
Apparently, cBasicPhrases is somehow causing the mysterious nil
tree bug. this will be investigated further soon.
2022-09-01 21:38:50 -04:00
sashakoshka 8ccfc935ab Test logs error even if tree is nil 2022-09-01 21:37:15 -04:00
sashakoshka d9e58cee0c Uncommented things in func section test 2022-09-01 20:54:10 -04:00
sashakoshka fcfa672652 Cleaned some go vet warnings 2022-09-01 18:40:51 -04:00
sashakoshka f585e5119f Removed useless logging in objt sections 2022-09-01 18:03:01 -04:00
sashakoshka aec266a82e Fail test on nil tree 2022-09-01 18:02:14 -04:00
sashakoshka 8d46188f6c Throw an error on malformed func arguments list 2022-09-01 17:55:57 -04:00
sashakoshka 5371c0eeae Added untested parsing of function arguments 2022-09-01 17:42:56 -04:00
sashakoshka 7deacff330 AST supports function output default values 2022-09-01 17:13:40 -04:00
sashakoshka eed9e4e7b9 Bit shift assignment tokens now have correct width 2022-08-30 01:35:40 -04:00
sashakoshka 067729d435 Parse binary XOR tokens 2022-08-30 01:33:58 -04:00
sashakoshka 05954546eb Remove useless files 2022-08-30 01:11:37 -04:00
sashakoshka 65c213f1f3 Fixed import paths 2022-08-30 01:11:10 -04:00
sashakoshka 06a99ce232 Implement new tokens
I think this is all of them. The test will tell.
2022-08-30 01:02:49 -04:00
sashakoshka c3b6330b22 Added base function parsing 2022-08-25 20:01:12 -04:00
sashakoshka 723b506005 Added test code for function sections 2022-08-25 16:08:18 -04:00
sashakoshka 6bbee2e13b Created comprehensive test case 2022-08-25 15:46:35 -04:00
sashakoshka 777c8df6a4 Changed the logo color because why not lol 2022-08-24 18:57:45 -04:00
sashakoshka c470997887 Did the same thing to interfaces 2022-08-24 18:57:07 -04:00
sashakoshka 715766edb4 Objects can only inherit by specifiying an identifier 2022-08-24 18:52:31 -04:00
sashakoshka e316eb7791 Changed bit field syntax to use an & symbol 2022-08-24 18:37:44 -04:00
sashakoshka 731cc828ce Added untested bit width parsing 2022-08-24 18:29:15 -04:00
sashakoshka 05aa0e6177 Added bitfields to object section test case 2022-08-24 18:23:11 -04:00
sashakoshka fb43f96acc Added bit fields to tree and ToString for object member 2022-08-24 18:22:47 -04:00
sashakoshka b0d4ecc83f Added interface section parsing to body 2022-08-23 15:14:44 -04:00
sashakoshka 4eac5c67aa Added untested interface section parsing 2022-08-23 15:13:00 -04:00
sashakoshka 441b036a1c Updated test case to reflect previous commit 2022-08-23 14:07:56 -04:00
sashakoshka 8817d72cb3 Interfaces can inherit other interfaces 2022-08-23 13:56:59 -04:00
sashakoshka 3ef1e706b3 Added ToString method to face section 2022-08-23 13:54:44 -04:00
sashakoshka 944fc8514e Add correct output for face test case 2022-08-23 13:46:20 -04:00
sashakoshka 714aca5196 Fix parseMeta not getting enough tokens
Parser now passes TestMeta
2022-08-12 17:12:38 -05:00
sashakoshka 033e64fc54 Parser can now print out a list of expected token kinds 2022-08-12 17:09:37 -05:00