def get_output_formatter(self, CodeUnitN): UnicodeMinus0x10000 = "(%s)" % Lng.OP("unicode", "-", "0x10000") Offset_10bit_high = "(uint16_t)(%s)" % Lng.OP(UnicodeMinus0x10000, ">>", 10) Offset_10bit_low = "(uint16_t)(%s)" % Lng.OP(UnicodeMinus0x10000, "&", "0x3FF") return { 1: [ Lng.INCREMENT_ITERATOR_THEN_ASSIGN("*output_pp", "(uint16_t)(unicode)"), ], 2: [ Lng.INCREMENT_ITERATOR_THEN_ASSIGN( "*output_pp", "(uint16_t)(%s)" % Lng.OP("0xD800", "|", Offset_10bit_high)), Lng.INCREMENT_ITERATOR_THEN_ASSIGN( "*output_pp", "(uint16_t)(%s)" % Lng.OP("0xDC00", "|", Offset_10bit_low)), ] }[CodeUnitN]
def get_output_formatter(self, CodeUnitN): last_but_two = Lng.OP( "0x80", "|", "(%s)" % Lng.OP("(%s)" % Lng.OP("unicode", "&", "(uint32_t)0x3FFFF"), ">>", "12")) last_but_one = Lng.OP( "0x80", "|", "(%s)" % Lng.OP( "(%s)" % Lng.OP("unicode", "&", "(uint32_t)0xFFF"), ">>", "6")) last = Lng.OP("0x80", "|", "(%s)" % Lng.OP("unicode", "&", "(uint32_t)0x3F")) rvalue_list = { 1: [ "unicode", ], 2: [ Lng.OP("0xC0", "|", "(%s)" % Lng.OP("unicode", ">>", "6")), last, ], 3: [ Lng.OP("0xE0", "|", "(%s)" % Lng.OP("unicode", ">>", "12")), last_but_one, last, ], 4: [ Lng.OP("0xF0", "|", "(%s)" % Lng.OP("unicode", ">>", "18")), last_but_two, last_but_one, last, ] }[CodeUnitN] return [ "%s" % Lng.INCREMENT_ITERATOR_THEN_ASSIGN("*output_pp", "(uint8_t)(%s)" % rvalue) for rvalue in rvalue_list ]
def get_output_formatter(self, CodeUnitN): return { 1: [Lng.INCREMENT_ITERATOR_THEN_ASSIGN("*output_pp", "unicode")] }[CodeUnitN]