code: def p_referenceDeclaration(p):
      # pylint: disable=line-too-long
        # noqa: E501
      quals = []
      dv = None
      if isinstance(p[1], list):  # qualifiers
          quals = p[1]
          cname = p[2]
          pname = p[3]
          if len(p) == 6:
              dv = p[4]
      else:
          cname = p[1]
          pname = p[2]
          if len(p) == 5:
              dv = p[3]
      quals = OrderedDict([(x.name, x) for x in quals])
      p[0] = CIMProperty(pname, dv, type='reference',
                         reference_class=cname, qualifiers=quals)
docs: referenceDeclaration : objectRef referenceName ';'
                              | objectRef referenceName defaultValue ';'
                              | qualifierList objectRef referenceName ';'
                              | qualifierList objectRef referenceName defaultValue ';'