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