Commit Graph
90 Commits
Author SHA1 Message Date
sashakoshka ed44795664 Lexer now rejects strange chars in integer literals 2022-09-02 01:37:58 -04:00
sashakoshka ac7074a819 Added support for "external" keyword 2022-09-02 01:25:22 -04:00
sashakoshka 08f111ccbf Various fixes to function parsing
- Newlines are handled better
- Types are actually parsed
2022-09-01 22:10:57 -04:00
sashakoshka bcb1b9b6d2 parseFuncSection calls parseFuncArguments now 2022-09-01 21:43:56 -04:00
sashakoshka 09706ef7f3 Commented out some things in func test case
Apparently, cBasicPhrases is somehow causing the mysterious nil
tree bug. this will be investigated further soon.
2022-09-01 21:38:50 -04:00
sashakoshka 8ccfc935ab Test logs error even if tree is nil 2022-09-01 21:37:15 -04:00
sashakoshka d9e58cee0c Uncommented things in func section test 2022-09-01 20:54:10 -04:00
sashakoshka fcfa672652 Cleaned some go vet warnings 2022-09-01 18:40:51 -04:00
sashakoshka f585e5119f Removed useless logging in objt sections 2022-09-01 18:03:01 -04:00
sashakoshka aec266a82e Fail test on nil tree 2022-09-01 18:02:14 -04:00
sashakoshka 8d46188f6c Throw an error on malformed func arguments list 2022-09-01 17:55:57 -04:00
sashakoshka 5371c0eeae Added untested parsing of function arguments 2022-09-01 17:42:56 -04:00
sashakoshka 7deacff330 AST supports function output default values 2022-09-01 17:13:40 -04:00
sashakoshka eed9e4e7b9 Bit shift assignment tokens now have correct width 2022-08-30 01:35:40 -04:00
sashakoshka 067729d435 Parse binary XOR tokens 2022-08-30 01:33:58 -04:00
sashakoshka 05954546eb Remove useless files 2022-08-30 01:11:37 -04:00
sashakoshka 65c213f1f3 Fixed import paths 2022-08-30 01:11:10 -04:00
sashakoshka 06a99ce232 Implement new tokens
I think this is all of them. The test will tell.
2022-08-30 01:02:49 -04:00
sashakoshka c3b6330b22 Added base function parsing 2022-08-25 20:01:12 -04:00
sashakoshka 723b506005 Added test code for function sections 2022-08-25 16:08:18 -04:00
sashakoshka 6bbee2e13b Created comprehensive test case 2022-08-25 15:46:35 -04:00
sashakoshka 777c8df6a4 Changed the logo color because why not lol 2022-08-24 18:57:45 -04:00
sashakoshka c470997887 Did the same thing to interfaces 2022-08-24 18:57:07 -04:00
sashakoshka 715766edb4 Objects can only inherit by specifiying an identifier 2022-08-24 18:52:31 -04:00
sashakoshka e316eb7791 Changed bit field syntax to use an & symbol 2022-08-24 18:37:44 -04:00
sashakoshka 731cc828ce Added untested bit width parsing 2022-08-24 18:29:15 -04:00
sashakoshka 05aa0e6177 Added bitfields to object section test case 2022-08-24 18:23:11 -04:00
sashakoshka fb43f96acc Added bit fields to tree and ToString for object member 2022-08-24 18:22:47 -04:00
sashakoshka b0d4ecc83f Added interface section parsing to body 2022-08-23 15:14:44 -04:00
sashakoshka 4eac5c67aa Added untested interface section parsing 2022-08-23 15:13:00 -04:00
sashakoshka 441b036a1c Updated test case to reflect previous commit 2022-08-23 14:07:56 -04:00
sashakoshka 8817d72cb3 Interfaces can inherit other interfaces 2022-08-23 13:56:59 -04:00
sashakoshka 3ef1e706b3 Added ToString method to face section 2022-08-23 13:54:44 -04:00
sashakoshka 944fc8514e Add correct output for face test case 2022-08-23 13:46:20 -04:00
sashakoshka 714aca5196 Fix parseMeta not getting enough tokens
Parser now passes TestMeta
2022-08-12 17:12:38 -05:00
sashakoshka 033e64fc54 Parser can now print out a list of expected token kinds 2022-08-12 17:09:37 -05:00
sashakoshka b3071d4ac9 Token kind values can now be described 2022-08-12 16:30:32 -05:00
sashakoshka f23c3a234a Added metadata parser 2022-08-12 16:22:51 -05:00
sashakoshka 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
sashakoshka accf528869 Locations and tokens are now capable of creating errors on their own 2022-08-12 13:51:38 -05:00
sashakoshka 7914f0df45 Location now stores width instead of Error 2022-08-12 13:43:09 -05:00
sashakoshka 050c956787 Added expect and nextToken methods to parser 2022-08-12 13:33:21 -05:00
sashakoshka 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
sashakoshka 2019c67bbb Created basic test for parser 2022-08-12 11:55:17 -05:00
sashakoshka f4f19a809a Lexer now eats :arf symbol at file beginning 2022-08-12 10:38:23 -05:00
sashakoshka c09c9860b8 Parser tests are now arf files 2022-08-12 10:26:16 -05:00
sashakoshka 81b47f7734 Replaced all occurences of github.com with git.tebibyte.media 2022-08-12 10:21:36 -05:00
sashakoshka 09170e390d Created base for parser
The parser now handles file opening and invokes the lexer.
2022-08-12 10:11:43 -05:00
sashakoshka 5a55c9ac87 Check off lexer in readme 2022-08-11 18:37:00 -05:00
sashakoshka 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
sashakoshka 2a7111e700 Colored error line/column numbers as well 2022-08-11 13:16:59 -05:00
sashakoshka dfa64f3c3d Added color to errors 2022-08-11 13:15:57 -05:00
sashakoshka ee9fa3a766 Indentation tokens now carry their indentation level
They are no longer stored in sequence
2022-08-11 12:53:20 -05:00
sashakoshka 471eb863f4 Created indent test 2022-08-11 12:47:50 -05:00
sashakoshka 71157122d6 Added support for hex, octal, and unicode escape sequences 2022-08-11 12:39:49 -05:00
sashakoshka f7a823687e Added new test for string and rune literals (which it passes) 2022-08-11 12:12:41 -05:00
sashakoshka 4f37715a8c Hexidecimal numbers are now properly read 2022-08-11 04:25:56 -05:00
sashakoshka 7a0ed247e2 Added number lexing unit test 2022-08-11 04:23:06 -05:00
sashakoshka 6acc11d046 Removed debug rune printing th 2022-08-11 04:19:39 -05:00
sashakoshka a0d5b3a1a2 Added basic escape sequences to string parser 2022-08-11 04:05:55 -05:00
sashakoshka 4d73fa4b83 Fixed equality issue with int 2022-08-11 03:58:45 -05:00
sashakoshka bef5b0328e Fixed PermissionFrom() 2022-08-11 03:52:16 -05:00
sashakoshka af6f170833 Normalized whitespace tokens 2022-08-11 03:47:42 -05:00
sashakoshka 0a31ea7bf8 Support for digraphs such as &&, <<, ++ 2022-08-11 02:54:20 -05:00
sashakoshka 758b85e735 Added naieve string and char literal parsing 2022-08-11 02:47:51 -05:00
sashakoshka 3768e3454f Added float support 2022-08-11 02:17:35 -05:00
sashakoshka 40ad569870 Collapsed all number tokenization functions into just one 2022-08-11 02:03:54 -05:00
sashakoshka 9e4684dbed Number tokenizing functions use one digit conversion functions 2022-08-11 01:57:04 -05:00
sashakoshka 8813928b68 Negative numbers are now supported 2022-08-11 01:10:34 -05:00
sashakoshka 0f603e3bf7 I am an idiot 2022-08-11 01:00:57 -05:00
sashakoshka 7a45224449 Reduced code du0plicaion with number lexing functions 2022-08-11 00:57:04 -05:00
sashakoshka 3d610df44e Added support for decimal and octal numbers 2022-08-11 00:21:04 -05:00
sashakoshka 8f38203684 Added support for binary literals 2022-08-11 00:17:22 -05:00
sashakoshka 77f3c590c6 Added lexing hexidecimal numbers 2022-08-11 00:14:41 -05:00
sashakoshka 040e14d27c Test now prints out list of tokens 2022-08-10 15:02:08 -04:00
sashakoshka 2220b95cd2 Name and permission tokens are now supported 2022-08-10 14:55:26 -04:00
sashakoshka 9c1baf8216 Lexer can now tokenize
minus
decrement
return direction
separator
2022-08-10 14:18:28 -04:00
sashakoshka d43a2540cf Fixed error formatting column indicator 2022-08-10 14:08:04 -04:00
sashakoshka 314c045e65 Lexer no longer hangs when encountering letters 2022-08-10 13:59:09 -04:00
sashakoshka 9f8b48161a Lexer unit test now prints out resulting error 2022-08-10 13:03:48 -04:00
sashakoshka cf04dfd600 Lexer unit test now works properly 2022-08-10 12:58:47 -04:00
sashakoshka 2e965d6f68 Added Permission type 2022-08-10 12:52:20 -04:00
sashakoshka 488220f3a7 Added all tokens to unit test 2022-08-10 11:43:21 -04:00
sashakoshka 3f16d34aa1 Added unit test for lexer 2022-08-10 11:28:29 -04:00
sashakoshka 245798f33d Print warning when a tab is discovered where it shouldn't be 2022-08-10 01:22:53 -04:00
sashakoshka 0d2d10fe04 All basic symbol tokens are now parsed 2022-08-10 01:03:59 -04:00
sashakoshka a0ce033c27 Added a ton more token kinds 2022-08-10 00:48:18 -04:00
sashakoshka 64de897de5 Added lexing various symbol tokens 2022-08-09 22:18:12 -04:00
sashakoshka 861400b4a1 LexingOperation now stores the list of tokens 2022-08-09 22:12:14 -04:00
sashakoshka c042305ebe Test commit
Trying to see if my username appears
2022-08-09 21:44:41 -04:00