code: func (st *state) parmlist() []AST {
  	var ret []AST
  	for {
  		if len(st.str) < 1 {
  			break
  		}
  		if st.str[0] == 'E' || st.str[0] == '.' {
  			break
  		}
  		if (st.str[0] == 'R' || st.str[0] == 'O') && len(st.str) > 1 && st.str[1] == 'E' {
  			// This is a function ref-qualifier.
  			break
  		}
  		ptype := st.demangleType(false)
  		ret = append(ret, ptype)
  	}
  
  	// There should always be at least one type.  A function that
  	// takes no arguments will have a single parameter type
  	// "void".
  	if len(ret) == 0 {
  		st.fail("expected at least one type in type list")
  	}
  
  	// Omit a single parameter type void.
  	if len(ret) == 1 {
  		if bt, ok := ret[0].(*BuiltinType); ok && bt.Name == "void" {
  			ret = nil
  		}
  	}
  
  	return ret
  }
docs: // <type>+