Commit Graph

190 Commits

Author SHA1 Message Date
Sasha Koshka f978621673 Parse basic information about data sections (name, type) 2022-08-16 10:44:02 -04:00
Sasha Koshka ac40fa96e5 Improved parser test
Created new cases involving mutable data and phrase initialization arguments,
and always print out the correct and parsed trees.
2022-08-16 01:55:22 -04:00
Sasha Koshka 85b7938843 ParseBody now has a loop, and errors on unrecognized section type 2022-08-15 21:20:13 -04:00
Sasha Koshka d081f363b1 Add guideline I forgot to add earlier 2022-08-15 17:21:34 -04:00
Sasha Koshka e42bad5810 Identifiers can no longer have arguments in them
Previously [[something something].something] would have been syntactically
correct. This can lead to ugly and cluttered syntax due to violating the one
thing per line guideline (that I've forgotten to write down) and would make the
parser incredibly convoluded. Member selection in arf is not an operator and
should not be treated as such. It would be much better to just use variables for
this.
2022-08-15 17:05:57 -04:00
Sasha Koshka 614b5664fc Parser calls ParseDataSection 2022-08-15 15:09:07 -04:00
Sasha Koshka 8b28fe5a4c Added a comma token 2022-08-15 14:50:09 -04:00
Sasha Koshka 608162fa92 Fixed bug in number lexing function that prevented reading zero 2022-08-15 14:42:32 -04:00
Sasha Koshka d27c0ff07c Added single digit zero and eight to lexer number test 2022-08-15 14:32:59 -04:00
Sasha Koshka 7fc51c278f Fixed issue with Error.Error not positioning marker correctly 2022-08-15 14:30:54 -04:00
Sasha Koshka 3a3c588023 Added data test 2022-08-15 14:23:53 -04:00
Sasha Koshka 00bcfaab0b Parser tests now work by checking the ToString() of the parsed tree 2022-08-15 14:17:29 -04:00
Sasha Koshka d91423863b Added ToString methods for syntax tree nodes 2022-08-15 14:04:57 -04:00
Sasha Koshka b02ff6cda6 Created structs needed to represent a data section 2022-08-15 01:47:42 -04:00
Sasha Koshka 0a067524ce Added base parse body function 2022-08-14 22:38:57 -04:00
sashakoshka 8f42fa9c2a Add some more guidelines to readme 2022-08-12 20:32:58 -04:00
Sasha Koshka 714aca5196 Fix parseMeta not getting enough tokens
Parser now passes TestMeta
2022-08-12 17:12:38 -05:00
Sasha Koshka 033e64fc54 Parser can now print out a list of expected token kinds 2022-08-12 17:09:37 -05:00
Sasha Koshka b3071d4ac9 Token kind values can now be described 2022-08-12 16:30:32 -05:00
Sasha Koshka f23c3a234a Added metadata parser 2022-08-12 16:22:51 -05:00
Sasha Koshka 856d5763d3 Lexer tokens are now created by the lexer
This is so positional information can be accurately embedded into them.
2022-08-12 14:34:07 -05:00
Sasha Koshka accf528869 Locations and tokens are now capable of creating errors on their own 2022-08-12 13:51:38 -05:00
Sasha Koshka 7914f0df45 Location now stores width instead of Error 2022-08-12 13:43:09 -05:00
Sasha Koshka 050c956787 Added expect and nextToken methods to parser 2022-08-12 13:33:21 -05:00
Sasha Koshka 18bd681082 Parser now understands the separation between files
This needs to be done because each file has a metadata section at the top.
2022-08-12 12:02:20 -05:00
Sasha Koshka 2019c67bbb Created basic test for parser 2022-08-12 11:55:17 -05:00
Sasha Koshka f4f19a809a Lexer now eats :arf symbol at file beginning 2022-08-12 10:38:23 -05:00
Sasha Koshka c09c9860b8 Parser tests are now arf files 2022-08-12 10:26:16 -05:00
Sasha Koshka 81b47f7734 Replaced all occurences of github.com with git.tebibyte.media 2022-08-12 10:21:36 -05:00
Sasha Koshka 09170e390d Created base for parser
The parser now handles file opening and invokes the lexer.
2022-08-12 10:11:43 -05:00
Sasha Koshka 5a55c9ac87 Check off lexer in readme 2022-08-11 18:37:00 -05:00
Sasha Koshka 31a2d84483 Removed erroneous indentation from indent test file
Need to find a more controlled and accurate way to test erroneous indentation.
Possibly by analyzing the returned error object.
2022-08-11 18:34:02 -05:00
Sasha Koshka 2a7111e700 Colored error line/column numbers as well 2022-08-11 13:16:59 -05:00
Sasha Koshka dfa64f3c3d Added color to errors 2022-08-11 13:15:57 -05:00
Sasha Koshka ee9fa3a766 Indentation tokens now carry their indentation level
They are no longer stored in sequence
2022-08-11 12:53:20 -05:00
Sasha Koshka 471eb863f4 Created indent test 2022-08-11 12:47:50 -05:00
Sasha Koshka 71157122d6 Added support for hex, octal, and unicode escape sequences 2022-08-11 12:39:49 -05:00
Sasha Koshka f7a823687e Added new test for string and rune literals (which it passes) 2022-08-11 12:12:41 -05:00
Sasha Koshka 4f37715a8c Hexidecimal numbers are now properly read 2022-08-11 04:25:56 -05:00
Sasha Koshka 7a0ed247e2 Added number lexing unit test 2022-08-11 04:23:06 -05:00
Sasha Koshka 6acc11d046 Removed debug rune printing th 2022-08-11 04:19:39 -05:00
Sasha Koshka 92c3e41810 Merge pull request 'pass-test-tokenize-all' (#1) from pass-test-tokenize-all into main
Reviewed-on: #1
2022-08-11 09:07:36 +00:00
Sasha Koshka a0d5b3a1a2 Added basic escape sequences to string parser 2022-08-11 04:05:55 -05:00
Sasha Koshka 4d73fa4b83 Fixed equality issue with int 2022-08-11 03:58:45 -05:00
Sasha Koshka bef5b0328e Fixed PermissionFrom() 2022-08-11 03:52:16 -05:00
Sasha Koshka af6f170833 Normalized whitespace tokens 2022-08-11 03:47:42 -05:00
Sasha Koshka 0a31ea7bf8 Support for digraphs such as &&, <<, ++ 2022-08-11 02:54:20 -05:00
Sasha Koshka 758b85e735 Added naieve string and char literal parsing 2022-08-11 02:47:51 -05:00
Sasha Koshka 3768e3454f Added float support 2022-08-11 02:17:35 -05:00
Sasha Koshka 40ad569870 Collapsed all number tokenization functions into just one 2022-08-11 02:03:54 -05:00