Commit Graph

90 Commits

Author SHA1 Message Date
Sasha Koshka a5b1385012 Some error message tweaks 2022-10-16 02:58:31 -04:00
Sasha Koshka 291aad8aad Made documentation a bit better 2022-10-12 00:48:55 -04:00
Sasha Koshka 1196bb3801 Privated lexingOperation 2022-10-12 00:00:34 -04:00
Sasha Koshka c42f4f46fc Removed excess data in rune test case 2022-10-04 16:51:53 -04:00
Sasha Koshka 6a72cc9f12 Some test case fixes for the lexer 2022-10-04 16:47:32 -04:00
Sasha Koshka 7af98d1c6f Removed rune literals from analyzer 2022-10-04 16:35:00 -04:00
Sasha Koshka 42a51477ec Added ( and ) tokens 2022-09-13 17:04:43 -04:00
Sasha Koshka a665463932 Lexer no longer freaks out when parsing a 0 2022-09-03 20:27:03 -04:00
Sasha Koshka 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
Sasha Koshka 7bde082f36 Switch cases are parsed now 2022-09-03 15:38:57 -04:00
Sasha Koshka 7714c08846 Tokens with a dash beginning are positioned correctly 2022-09-03 12:58:06 -04:00
Sasha Koshka 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
Sasha Koshka ed44795664 Lexer now rejects strange chars in integer literals 2022-09-02 01:37:58 -04:00
Sasha Koshka eed9e4e7b9 Bit shift assignment tokens now have correct width 2022-08-30 01:35:40 -04:00
Sasha Koshka 067729d435 Parse binary XOR tokens 2022-08-30 01:33:58 -04:00
Sasha Koshka 65c213f1f3 Fixed import paths 2022-08-30 01:11:10 -04:00
Sasha Koshka 06a99ce232 Implement new tokens
I think this is all of them. The test will tell.
2022-08-30 01:02:49 -04:00
Sasha Koshka 1c2194b68a Added text descriptions for new tokens 2022-08-25 23:21:00 -04:00
Sasha Koshka 453a596587 Added test case for new tokens 2022-08-25 23:17:42 -04:00
Sasha Koshka 9232432c35 Implemented thos bad boys 2022-08-25 00:05:40 -04:00
Sasha Koshka b536b01eeb Added new tokens to test case 2022-08-25 00:01:28 -04:00
Sasha Koshka 8175a9d4c5 Added some more tokens to the TokenKind enum 2022-08-24 23:58:21 -04:00
Sasha Koshka 067bf2f4df Altered tree so that object members are stored in an array 2022-08-24 20:09:57 -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 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 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 3407aa7c59 Fixed lexing digraph tokens
Lexer gave wrong token locations and would skip an extra rune when digraph was
not found.
2022-08-16 20:29:00 -04:00
Sasha Koshka 9e01eef45b Added elipsis token 2022-08-16 20:24:27 -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 b3071d4ac9 Token kind values can now be described 2022-08-12 16:30:32 -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 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 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 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