Ignore:
Timestamp:
Feb 24, 2015, 7:18:31 PM (4 years ago)
Author:
cameron
Message:

Avoid generating some unused variables

File:
1 edited

Legend:

Unmodified
Added
Removed
  • proto/charsetcompiler/if_hierarchy.py

    r4424 r4514  
    307307    #
    308308    for rg in cpset:
    309             (lo, hi) = rg
    310             lbyte = utf8_byte(lo, byte_no)
    311             hbyte = utf8_byte(hi, byte_no)
    312             if lbyte != hbyte:
    313                 if not is_low_codepoint_after_byte(lo, byte_no):
    314                     lo1 = lo | ((1 << (6 * (u8len_lo - byte_no))) - 1)
    315                     #print "lo--lo1:  %x--%x (%i)" % (lo, lo1, byte_no)
    316                     utf8_sequence_generator([(lo, lo1)], byte_no, targetVar, cgo)
    317                     utf8_sequence_generator([(lo1+1, hi)], byte_no, targetVar, cgo)
    318                 elif not is_high_codepoint_after_byte(hi, byte_no):
    319                     hi1 = hi &~ ((1 << (6 * (u8len_lo - byte_no))) - 1)
    320                     #print "lo--hi1-1:  %x--%x (%i)" % (lo, hi1-1, byte_no)
    321                     utf8_sequence_generator([(lo, hi1-1)], byte_no, targetVar, cgo)
    322                     utf8_sequence_generator([(hi1, hi)], byte_no, targetVar, cgo)
    323                 else:
    324                     # we have a prefix group of type (a)
    325                     #print "lo--hi:  %x--%x (%i)" % (lo, hi, byte_no)
    326                     byteVar = "byte_range_%x_%x" % (lbyte, hbyte)
    327                     cgo.chardef_canonical(CanonicalCharSetDef(byteVar, [(lbyte, hbyte)]))
    328                     if byte_no > 1:
    329                            last_prefix = utf8_prefix_var(lo, byte_no - 1)
    330                            this_prefix = last_prefix + "_" + byteVar
    331                            cgo.add_canonical_assignment(this_prefix, cgo.expr2py(make_and(make_shift_forward(Var(last_prefix), 1), Var(byteVar))))
    332                     else: this_prefix = byteVar
    333                     suffixVar = "byte_range_%x_%x" % (0x80, 0xBF)
    334                     cgo.chardef_canonical(CanonicalCharSetDef(suffixVar, [(0x80, 0xBF)]))
    335                     last_prefix = this_prefix
    336                     while byte_no < utf8_length(lo):
    337                            byte_no += 1
    338                            this_prefix = last_prefix + "_sfx"
    339                            cgo.add_assignment(this_prefix, cgo.expr2py(make_and(make_shift_forward(Var(last_prefix), 1), Var(suffixVar))))
    340                            last_prefix = this_prefix
    341                     cgo.add_assignment(targetVar, cgo.expr2py(make_or(Var(targetVar), Var(last_prefix))))
    342             else:
    343                 # lobyte1 == hybyte1
    344                 byteVar = "byte_%x" % lbyte
    345                 cgo.chardef_canonical(CanonicalCharSetDef(byteVar, [(lbyte, lbyte)]))
    346                 if byte_no > 1:
    347                     last_prefix = utf8_prefix_var(lo, byte_no - 1)
    348                     this_prefix = utf8_prefix_var(lo, byte_no)
    349                     cgo.add_canonical_assignment(this_prefix, cgo.expr2py(make_and(make_shift_forward(Var(last_prefix), 1), Var(byteVar))))
    350                 if byte_no < utf8_length(lo): utf8_sequence_generator([rg], byte_no+1, targetVar, cgo)
     309        (lo, hi) = rg
     310        lbyte = utf8_byte(lo, byte_no)
     311        hbyte = utf8_byte(hi, byte_no)
     312        if lbyte != hbyte:
     313            if not is_low_codepoint_after_byte(lo, byte_no):
     314                lo1 = lo | ((1 << (6 * (u8len_lo - byte_no))) - 1)
     315                #print "lo--lo1:  %x--%x (%i)" % (lo, lo1, byte_no)
     316                utf8_sequence_generator([(lo, lo1)], byte_no, targetVar, cgo)
     317                utf8_sequence_generator([(lo1+1, hi)], byte_no, targetVar, cgo)
     318            elif not is_high_codepoint_after_byte(hi, byte_no):
     319                hi1 = hi &~ ((1 << (6 * (u8len_lo - byte_no))) - 1)
     320                #print "lo--hi1-1:  %x--%x (%i)" % (lo, hi1-1, byte_no)
     321                utf8_sequence_generator([(lo, hi1-1)], byte_no, targetVar, cgo)
     322                utf8_sequence_generator([(hi1, hi)], byte_no, targetVar, cgo)
     323            else:
     324                # we have a prefix group of type (a)
     325                #print "lo--hi:  %x--%x (%i)" % (lo, hi, byte_no)
     326                byteVar = "byte_range_%x_%x" % (lbyte, hbyte)
     327                cgo.chardef_canonical(CanonicalCharSetDef(byteVar, [(lbyte, hbyte)]))
     328                if byte_no > 1:
     329                       last_prefix = utf8_prefix_var(lo, byte_no - 1)
     330                       last_prefix_adv = last_prefix + "_adv"
     331                       this_prefix = last_prefix + "_" + byteVar
     332                       cgo.add_canonical_assignment(last_prefix_adv, cgo.expr2py(make_shift_forward(Var(last_prefix), 1)))
     333                       cgo.add_canonical_assignment(this_prefix, cgo.expr2py(make_and(Var(last_prefix_adv), Var(byteVar))))
     334                else: this_prefix = byteVar
     335                suffixVar = "byte_range_%x_%x" % (0x80, 0xBF)
     336                cgo.chardef_canonical(CanonicalCharSetDef(suffixVar, [(0x80, 0xBF)]))
     337                last_prefix = this_prefix
     338                while byte_no < utf8_length(lo):
     339                       byte_no += 1
     340                       last_prefix_adv = last_prefix + "_adv"
     341                       cgo.add_canonical_assignment(last_prefix_adv, cgo.expr2py(make_shift_forward(Var(last_prefix), 1)))
     342                       this_prefix = last_prefix + "_sfx"
     343                       cgo.add_assignment(this_prefix, cgo.expr2py(make_and(Var(last_prefix_adv), Var(suffixVar))))
     344                       last_prefix = this_prefix
     345                cgo.add_assignment(targetVar, cgo.expr2py(make_or(Var(targetVar), Var(last_prefix))))
     346        else:
     347            # lobyte1 == hybyte1
     348            byteVar = "byte_%x" % lbyte
     349            cgo.chardef_canonical(CanonicalCharSetDef(byteVar, [(lbyte, lbyte)]))
     350            if byte_no > 1:
     351                last_prefix = utf8_prefix_var(lo, byte_no - 1)
     352                last_prefix_adv = last_prefix + "_adv"
     353                cgo.add_canonical_assignment(last_prefix_adv, cgo.expr2py(make_shift_forward(Var(last_prefix), 1)))
     354                this_prefix = utf8_prefix_var(lo, byte_no)
     355                cgo.add_canonical_assignment(this_prefix, cgo.expr2py(make_and(Var(last_prefix_adv), Var(byteVar))))
     356            if byte_no < utf8_length(lo): utf8_sequence_generator([rg], byte_no+1, targetVar, cgo)
    351357
    352358
Note: See TracChangeset for help on using the changeset viewer.