Commit Graph

548 Commits

Author SHA1 Message Date
Sasha Koshka
0762d72486 Allow arbitrary integer width 2024-02-07 11:22:37 -05:00
Sasha Koshka
02ec77b855 Updated TestType test case for parser 2024-02-07 03:39:37 -05:00
Sasha Koshka
97605d8c2a Parse integer, word, and float types 2024-02-07 03:37:02 -05:00
Sasha Koshka
424b621bae Fix function parsing 2024-02-07 03:22:00 -05:00
Sasha Koshka
48fe20b472 Parse interface types 2024-02-07 03:18:02 -05:00
Sasha Koshka
1529e591e8 Parse signatures 2024-02-07 03:17:50 -05:00
Sasha Koshka
19910b77a9 Parse struct types 2024-02-07 03:02:43 -05:00
Sasha Koshka
f8399612f6 De-ambiguify interface and struct type syntax 2024-02-07 03:02:16 -05:00
Sasha Koshka
cb7734afe6 Array type parsing 2024-02-07 00:32:18 -05:00
Sasha Koshka
23362b058d Normalize parsing of access control symbols 2024-02-07 00:23:10 -05:00
Sasha Koshka
59e3185500 Parse pointers/slices 2024-02-07 00:22:58 -05:00
Sasha Koshka
6ad56ed4ee Add some convenience methods to parser, fix appendCopy 2024-02-07 00:21:44 -05:00
Sasha Koshka
8adaa0e053 Added parsing named types 2024-02-06 23:48:25 -05:00
Sasha Koshka
9dab29f5cb Token.Is and Token.ValueIs work properly 2024-02-06 23:16:48 -05:00
Sasha Koshka
39d8ed088d Lexer now records the width of tokens 2024-02-06 23:08:25 -05:00
Sasha Koshka
84d88a7644 I want to look at my juicy error formatting even when it passes 2024-02-06 22:33:18 -05:00
Sasha Koshka
100986327e FINALLY errors and lexer agree on row/col positions properly 2024-02-06 22:11:46 -05:00
Sasha Koshka
6924d39dcb Fixed error test cases 2024-02-06 21:59:41 -05:00
Sasha Koshka
6fc16c7045 Lexer saves error lines 2024-02-06 21:54:20 -05:00
Sasha Koshka
e6043effe0 Lexer tests check for line content, print formatted errors 2024-02-06 19:08:21 -05:00
Sasha Koshka
f3f8b324dc Parser errors make more sense 2024-02-06 18:58:09 -05:00
Sasha Koshka
c2d9b4d40f Added Token.String() 2024-02-06 18:56:04 -05:00
Sasha Koshka
ef14fc2219 Parser is incomplete but compiles 2024-02-06 18:29:37 -05:00
Sasha Koshka
825e71a720 Created a plan for expression parsing 2024-02-06 17:04:59 -05:00
Sasha Koshka
77783c1004 Add a guide to writing parser methods so I don't forget 2024-02-06 16:56:10 -05:00
Sasha Koshka
c1c2ab5124 Further normalize expectation responsibilities of parsing methods 2024-02-06 16:39:15 -05:00
Sasha Koshka
a09a0ce34c Typedef parsing complete, without detail 2024-02-06 16:32:14 -05:00
Sasha Koshka
76c129f91c Add type parsing stub 2024-02-06 16:31:53 -05:00
Sasha Koshka
f4e5e1ea3d Appended -Core to parsing methods that only partially parse things 2024-02-06 16:30:53 -05:00
Sasha Koshka
bca9de4106 Parsing functions *always* begin on current token, leave trailing one 2024-02-06 16:22:49 -05:00
Sasha Koshka
1b50c8f879 Method and function parsing complete, without detail 2024-02-06 16:13:05 -05:00
Sasha Koshka
3c67cf576c Expression parsing stub 2024-02-06 16:12:51 -05:00
Sasha Koshka
79f51ce4c6 Parser.expectValue() and Parser.expectValueDesc() take in a kind parameter now 2024-02-06 15:57:27 -05:00
Sasha Koshka
3e89953d07 Add parser.Tree.AddDeclaration() 2024-02-06 15:54:21 -05:00
Sasha Koshka
08f1027834 Added commaList function 2024-02-06 12:20:13 -05:00
Sasha Koshka
118e7672bd Why did I name a prepend function appendr?? 2024-02-06 11:45:08 -05:00
Sasha Koshka
4a2671c601 askl;d;sldkf 2024-02-06 02:55:39 -05:00
Sasha Koshka
ac433f07ec Rename typeStartTokens to startTokensType 2024-02-06 02:41:45 -05:00
Sasha Koshka
3d1bef3a32 Move top-level expect from Parser.parseTopLevel into Parser.parse() 2024-02-06 02:40:19 -05:00
Sasha Koshka
eafc834ef3 Parser.parseSignature stub 2024-02-06 02:36:51 -05:00
Sasha Koshka
8cfb4f3e6d Parser top-level entity base 2024-02-06 02:32:29 -05:00
Sasha Koshka
cce8c756fc Parser now remembers last token 2024-02-06 02:28:23 -05:00
Sasha Koshka
66f0e2d8d9 Un-participle-ify entity.Access 2024-02-06 02:27:09 -05:00
Sasha Koshka
5fe6e32f92 Add Dot and DoubleDot as separate tokens 2024-02-06 02:23:15 -05:00
Sasha Koshka
7db231a945 Add ValueIs method to lexer.Token 2024-02-06 02:19:09 -05:00
Sasha Koshka
ec3907d841 Add TokenKind.String 2024-02-06 01:52:29 -05:00
Sasha Koshka
b6a920af58 Added expect functions to parser 2024-02-06 01:45:30 -05:00
Sasha Koshka
ff9c275980 Add Token.Is() to check if token is any of a set of kinds 2024-02-06 01:31:52 -05:00
Sasha Koshka
04e5ead3db Go mod tidy 2024-02-06 01:14:38 -05:00
Sasha Koshka
0d79482568 Define basic parser structure 2024-02-06 01:12:07 -05:00