Commit Graph

413 Commits

Author SHA1 Message Date
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
018499310c Merge pull request 'type-section' (#4) from type-section into main
Reviewed-on: sashakoshka/arf#4
2022-08-20 02:06:44 +00: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
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: sashakoshka/arf#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