sashakoshka
0af08a4d24
Merged objt and type test cases
2022-09-11 15:35:07 -04:00
sashakoshka
362b904900
Rewrote test cases with new syntax
2022-09-11 10:52:53 -04:00
sashakoshka
3635eef15a
Some ToString functionality
2022-09-10 19:50:18 -04:00
sashakoshka
b3e2d9f822
Progress on data structures for type sections
...
Type specifiers will now store a list of members, instead of
type sections doing that. This will make it possible to do an
inline object definition within a data section, = phrase, etc.
The parser will be reworked to include syntax that supports this,
objects and types will be merged into just a type section, and
face sections will have the added capability of defining function
pointer types.
2022-09-09 20:57:41 -04:00
sashakoshka
cc8ae6c124
Added trail stack
2022-09-09 01:53:53 -04:00
sashakoshka
5f3c5e3b14
Added cool little generic stack
2022-09-09 01:39:04 -04:00
sashakoshka
179c83ba72
Created fetchSection method
...
This method provides a framework for recursively analyzing
sections.
2022-09-09 01:09:17 -04:00
sashakoshka
f3f744c348
Producing more data structures
2022-09-08 12:59:49 -04:00
sashakoshka
7e972e2132
Syntax tree now stores map of require names -> full paths
2022-09-07 17:12:46 -04:00
sashakoshka
596deaf0c3
i forgor
2022-09-07 15:50:37 -04:00
sashakoshka
f6aeae1d55
Created basic data structures for analyzer
2022-09-07 12:20:34 -04:00
sashakoshka
d4d7c03830
Function output default values are skimmed over
2022-09-05 15:13:27 -04:00
sashakoshka
d6db27ccb6
Function root blocks are now skimmed over
2022-09-05 15:06:22 -04:00
sashakoshka
ae0166b509
Data section initialization values are now skimmed over
2022-09-05 15:04:39 -04:00
sashakoshka
613ccc3fba
Add skipIndentLevel function
2022-09-05 14:56:35 -04:00
sashakoshka
cc1eaa2c11
Add test case for skimming
2022-09-05 14:52:37 -04:00
sashakoshka
2295e3bd32
Data sections can now be marked as external
2022-09-05 14:09:47 -04:00
sashakoshka
345cf3fa29
Update heatmap
2022-09-05 13:49:15 -04:00
sashakoshka
fe6c82ae9e
Added skim boolean that does nothing
2022-09-05 13:46:10 -04:00
sashakoshka
49bcbcaa96
Now works with tests
2022-09-05 13:42:17 -04:00
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