def get_utf8_string(self): #_____________________________________________________________________________ assert self.begin <= self.end if self.begin == self.end: return "''" elif self.end - self.begin == 1: return utf8.unicode_to_pretty_utf8(self.begin) else: if self.end == -sys.maxint: end_char = "-oo" elif self.end == sys.maxint: end_char = "oo" else: end_char = utf8.unicode_to_pretty_utf8(self.end-1) return "[" + utf8.unicode_to_pretty_utf8(self.begin) + ", " + end_char + "]"
def get_utf8_string(self): #_____________________________________________________________________________ assert self.begin <= self.end if self.begin == self.end: return "''" elif self.end - self.begin == 1: return utf8.unicode_to_pretty_utf8(self.begin) else: if self.end == -sys.maxint: end_char = "-oo" elif self.end == sys.maxint: end_char = "oo" else: end_char = utf8.unicode_to_pretty_utf8(self.end - 1) return "[" + utf8.unicode_to_pretty_utf8( self.begin) + ", " + end_char + "]"
def get_on_skip_range_open(Mode, CloserSequence): """For unit tests 'Mode' may actually be a string, so that we do not have to generate a whole mode just to get the 'on_skip_range_open' code fragment. """ if Mode is None: return "" txt = "" if type(Mode) in [str, unicode]: txt += Mode elif not Mode.has_code_fragment_list("on_skip_range_open"): txt += 'QUEX_ERROR_EXIT("\\nLexical analyzer mode \'%s\':\\n"\n' % Mode.name + \ ' "End of file occurred before closing skip range delimiter!\\n"' + \ ' "The \'on_skip_range_open\' handler has not been specified.");' else: closer_string = "" for letter in CloserSequence: closer_string += utf8.unicode_to_pretty_utf8(letter).replace( "'", "") code, eol_f = action_preparation.get_code( Mode.get_code_fragment_list("on_skip_range_open")) txt += "#define Closer \"%s\"\n" % closer_string txt += code txt += "#undef Closer\n" txt += "RETURN;\n" return txt
def get_character_sequence(Sequence): txt = "" comment_txt = "" for letter in Sequence: comment_txt += "%s, " % utf8.unicode_to_pretty_utf8(letter) txt += "0x%X, " % letter return txt, comment_txt
def get_string(self, Option="", Delimiter=", "): assert Option in ("hex", "dec", "utf8", "") assert self.end >= self.begin if Option == "hex": __repr = lambda x: "%04X" % x elif Option == "utf8": __repr = lambda x: utf8.unicode_to_pretty_utf8(x) else: __repr = repr if self.begin == self.end: return "[]" elif self.end - self.begin == 1: return "[" + __repr(self.begin) + "]" else: return "[" + __repr(self.begin) + Delimiter + __repr(self.end-1) + "]"
def get_string(self, Option="", Delimiter=", "): assert Option in ("hex", "dec", "utf8", "") assert self.end >= self.begin if Option == "hex": __repr = lambda x: "%04X" % x elif Option == "utf8": __repr = lambda x: utf8.unicode_to_pretty_utf8(x) else: __repr = repr if self.begin == self.end: return "[]" elif self.end - self.begin == 1: return "[" + __repr(self.begin) + "]" else: return "[" + __repr( self.begin) + Delimiter + __repr(self.end - 1) + "]"