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
15eb96e8ac
Lexer passes all width tests
2022-08-18 11:35:48 -04:00
Sasha Koshka
120976a0f3
Numbers now tokenize with the correct width
2022-08-18 11:32:50 -04:00
Sasha Koshka
bde4bf8493
String and rune literals now have correct width
2022-08-18 11:25:40 -04:00
Sasha Koshka
a013d4caad
Lexer tests now check token width
2022-08-18 11:14:42 -04:00
Sasha Koshka
be9a3603d2
Made structural change to lexer test definitions
2022-08-18 11:02:49 -04:00
Sasha Koshka
54de3d1270
Fixed test columns and widths
2022-08-18 02:06:00 -04:00
Sasha Koshka
a87973c141
Error widths now work properly
2022-08-18 02:04:49 -04:00
Sasha Koshka
85996b2554
Added more error test cases
2022-08-18 01:47:35 -04:00
Sasha Koshka
4780d9cc28
Fixed bug in file where it would report its location one step ahead
2022-08-18 01:35:46 -04:00
Sasha Koshka
bb89009742
Add description method to Location
2022-08-18 01:31:01 -04:00
Sasha Koshka
9e66305001
Created test to check lexer errors
2022-08-18 01:25:02 -04:00
Sasha Koshka
39e4fbe844
Replaced references to file.Error with infoerr.Error
2022-08-18 00:58:40 -04:00
Sasha Koshka
d42d0c5b34
Renamed error module to infoerr
2022-08-18 00:56:45 -04:00
Sasha Koshka
ca5f8202bb
Put Error in its own module
2022-08-18 00:51:19 -04:00
Sasha Koshka
abc6e44fb2
Removed Location's dependency on Error
2022-08-18 00:50:57 -04:00
Sasha Koshka
cce841f48e
Add getters to File
2022-08-18 00:50:39 -04:00
Sasha Koshka
568134a7e9
Add getter functions to Location
2022-08-18 00:42:47 -04:00
Sasha Koshka
57f02ad6f6
Added getter functions to Error
2022-08-18 00:39:08 -04:00
Sasha Koshka
dd8bbf8b13
Lexer now uses go's strconv number parsing functions
...
This allows for better accuracy when parsing floats, at the cost of only
supporting decimal floating point literals. The lexer now passes all tests.
2022-08-18 00:31:27 -04:00
Sasha Koshka
ac85c2c725
Remove line break at top of readme
2022-08-17 21:48:06 -04:00
Sasha Koshka
9b62a9b9ed
Added logo to README
2022-08-17 20:16:48 -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
e069569c3c
Merge pull request 'data-section' ( #3 ) from data-section into main
...
Reviewed-on: #3
2022-08-17 18:21:19 +00: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