Ejemplo n.º 1
0
 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 + "]"
Ejemplo n.º 2
0
    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 + "]"
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
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
Ejemplo n.º 6
0
 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) + "]"
Ejemplo n.º 7
0
    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) + "]"