def parsePropertyValue()

in pachi_py/pachi/tools/sgflib/sgflib.py [0:0]


	def parsePropertyValue(self):
		""" Called when "[" encountered (but not consumed), ends when the next
			property, node, or variation encountered. Parses and returns a list
			of property values. Raises 'PropertyValueParseError' if there is a
			problem."""
		pvlist = []
		while self.index < self.datalen:
			match = self.rePropertyStart.match(self.data, self.index)
			if match:
				self.index = match.end()
				v = ""									# value
				# scan for escaped characters (using '\'), unescape them (remove linebreaks)
				mend = self.rePropertyEnd.search(self.data, self.index)
				mesc = self.reEscape.search(self.data, self.index)
				while mesc and mend and (mesc.end() < mend.end()):
														# copy up to '\', but remove '\'
					v = v + self.data[self.index:mesc.start()]
					mbreak = self.reLineBreak.match(self.data, mesc.end())
					if mbreak:
						self.index = mbreak.end()		# remove linebreak
					else:
						v = v + self.data[mesc.end()]	# copy escaped character
						self.index = mesc.end() + 1		# move to point after escaped char
					mend = self.rePropertyEnd.search(self.data, self.index)
					mesc = self.reEscape.search(self.data, self.index)
				if mend:
					v = v + self.data[self.index:mend.start()]
					self.index = mend.end()
					pvlist.append(self._convertControlChars(v))
				else:
					raise PropertyValueParseError
			else:										# reached end of Property
				break
		if len(pvlist) >= 1:
			return pvlist
		else:
			raise PropertyValueParseError