Commit Graph

79 Commits

Author SHA1 Message Date
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
ed44795664 Lexer now rejects strange chars in integer literals 2022-09-02 01:37:58 -04:00
eed9e4e7b9 Bit shift assignment tokens now have correct width 2022-08-30 01:35:40 -04:00
067729d435 Parse binary XOR tokens 2022-08-30 01:33:58 -04:00
65c213f1f3 Fixed import paths 2022-08-30 01:11:10 -04:00
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
b3071d4ac9 Token kind values can now be described 2022-08-12 16:30:32 -05:00
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
accf528869 Locations and tokens are now capable of creating errors on their own 2022-08-12 13:51:38 -05:00
7914f0df45 Location now stores width instead of Error 2022-08-12 13:43:09 -05:00
f4f19a809a Lexer now eats :arf symbol at file beginning 2022-08-12 10:38:23 -05:00
c09c9860b8 Parser tests are now arf files 2022-08-12 10:26:16 -05:00
81b47f7734 Replaced all occurences of github.com with git.tebibyte.media 2022-08-12 10:21:36 -05:00
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
ee9fa3a766 Indentation tokens now carry their indentation level
They are no longer stored in sequence
2022-08-11 12:53:20 -05:00
471eb863f4 Created indent test 2022-08-11 12:47:50 -05:00
71157122d6 Added support for hex, octal, and unicode escape sequences 2022-08-11 12:39:49 -05:00
f7a823687e Added new test for string and rune literals (which it passes) 2022-08-11 12:12:41 -05:00
4f37715a8c Hexidecimal numbers are now properly read 2022-08-11 04:25:56 -05:00
7a0ed247e2 Added number lexing unit test 2022-08-11 04:23:06 -05:00
6acc11d046 Removed debug rune printing th 2022-08-11 04:19:39 -05:00
a0d5b3a1a2 Added basic escape sequences to string parser 2022-08-11 04:05:55 -05:00
4d73fa4b83 Fixed equality issue with int 2022-08-11 03:58:45 -05:00
bef5b0328e Fixed PermissionFrom() 2022-08-11 03:52:16 -05:00
af6f170833 Normalized whitespace tokens 2022-08-11 03:47:42 -05:00
0a31ea7bf8 Support for digraphs such as &&, <<, ++ 2022-08-11 02:54:20 -05:00
758b85e735 Added naieve string and char literal parsing 2022-08-11 02:47:51 -05:00