From 731cc828ce21309a8ffe7da0a98ef32f34c152f0 Mon Sep 17 00:00:00 2001 From: Sasha Koshka Date: Wed, 24 Aug 2022 18:29:15 -0400 Subject: [PATCH] Added untested bit width parsing --- parser/objt.go | 9 +++++++++ parser/tree.go | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/parser/objt.go b/parser/objt.go index f384cff..9784f55 100644 --- a/parser/objt.go +++ b/parser/objt.go @@ -96,6 +96,15 @@ func (parser *ParsingOperation) parseObjtMember () ( if err != nil { return } member.what, err = parser.parseType() if err != nil { return } + + // if there is a bit width, get it + if parser.token.Is(lexer.TokenKindColon) { + err = parser.nextToken(lexer.TokenKindUInt) + if err != nil { return } + member.bitWidth = parser.token.Value().(uint64) + err = parser.nextToken() + if err != nil { return } + } // parse default value if parser.token.Is(lexer.TokenKindNewline) { diff --git a/parser/tree.go b/parser/tree.go index c450bd7..e1f2292 100644 --- a/parser/tree.go +++ b/parser/tree.go @@ -180,7 +180,7 @@ type ObjtMember struct { name string what Type - bitWidth int + bitWidth uint64 permission types.Permission defaultValue Argument }