demangle.go
func (st *state) nestedName() AST {
	st.checkChar('N')
	q := st.cvQualifiers()
	r := st.refQualifier()
	a := st.prefix()
	if len(q) > 0 || r != "" {
		a = &MethodWithQualifiers{Method: a, Qualifiers: q, RefQualifier: r}
	}
	if len(st.str) == 0 || st.str[0] != 'E' {
		st.fail("expected E after nested name")
	}
	st.advance(1)
	return a
}
func (st *state) nestedName() AST {
	st.checkChar('N')
	q := st.cvQualifiers()
	r := st.refQualifier()
	a := st.prefix()
	if len(q) > 0 || r != "" {
		a = &MethodWithQualifiers{Method: a, Qualifiers: q, RefQualifier: r}
	}
	if len(st.str) == 0 || st.str[0] != 'E' {
		st.fail("expected E after nested name")
	}
	st.advance(1)
	return a
}
func ( st * state ) nestedName ( ) AST { st . checkChar ( 'N' ) q := st . cvQualifiers ( ) r := st . refQualifier ( ) a := st . prefix ( ) if len ( q ) > 0 || r != " " { a = & MethodWithQualifiers { Method : a , Qualifiers : q , RefQualifier : r } } if len ( st . str ) == 0 || st . str [ 0 ] != 'E' { st . fail ( " " ) } st . advance ( 1 ) return a }
// <nested-name> ::= N [<CV-qualifiers>] [<ref-qualifier>] <prefix> <unqualified-name> E
//               ::= N [<CV-qualifiers>] [<ref-qualifier>] <template-prefix> <template-args> E
<nested - name > :: = N [ <CV - qualifiers > ] [ <ref - qualifier > ] <prefix > <unqualified - name > E :: = N [ <CV - qualifiers > ] [ <ref - qualifier > ] <template - prefix > <template - args > E