コード例 #1
0
ファイル: Lexer.py プロジェクト: dezgeg/Python-Regex
	def __read_charset(self):
		"""Lukee syötteestä merkkijoukon ja palauttaa sen, kun merkkijoukon avaava '[' on luettu ennen tämän funktion kutsua"""
		c = self.next_char()
		negated = False
		charset = CharSet()

		if c == '^':
			negated = True
			c = self.next_char()
		
		while c != ']':
			self.check_allowed_char(c)
			c2 = self.peek_char()
			if c2 == '-': # character range
				self.next_char() # eat -
				c2 = self.next_char()
				self.check_allowed_char(c2)
				charset.add_range(c, c2)
			else:
				charset.add(c)
			c = self.next_char()
		if negated:
			charset.negate()
		return charset