code: def _key_values(self, sn: "SequenceNode") -> Union[EntryKeys, EntryValue]:
          
          try:
              keys = self.up_to("/")
          except EndOfInput:
              keys = self.remaining()
          if not keys:
              raise UnexpectedInput(self, "entry value or keys")
          if isinstance(sn, LeafListNode):
              return EntryValue(unquote(keys))
          ks = keys.split(",")
          try:
              if len(ks) != len(sn.keys):
                  raise UnexpectedInput(self, f"exactly {len(sn.keys)} keys")
          except AttributeError:
              raise BadSchemaNodeType(sn.qual_name, "list")
          sel = {}
          for j in range(len(ks)):
              knod = sn.get_data_child(*sn.keys[j])
              val = unquote(ks[j])
              sel[(knod.name, None if knod.ns == sn.ns else knod.ns)] = val
          return EntryKeys(sel)
docs: Parse leaf-list value or list keys.