dbd0eb570d
Did some ToString stuff
2022-09-12 15:27:29 -04:00
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
0af08a4d24
Merged objt and type test cases
2022-09-11 15:35:07 -04:00
362b904900
Rewrote test cases with new syntax
2022-09-11 10:52:53 -04:00
7e972e2132
Syntax tree now stores map of require names -> full paths
2022-09-07 17:12:46 -04:00
596deaf0c3
i forgor
2022-09-07 15:50:37 -04:00
d4d7c03830
Function output default values are skimmed over
2022-09-05 15:13:27 -04:00
d6db27ccb6
Function root blocks are now skimmed over
2022-09-05 15:06:22 -04:00
ae0166b509
Data section initialization values are now skimmed over
2022-09-05 15:04:39 -04:00
613ccc3fba
Add skipIndentLevel function
2022-09-05 14:56:35 -04:00
cc1eaa2c11
Add test case for skimming
2022-09-05 14:52:37 -04:00
2295e3bd32
Data sections can now be marked as external
2022-09-05 14:09:47 -04:00
fe6c82ae9e
Added skim boolean that does nothing
2022-09-05 13:46:10 -04:00
49bcbcaa96
Now works with tests
2022-09-05 13:42:17 -04:00
2e79d9c834
Parse -> Fetch, now tries to hit cache
2022-09-05 13:31:38 -04:00
a791063d5b
Add a parser cache map
2022-09-05 13:23:14 -04:00
ef9d518032
Renamed returnsTo to returnees
2022-09-05 11:49:19 -04:00
51def46d91
Updated other test cases and examples to match
2022-09-05 11:35:32 -04:00
5127b80630
Parser has been updated to handle new syntax
2022-09-05 11:28:27 -04:00
0b71ab8787
Added test case with multiple type qualifiers
2022-09-05 11:23:16 -04:00
98a88b71be
Updated tree and accessor semantics
2022-09-05 11:20:23 -04:00
031907a6e0
Updated data ToString
2022-09-05 11:13:16 -04:00
7731fa86a1
Updated test case for new syntax
2022-09-05 11:12:55 -04:00
f9187ea583
Created getters for func section
2022-09-05 10:39:46 -04:00
e06de0ad9a
same thing forf phrases and blocks
2022-09-05 02:04:37 -04:00
caeed943a3
Added accessors for FaceSection and FaceBehavior
2022-09-05 01:21:51 -04:00
bc4b2bd33c
Added accessors for ObjtSection and EnumSection
2022-09-05 01:09:29 -04:00
88de6f0908
Added accessors to Argument and ObjtMember
2022-09-05 01:05:03 -04:00
319ed789bf
Added accessors to ArrayInitializationValues
2022-09-04 23:47:56 -04:00
3ae8209712
asdjkhaslkjhlkfjhaslkdjhalksjdlksdjalskdj
2022-09-04 22:40:26 -04:00
89834ac390
The syntax tree is no longer passed by reference
2022-09-04 22:30:14 -04:00
7af575e865
Added TypeKindVariableArray
2022-09-04 22:27:06 -04:00
57b98636d0
Added accessors for Identifier and Type
2022-09-04 22:19:19 -04:00
691df94ef4
Removed many cringe pass-by-references
2022-09-04 19:55:47 -04:00
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
9269161138
Tree returns a section interface when given a name
2022-09-04 17:13:49 -04:00
d930e72c0c
Added more methods to the section interface
2022-09-04 14:04:48 -04:00
ded0ce58ec
Created Section interface
2022-09-04 14:02:48 -04:00
899f4815bc
Did the same thing with default values
2022-09-04 03:31:35 -04:00
e0a04e68e3
Did the same thing but with permissions
2022-09-03 23:03:09 -04:00
3f7c779e2b
Got rid of useless setters for the traits
2022-09-03 22:58:35 -04:00
ef375810fb
Did the same thing with type specifiers
2022-09-03 22:56:08 -04:00
8e74216430
Names are now composed from a nameable struct
2022-09-03 22:33:34 -04:00
729ae78eae
Location is now included in structs via composition
2022-09-03 22:17:05 -04:00
1274eeb400
Parser now uses new equal signs
2022-09-03 20:32:27 -04:00
aff2e55aa5
Separated data.go
2022-09-03 20:16:49 -04:00
6446cbfafc
The test case was wrong
2022-09-03 20:07:25 -04:00
9fb75e0228
Function output default values are ToString'd
2022-09-03 19:49:08 -04:00
16e06aacb8
Set phrase initialization values ToString correctly
2022-09-03 19:24:09 -04:00
bf2839508d
Set phrase initiailzation values are now parsed correctly
2022-09-03 16:37:36 -04:00
c6428f6f8e
Blocks under phrases are parsed according to phrase kind
2022-09-03 16:28:36 -04:00
ac548bf438
loc
will be the referencing "operator"
2022-09-03 16:24:13 -04:00
48f72e614b
parsePhraseCommand also generates a phrase kind value
2022-09-03 16:06:29 -04:00
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
7bde082f36
Switch cases are parsed now
2022-09-03 15:38:57 -04:00
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
837b1c76a4
Parser is more restrictive of phrase commands
2022-09-03 13:19:47 -04:00
de7234f4d7
Parsing return direction works
2022-09-03 13:14:38 -04:00
645456bb48
Fixed func section test case formatting
2022-09-03 12:56:20 -04:00
257d22b6f7
Parser no longer skips token after an argument level phrase
2022-09-03 12:54:41 -04:00
f592e1cc43
Properly ToString'd operator phrase commands
2022-09-03 11:43:02 -04:00
0872eb51a1
Separated phrase parsing into its own file
2022-09-03 11:37:07 -04:00
1efd77acfe
Partially implemented operator phrase commands
2022-09-03 11:34:13 -04:00
c2a8c4cd97
Added new token kind slices to func.go
2022-09-03 00:40:56 -04:00
b220f3dab5
Definition arguments are now parsed correctly
2022-09-03 00:17:25 -04:00
689200085a
Putting pointers in interfaces is incredibly stupid
2022-09-03 00:01:01 -04:00
dbbe0198d5
Phrases in functions are now ToString'd
2022-09-02 23:38:30 -04:00
eee50dc9b0
Added argument level phrase parsing
2022-09-02 22:43:48 -04:00
44021fe875
Added some primitive phrase parsing
2022-09-02 22:37:52 -04:00
fccb67e5c0
Added basic func section ToString
2022-09-02 02:36:14 -04:00
ed44795664
Lexer now rejects strange chars in integer literals
2022-09-02 01:37:58 -04:00
ac7074a819
Added support for "external" keyword
2022-09-02 01:25:22 -04:00
08f111ccbf
Various fixes to function parsing
...
- Newlines are handled better
- Types are actually parsed
2022-09-01 22:10:57 -04:00
bcb1b9b6d2
parseFuncSection calls parseFuncArguments now
2022-09-01 21:43:56 -04:00
8ccfc935ab
Test logs error even if tree is nil
2022-09-01 21:37:15 -04:00
fcfa672652
Cleaned some go vet warnings
2022-09-01 18:40:51 -04:00
f585e5119f
Removed useless logging in objt sections
2022-09-01 18:03:01 -04:00
aec266a82e
Fail test on nil tree
2022-09-01 18:02:14 -04:00
8d46188f6c
Throw an error on malformed func arguments list
2022-09-01 17:55:57 -04:00
5371c0eeae
Added untested parsing of function arguments
2022-09-01 17:42:56 -04:00
7deacff330
AST supports function output default values
2022-09-01 17:13:40 -04:00
65c213f1f3
Fixed import paths
2022-08-30 01:11:10 -04:00
c3b6330b22
Added base function parsing
2022-08-25 20:01:12 -04:00
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
c470997887
Did the same thing to interfaces
2022-08-24 18:57:07 -04:00
715766edb4
Objects can only inherit by specifiying an identifier
2022-08-24 18:52:31 -04:00
e316eb7791
Changed bit field syntax to use an & symbol
2022-08-24 18:37:44 -04:00
731cc828ce
Added untested bit width parsing
2022-08-24 18:29:15 -04:00
05aa0e6177
Added bitfields to object section test case
2022-08-24 18:23:11 -04:00
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
b0d4ecc83f
Added interface section parsing to body
2022-08-23 15:14:44 -04:00
4eac5c67aa
Added untested interface section parsing
2022-08-23 15:13:00 -04:00
441b036a1c
Updated test case to reflect previous commit
2022-08-23 14:07:56 -04:00
8817d72cb3
Interfaces can inherit other interfaces
2022-08-23 13:56:59 -04:00
3ef1e706b3
Added ToString method to face section
2022-08-23 13:54:44 -04:00
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
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