generate: Add option type to parser

This commit is contained in:
Sasha Koshka 2025-10-15 18:17:18 -04:00
parent 6b7dfce2f3
commit 899f98043f
2 changed files with 12 additions and 3 deletions

View File

@ -214,12 +214,19 @@ func (this *parser) parseField(doc string) (uint16, Field, error) {
name := this.Value()
err = this.Next()
if err != nil { return 0, Field { }, err }
option := false
if this.Kind() == TokenOption {
option = true
err = this.Next()
if err != nil { return 0, Field { }, err }
}
typ, err := this.parseType()
if err != nil { return 0, Field { }, err }
return uint16(key), Field {
Name: name,
Doc: doc,
Type: typ,
Name: name,
Doc: doc,
Type: typ,
Option: option,
}, nil
}

View File

@ -34,6 +34,7 @@ func TestParse(test *testing.T) {
0x0001: Field { Name: "Bio", Type: TypeString { } },
0x0002: Field { Name: "Followers", Type: TypeInt { Bits: 32 } },
0x0003: Field { Name: "Bouncy", Type: TypeBool { } },
0x0004: Field { Name: "Wings", Type: TypeInt { Bits: 32 } },
},
},
}
@ -63,6 +64,7 @@ func TestParse(test *testing.T) {
0001 Bio String,
0002 Followers U32,
0003 Bouncy Bool,
0004 Wings ?U32,
}
Anything Any