demangle.go
func (st *state) taggedName(a AST) AST {
	for len(st.str) > 0 && st.str[0] == 'B' {
		st.advance(1)
		tag := st.sourceName()
		a = &TaggedName{Name: a, Tag: tag}
	}
	return a
}
func (st *state) taggedName(a AST) AST {
	for len(st.str) > 0 && st.str[0] == 'B' {
		st.advance(1)
		tag := st.sourceName()
		a = &TaggedName{Name: a, Tag: tag}
	}
	return a
}
func ( st * state ) taggedName ( a AST ) AST { for len ( st . str ) > 0 && st . str [ 0 ] == 'B' { st . advance ( 1 ) tag := st . sourceName ( ) a = & TaggedName { Name : a , Tag : tag } } return a }
// <tagged-name> ::= <name> B <source-name>
<tagged - name > :: = <name > B <source - name >