generate: Change protocol parsing

This commit is contained in:
Sasha Koshka 2025-01-21 16:22:30 -05:00
parent 2b5db83015
commit 14c417b740

View File

@ -1,4 +1,4 @@
package protocol package generate
import "io" import "io"
import "fmt" import "fmt"
@ -227,24 +227,18 @@ func parseTag(text string) (uint16, error) {
func splitMessageHeading(text string) (uint16, string, error) { func splitMessageHeading(text string) (uint16, string, error) {
text = strings.TrimSpace(text) text = strings.TrimSpace(text)
if !strings.HasPrefix(text, "(") { methodText, name, ok := strings.Cut(text, " ")
return 0, "", fmt.Errorf(
"malformed message heading '%s': no method number",
text)
}
text = strings.TrimPrefix(text, "(")
methodText, name, ok := strings.Cut(text, ")")
if !ok { if !ok {
return 0, "", fmt.Errorf( return 0, "", fmt.Errorf(
"malformed message heading '%s': no message name", "malformed message heading '%s': no message name",
text) text)
} }
method, err := strconv.ParseUint(text, 10, 16) method, err := strconv.ParseUint(methodText, 16, 16)
if err != nil { if err != nil {
return 0, "", fmt.Errorf( return 0, "", fmt.Errorf(
"malformed method number '%s': %w", "malformed method number '%s': %w",
methodText, err) methodText, err)
} }
name = strings.TrimSpace(text) name = strings.TrimSpace(name)
return uint16(method), name, nil return uint16(method), name, nil
} }