From e123e973575607cded8ca6442efb896ba9b3f217 Mon Sep 17 00:00:00 2001 From: Sasha Koshka Date: Fri, 16 Sep 2022 22:22:07 -0400 Subject: [PATCH] Type attributes can have whitespace before them By type attributes I mean things like :mut :N :. After the colon and before the attribute, whitespace is now permitted. This makes syntax like data ro nIntegerArrayInitialized:Int:16:mut: <3948 293 293049 948 912 340 0 2304 0 4785 92> possible. --- parser/type-notation.go | 7 ++++++- tests/parser/data/main.arf | 7 +++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/parser/type-notation.go b/parser/type-notation.go index 69f7e5c..e13fb73 100644 --- a/parser/type-notation.go +++ b/parser/type-notation.go @@ -42,8 +42,13 @@ func (parser *ParsingOperation) parseType () (what Type, err error) { for { if !parser.token.Is(lexer.TokenKindColon) { break } + + err = parser.nextToken() + if err != nil { return } + err = parser.skipWhitespace() + if err != nil { return } - err = parser.nextToken( + err = parser.expect( lexer.TokenKindName, lexer.TokenKindUInt, lexer.TokenKindLParen, diff --git a/tests/parser/data/main.arf b/tests/parser/data/main.arf index 713a463..6eaf69f 100644 --- a/tests/parser/data/main.arf +++ b/tests/parser/data/main.arf @@ -41,7 +41,6 @@ data ro lMutIntegerArray16:Int:16:mut data ro mExternalData:Int:8 external -data ro nIntegerArrayInitialized:Int:16:mut:< - 3948 293 293049 948 912 - 340 0 2304 0 4785 92 - > +data ro nIntegerArrayInitialized:Int:16:mut: + <3948 293 293049 948 912 + 340 0 2304 0 4785 92>