diff --git a/parser/data.go b/parser/data.go index 983fcda..fa4130b 100644 --- a/parser/data.go +++ b/parser/data.go @@ -90,7 +90,8 @@ func (parser *ParsingOperation) parseType () (what Type, err error) { err = parser.expect ( lexer.TokenKindUInt, - lexer.TokenKindRBrace) + lexer.TokenKindRBrace, + lexer.TokenKindElipsis) if err != nil { return } if parser.token.Is(lexer.TokenKindUInt) { @@ -98,6 +99,11 @@ func (parser *ParsingOperation) parseType () (what Type, err error) { what.length = parser.token.Value().(uint64) + err = parser.nextToken(lexer.TokenKindRBrace) + if err != nil { return } + } else if parser.token.Is(lexer.TokenKindElipsis) { + what.kind = TypeKindArray + err = parser.nextToken(lexer.TokenKindRBrace) if err != nil { return } }