Changeset 1216


Ignore:
Timestamp:
Jul 8, 2011, 7:03:17 PM (8 years ago)
Author:
cameron
Message:

Update u8decoder to produce U16hi, U16lo, Lex and Control bitstream sets

File:
1 edited

Legend:

Unmodified
Added
Removed
  • proto/Xerces/u8decoder.py

    r1214 r1216  
    1212        bit7 = 0
    1313
    14 class Decoded():
     14class Lex():
     15        RefStart = 0
     16        Semicolon = 0 
     17        Colon = 0
     18        LAngle = 0
     19        RAngle = 0
     20        LBracket = 0
     21        RBracket = 0
     22        Exclam = 0
     23        QMark = 0
     24        Hyphen = 0
     25        Equals = 0
     26        SQuote = 0
     27        DQuote = 0
     28        Slash = 0
     29        Hash = 0
     30        x = 0
     31        ASCII_name_start = 0
     32        ASCII_name_char = 0
     33        NameScan = 0
     34        Digit = 0
     35        Hex = 0
     36        WS = 0
     37
     38class U16hi():
     39        bit0 = 0
     40        bit1 = 0
     41        bit2 = 0
     42        bit3 = 0
     43        bit4 = 0
     44        bit5 = 0
     45        bit6 = 0
     46        bit7 = 0
     47
     48class U16lo():
     49        bit0 = 0
     50        bit1 = 0
     51        bit2 = 0
     52        bit3 = 0
     53        bit4 = 0
     54        bit5 = 0
     55        bit6 = 0
     56        bit7 = 0
     57
     58class Control():
    1559# The delmask marks bit stream positions that should be
    1660# considered deleted, i.e., positions at no corresponding
     
    1963        XML_error = 0  # 0x0-0x1F except HT, LF CR, 0xFFFE, 0xFFFF
    2064        ch_error = 0   # Bad UTF8 characters
    21         normalized_LF = 0
     65        normalized_LF = 0
     66        HT = 0
    2267        pseudo_bit0 = 0
    2368
    24         u16hi_bit0 = 0
    25         u16hi_bit1 = 0
    26         u16hi_bit2 = 0
    27         u16hi_bit3 = 0
    28         u16hi_bit4 = 0
    29         u16hi_bit5 = 0
    30         u16hi_bit6 = 0
    31         u16hi_bit7 = 0
    32 
    33         u16lo_bit0 = 0
    34         u16lo_bit1 = 0
    35         u16lo_bit2 = 0
    36         u16lo_bit3 = 0
    37         u16lo_bit4 = 0
    38         u16lo_bit5 = 0
    39         u16lo_bit6 = 0
    40         u16lo_bit7 = 0
    41 
    42 def u8u16(basis_bits, decoded):
    43         temp1 = (basis_bits.bit0 | basis_bits.bit1)
    44         temp2 = (temp1 | basis_bits.bit2)
     69
     70def u8u16(basis_bits, u16hi, u16lo, lex, control):
     71        temp1 = (basis_bits.bit_0 | basis_bits.bit_1)
     72        temp2 = (temp1 | basis_bits.bit_2)
    4573        x00_x1F = (~temp2)
    46         temp3 = (basis_bits.bit2 | basis_bits.bit3)
     74        temp3 = (basis_bits.bit_2 | basis_bits.bit_3)
    4775        temp4 = (temp1 | temp3)
    48         temp5 = (basis_bits.bit4 & basis_bits.bit5)
    49         temp6 = (basis_bits.bit7 &~ basis_bits.bit6)
     76        temp5 = (basis_bits.bit_4 & basis_bits.bit_5)
     77        temp6 = (basis_bits.bit_7 &~ basis_bits.bit_6)
    5078        temp7 = (temp5 & temp6)
    5179        CR = (temp7 &~ temp4)
    52         temp8 = (basis_bits.bit4 &~ basis_bits.bit5)
    53         temp9 = (basis_bits.bit6 &~ basis_bits.bit7)
     80        temp8 = (basis_bits.bit_4 &~ basis_bits.bit_5)
     81        temp9 = (basis_bits.bit_6 &~ basis_bits.bit_7)
    5482        temp10 = (temp8 & temp9)
    5583        LF = (temp10 &~ temp4)
    5684        temp11 = (temp8 & temp6)
    5785        HT = (temp11 &~ temp4)
     86        temp12 = (basis_bits.bit_2 &~ basis_bits.bit_3)
     87        temp13 = (temp12 &~ temp1)
     88        temp14 = (basis_bits.bit_4 | basis_bits.bit_5)
     89        temp15 = (basis_bits.bit_6 | basis_bits.bit_7)
     90        temp16 = (temp14 | temp15)
     91        SP = (temp13 &~ temp16)
     92        temp17 = (basis_bits.bit_5 &~ basis_bits.bit_4)
     93        temp18 = (temp17 & temp9)
     94        lex.RefStart = (temp13 & temp18)
     95        temp19 = (basis_bits.bit_2 & basis_bits.bit_3)
     96        temp20 = (temp19 &~ temp1)
     97        temp21 = (basis_bits.bit_6 & basis_bits.bit_7)
     98        temp22 = (temp8 & temp21)
     99        lex.Semicolon = (temp20 & temp22)
     100        temp23 = (temp5 &~ temp15)
     101        lex.LAngle = (temp20 & temp23)
     102        temp24 = (temp5 & temp9)
     103        lex.RAngle = (temp20 & temp24)
     104        temp25 = (basis_bits.bit_1 &~ basis_bits.bit_0)
     105        temp26 = (basis_bits.bit_3 &~ basis_bits.bit_2)
     106        temp27 = (temp25 & temp26)
     107        lex.LBracket = (temp27 & temp22)
     108        lex.RBracket = (temp27 & temp7)
     109        temp28 = (temp6 &~ temp14)
     110        lex.Exclam = (temp13 & temp28)
     111        temp29 = (temp5 & temp21)
     112        lex.QMark = (temp20 & temp29)
     113        lex.Hyphen = (temp13 & temp7)
     114        lex.Equals = (temp20 & temp7)
     115        temp30 = (temp17 & temp21)
     116        lex.SQuote = (temp13 & temp30)
     117        temp31 = (temp9 &~ temp14)
     118        lex.DQuote = (temp13 & temp31)
     119        lex.Slash = (temp13 & temp29)
     120        temp32 = (temp21 &~ temp14)
     121        lex.Hash = (temp13 & temp32)
     122        temp33 = (temp25 & temp19)
     123        temp34 = (temp8 &~ temp15)
     124        lex.x = (temp33 & temp34)
     125        lex.Colon = (temp20 & temp10)
     126        temp35 = (temp27 & temp29)
     127        temp36 = (temp35 | lex.Colon)
     128        temp37 = (temp25 &~ basis_bits.bit_2)
     129        temp38 = (basis_bits.bit_5 | temp21)
     130        temp39 = (basis_bits.bit_4 & temp38)
     131        temp40 = (~temp39)
     132        temp41 = ((basis_bits.bit_3 & temp40)|(~(basis_bits.bit_3) & temp16))
     133        temp42 = (temp37 & temp41)
     134        temp43 = (temp36 | temp42)
     135        temp44 = (temp25 & basis_bits.bit_2)
     136        temp45 = (temp44 & temp41)
     137        lex.ASCII_name_start = (temp43 | temp45)
     138        temp46 = (lex.Hyphen | temp35)
     139        temp47 = (temp13 & temp24)
     140        temp48 = (temp46 | temp47)
     141        temp49 = (temp20 &~ temp39)
     142        temp50 = (temp48 | temp49)
     143        temp51 = (temp50 | temp42)
     144        lex.ASCII_name_char = (temp51 | temp45)
     145        lex.NameScan = (lex.ASCII_name_char | basis_bits.bit_0)
     146        temp52 = (temp7 | temp10)
     147        temp53 = (temp52 | temp11)
     148        temp54 = (temp53 &~ temp4)
     149        lex.WS = (temp54 | SP)
     150        temp55 = (basis_bits.bit_5 | basis_bits.bit_6)
     151        temp56 = (basis_bits.bit_4 & temp55)
     152        lex.Digit = (temp20 &~ temp56)
     153        temp57 = (temp25 &~ temp3)
     154        temp58 = (temp57 &~ basis_bits.bit_4)
     155        temp59 = (~temp21)
     156        temp60 = ((basis_bits.bit_5 & temp59)|(~(basis_bits.bit_5) & temp15))
     157        temp61 = (temp58 & temp60)
     158        temp62 = (lex.Digit | temp61)
     159        temp63 = (temp25 & temp12)
     160        temp64 = (temp63 &~ basis_bits.bit_4)
     161        temp65 = (temp64 & temp60)
     162        lex.Hex = (temp62 | temp65)
     163
    58164        #
    59         decoded.XML_error = x00_x1F & ~(CR | HT | LF)
     165        control.XML_error = x00_x1F & ~(CR | HT | LF)
    60166        #
    61167        if basis_bits.bit0:
    62                 u8_unibyte = (~basis_bits.bit0)
    63                 u8_prefix = (basis_bits.bit0 & basis_bits.bit1)
    64                 u8_suffix = (basis_bits.bit0 &~ basis_bits.bit1)
    65                 u8_prefix2 = (u8_prefix &~ basis_bits.bit2)
    66                 temp12 = (u8_prefix &~ temp3)
    67                 temp13 = (basis_bits.bit4 | basis_bits.bit5)
    68                 temp14 = (temp13 | basis_bits.bit6)
    69                 u8_badprefix2 = (temp12 &~ temp14)
    70                 u8_prefix3or4 = (u8_prefix & basis_bits.bit2)
     168                u8_unibyte = (~basis_bits.bit_0)
     169                u8_prefix = (basis_bits.bit_0 & basis_bits.bit_1)
     170                u8_suffix = (basis_bits.bit_0 &~ basis_bits.bit_1)
     171                u8_prefix2 = (u8_prefix &~ basis_bits.bit_2)
     172                temp66 = (u8_prefix &~ temp3)
     173                temp67 = (temp14 | basis_bits.bit_6)
     174                u8_badprefix2 = (temp66 &~ temp67)
     175                u8_prefix3or4 = (u8_prefix & basis_bits.bit_2)
    71176                #
    72                 decoded.ch_error = u8_badprefix2
     177                control.ch_error = u8_badprefix2
    73178                scope22 = bitutil.Advance(u8_prefix2)
    74179                adv_bit3 = bitutil.Advance(basis_bits.bit3)
     
    80185                u8anyscope = scope22
    81186                u8lastbyte = u8_unibyte | u8lastscope
    82                 decoded.delmask = u8_prefix
     187                control.delmask = u8_prefix
    83188                if u8_prefix3or4:
    84                         temp15 = (basis_bits.bit2 &~ basis_bits.bit3)
    85                         u8_prefix3 = (u8_prefix & temp15)
    86                         temp16 = (basis_bits.bit6 | basis_bits.bit7)
    87                         temp17 = (temp13 | temp16)
    88                         xE0 = (u8_prefix3 &~ temp17)
     189                        u8_prefix3 = (u8_prefix & temp12)
     190                        xE0 = (u8_prefix3 &~ temp16)
    89191                        xED = (u8_prefix3 & temp7)
    90                         xA0_xBF = (u8_suffix & basis_bits.bit2)
    91                         x80_x9F = (u8_suffix &~ basis_bits.bit2)
    92                         temp18 = (basis_bits.bit6 & basis_bits.bit7)
    93                         temp19 = (temp5 & temp18)
    94                         xEF = (u8_prefix3 & temp19)
    95                         temp20 = (basis_bits.bit2 & basis_bits.bit3)
    96                         temp21 = (u8_suffix & temp20)
    97                         xBF = (temp21 & temp19)
    98                         temp22 = (temp5 & temp9)
    99                         xBE = (temp21 & temp22)
    100                         u8_prefix4 = (u8_prefix & temp20)
     192                        xA0_xBF = (u8_suffix & basis_bits.bit_2)
     193                        x80_x9F = (u8_suffix &~ basis_bits.bit_2)
     194                        xEF = (u8_prefix3 & temp29)
     195                        temp68 = (u8_suffix & temp19)
     196                        xBF = (temp68 & temp29)
     197                        xBE = (temp68 & temp24)
     198                        u8_prefix4 = (u8_prefix & temp19)
    101199                        #
    102                         decoded.ch_error |= bitutil.Advance(xE0) & x80_x9F
    103                         decoded.ch_error |= bitutil.Advance(xED) & xA0_xBF
     200                        control.ch_error |= bitutil.Advance(xE0) & x80_x9F
     201                        control.ch_error |= bitutil.Advance(xED) & xA0_xBF
    104202                        scope32 = bitutil.Advance(u8_prefix3)
    105203                        scope33 = bitutil.Advance(scope32)
     
    112210                        u8anyscope = u8lastscope | scope32
    113211                        u8lastbyte = unibyte | u8lastscope
    114                         decoded.delmask |= scope32
     212                        control.delmask |= scope32
    115213                        if u8_prefix4:
    116                                 temp23 = (basis_bits.bit5 & temp16)
    117                                 temp24 = (basis_bits.bit4 | temp23)
    118                                 u8_badprefix4 = (u8_prefix4 & temp24)
    119                                 xF0 = (u8_prefix4 &~ temp17)
    120                                 temp25 = (basis_bits.bit5 &~ basis_bits.bit4)
    121                                 temp26 = (temp25 &~ temp16)
    122                                 xF4 = (u8_prefix4 & temp26)
     214                                temp69 = (basis_bits.bit_5 & temp15)
     215                                temp70 = (basis_bits.bit_4 | temp69)
     216                                u8_badprefix4 = (u8_prefix4 & temp70)
     217                                xF0 = (u8_prefix4 &~ temp16)
     218                                temp71 = (temp17 &~ temp15)
     219                                xF4 = (u8_prefix4 & temp71)
    123220                                x90_xBF = (u8_suffix & temp3)
    124221                                x80_x8F = (u8_suffix &~ temp3)
    125222                                #
    126                                 decoded.ch_error |= bitutil.Advance(xF0) & x80_x8F
    127                                 decoded.ch_error |= bitutil.Advance(xF4) & x90_xBF
     223                                control.ch_error |= bitutil.Advance(xF0) & x80_x8F
     224                                control.ch_error |= bitutil.Advance(xF4) & x90_xBF
    128225                                scope42 = bitutil.Advance(u8_prefix4)
    129226                                scope43 = bitutil.Advance(scope42)
     
    133230                                u8anyscope = u8lastscope | scope32 | scope42 | scope43
    134231                                u8lastbyte = unibyte | u8lastscope
    135                                 decoded.delmask |= scope42
    136                                 decoded.u16lo_bit1 = (unibyte & basis_bits.bit1) | (u8lastscope & adv_bit7)
    137                                 decoded.u16lo_bit0 = u8lastscope & adv_bit6
    138                                 decoded.u16hi_bit5 = u8lastscope & adv_bit3
    139                                 decoded.u16hi_bit6 = u8lastscope & adv_bit4
    140                                 decoded.u16hi_bit7 = u8lastscope & adv_bit5
    141                                 decoded.u16hi_bit0 = scope33 & advadv_bit4 | u8surrogate       
    142                                 decoded.u16hi_bit1 = scope33 & advadv_bit5 | u8surrogate
    143                                 decoded.u16hi_bit2 = scope33 & advadv_bit6
    144                                 decoded.u16hi_bit3 = scope33 & advadv_bit7 | u8surrogate       
    145                                 decoded.u16hi_bit4 = scope33 & adv_bit2 | u8surrogate   
    146                                 decoded.u16hi_bit5 = u8lastscope & adv_bit3 | scope44
     232                                control.delmask |= scope42
     233                                U16lo.bit1 = (unibyte & basis_bits.bit1) | (u8lastscope & adv_bit7)
     234                                U16lo.bit0 = u8lastscope & adv_bit6
     235                                U16hi.bit5 = u8lastscope & adv_bit3
     236                                U16hi.bit6 = u8lastscope & adv_bit4
     237                                U16hi.bit7 = u8lastscope & adv_bit5
     238                                U16hi.bit0 = scope33 & advadv_bit4 | u8surrogate       
     239                                U16hi.bit1 = scope33 & advadv_bit5 | u8surrogate
     240                                U16hi.bit2 = scope33 & advadv_bit6
     241                                U16hi.bit3 = scope33 & advadv_bit7 | u8surrogate       
     242                                U16hi.bit4 = scope33 & adv_bit2 | u8surrogate   
     243                                U16hi.bit5 = u8lastscope & adv_bit3 | scope44
    147244                                s43lo1 = ~adv_bit3 # subtract 1
    148                                 decoded.u16lo_bit1 = decoded.u16lo_bit1 | scope43 & s43lo1
     245                                U16lo.bit1 = U16lo.bit1 | scope43 & s43lo1
    149246                                s43lo0 = adv_bit2 ^ s43lo1 # borrow *
    150                                 decoded.u16lo_bit0 = decoded.u16lo_bit0 | scope43 & s43lo0
     247                                U16lo.bit0 = U16lo.bit0 | scope43 & s43lo0
    151248                                s43borrow1 = s43lo1 & ~adv_bit2
    152249                                s43hi7 = advadv_bit7 ^ s43borrow1
    153250                                s43borrow2 = s43borrow1 & ~advadv_bit7
    154251                                s43hi6 = advadv_bit6 ^ s43borrow2
    155                                 decoded.u16hi_bit7 = u8lastscope & adv_bit5 | (scope43 & s43hi7)
    156                                 decoded.u16hi_bit6 = u8lastscope & adv_bit4 | (scope43 & s43hi6)
    157                                 decoded.u16lo_bit2 = u8lastbyte & basis_bits.bit2 | (scope43 & adv_bit4)
    158                                 decoded.u16lo_bit3 = u8lastbyte & basis_bits.bit3 | (scope43 & adv_bit5)
    159                                 decoded.u16lo_bit4 = u8lastbyte & basis_bits.bit4 | (scope43 & adv_bit6)
    160                                 decoded.u16lo_bit5 = u8lastbyte & basis_bits.bit5 | (scope43 & adv_bit7)
    161                                 decoded.u16lo_bit6 = u8lastbyte & basis_bits.bit6 | (scope43 & basis_bits.bit2)
    162                                 decoded.u16lo_bit7 = u8lastbyte & basis_bits.bit7 | (scope43 & basis_bits.bit3)
     252                                U16hi.bit7 = u8lastscope & adv_bit5 | (scope43 & s43hi7)
     253                                U16hi.bit6 = u8lastscope & adv_bit4 | (scope43 & s43hi6)
     254                                U16lo.bit2 = u8lastbyte & basis_bits.bit2 | (scope43 & adv_bit4)
     255                                U16lo.bit3 = u8lastbyte & basis_bits.bit3 | (scope43 & adv_bit5)
     256                                U16lo.bit4 = u8lastbyte & basis_bits.bit4 | (scope43 & adv_bit6)
     257                                U16lo.bit5 = u8lastbyte & basis_bits.bit5 | (scope43 & adv_bit7)
     258                                U16lo.bit6 = u8lastbyte & basis_bits.bit6 | (scope43 & basis_bits.bit2)
     259                                U16lo.bit7 = u8lastbyte & basis_bits.bit7 | (scope43 & basis_bits.bit3)
    163260                        else:
    164                                 decoded.u16hi_bit0 = scope33 & advadv_bit4
    165                                 decoded.u16hi_bit1 = scope33 & advadv_bit5
    166                                 decoded.u16hi_bit2 = scope33 & advadv_bit6
    167                                 decoded.u16hi_bit3 = scope33 & advadv_bit7
    168                                 decoded.u16hi_bit4 = scope33 & adv_bit2
    169                                 decoded.u16hi_bit5 = u8lastscope & adv_bit3
    170                                 decoded.u16hi_bit6 = u8lastscope & adv_bit4
    171                                 decoded.u16hi_bit7 = u8lastscope & adv_bit5
    172                                 decoded.u16lo_bit0 = u8lastscope & adv_bit6
    173                                 decoded.u16lo_bit1 = (unibyte & basis_bits.bit1) | (u8lastscope & adv_bit7)
    174                                 decoded.u16lo_bit2 = u8lastbyte & basis_bits.bit2
    175                                 decoded.u16lo_bit3 = u8lastbyte & basis_bits.bit3
    176                                 decoded.u16lo_bit4 = u8lastbyte & basis_bits.bit4
    177                                 decoded.u16lo_bit5 = u8lastbyte & basis_bits.bit5
    178                                 decoded.u16lo_bit6 = u8lastbyte & basis_bits.bit6
    179                                 decoded.u16lo_bit7 = u8lastbyte & basis_bits.bit7
     261                                U16hi.bit0 = scope33 & advadv_bit4
     262                                U16hi.bit1 = scope33 & advadv_bit5
     263                                U16hi.bit2 = scope33 & advadv_bit6
     264                                U16hi.bit3 = scope33 & advadv_bit7
     265                                U16hi.bit4 = scope33 & adv_bit2
     266                                U16hi.bit5 = u8lastscope & adv_bit3
     267                                U16hi.bit6 = u8lastscope & adv_bit4
     268                                U16hi.bit7 = u8lastscope & adv_bit5
     269                                U16lo.bit0 = u8lastscope & adv_bit6
     270                                U16lo.bit1 = (unibyte & basis_bits.bit1) | (u8lastscope & adv_bit7)
     271                                U16lo.bit2 = u8lastbyte & basis_bits.bit2
     272                                U16lo.bit3 = u8lastbyte & basis_bits.bit3
     273                                U16lo.bit4 = u8lastbyte & basis_bits.bit4
     274                                U16lo.bit5 = u8lastbyte & basis_bits.bit5
     275                                U16lo.bit6 = u8lastbyte & basis_bits.bit6
     276                                U16lo.bit7 = u8lastbyte & basis_bits.bit7
    180277                else:
    181                         decoded.u16hi_bit0 = 0
    182                         decoded.u16hi_bit1 = 0
    183                         decoded.u16hi_bit2 = 0
    184                         decoded.u16hi_bit3 = 0
    185                         decoded.u16hi_bit4 = 0
    186                         decoded.u16hi_bit5 = u8lastscope & adv_bit3
    187                         decoded.u16hi_bit6 = u8lastscope & adv_bit4
    188                         decoded.u16hi_bit7 = u8lastscope & adv_bit5
    189                         decoded.u16lo_bit0 = u8lastscope & adv_bit6
    190                         decoded.u16lo_bit1 = (unibyte & basis_bits.bit1) | (u8lastscope & adv_bit7)
    191                         decoded.u16lo_bit2 = u8lastbyte & basis_bits.bit2
    192                         decoded.u16lo_bit3 = u8lastbyte & basis_bits.bit3
    193                         decoded.u16lo_bit4 = u8lastbyte & basis_bits.bit4
    194                         decoded.u16lo_bit5 = u8lastbyte & basis_bits.bit5
    195                         decoded.u16lo_bit6 = u8lastbyte & basis_bits.bit6
    196                         decoded.u16lo_bit7 = u8lastbyte & basis_bits.bit7
     278                        U16hi.bit0 = 0
     279                        U16hi.bit1 = 0
     280                        U16hi.bit2 = 0
     281                        U16hi.bit3 = 0
     282                        U16hi.bit4 = 0
     283                        U16hi.bit5 = u8lastscope & adv_bit3
     284                        U16hi.bit6 = u8lastscope & adv_bit4
     285                        U16hi.bit7 = u8lastscope & adv_bit5
     286                        U16lo.bit0 = u8lastscope & adv_bit6
     287                        U16lo.bit1 = (unibyte & basis_bits.bit1) | (u8lastscope & adv_bit7)
     288                        U16lo.bit2 = u8lastbyte & basis_bits.bit2
     289                        U16lo.bit3 = u8lastbyte & basis_bits.bit3
     290                        U16lo.bit4 = u8lastbyte & basis_bits.bit4
     291                        U16lo.bit5 = u8lastbyte & basis_bits.bit5
     292                        U16lo.bit6 = u8lastbyte & basis_bits.bit6
     293                        U16lo.bit7 = u8lastbyte & basis_bits.bit7
    197294        else:
    198                 decoded.u16hi_bit0 = 0
    199                 decoded.u16hi_bit1 = 0
    200                 decoded.u16hi_bit2 = 0
    201                 decoded.u16hi_bit3 = 0
    202                 decoded.u16hi_bit4 = 0
    203                 decoded.u16hi_bit5 = 0
    204                 decoded.u16hi_bit6 = 0
    205                 decoded.u16hi_bit7 = 0
    206                 decoded.u16lo_bit0 = 0
    207                 decoded.u16lo_bit1 = basis_bits.bit1
    208                 decoded.u16lo_bit2 = basis_bits.bit2
    209                 decoded.u16lo_bit3 = basis_bits.bit3
    210                 decoded.u16lo_bit4 = basis_bits.bit4
    211                 decoded.u16lo_bit5 = basis_bits.bit5
    212                 decoded.u16lo_bit6 = basis_bits.bit6
    213                 decoded.u16lo_bit7 = basis_bits.bit7
    214                 decoded.delmask = 0
    215                 decoded.ch_error = 0
     295                U16hi.bit0 = 0
     296                U16hi.bit1 = 0
     297                U16hi.bit2 = 0
     298                U16hi.bit3 = 0
     299                U16hi.bit4 = 0
     300                U16hi.bit5 = 0
     301                U16hi.bit6 = 0
     302                U16hi.bit7 = 0
     303                U16lo.bit0 = 0
     304                U16lo.bit1 = basis_bits.bit1
     305                U16lo.bit2 = basis_bits.bit2
     306                U16lo.bit3 = basis_bits.bit3
     307                U16lo.bit4 = basis_bits.bit4
     308                U16lo.bit5 = basis_bits.bit5
     309                U16lo.bit6 = basis_bits.bit6
     310                U16lo.bit7 = basis_bits.bit7
     311                control.delmask = 0
     312                control.ch_error = 0
    216313
    217314        #
    218315        #  Line Break Normalization
    219316        #  Convert CRs to LFs (flip bits 5, 6 and 7 with xor).
    220         decoded.u16lo_bit5 ^= CR
    221         decoded.u16lo_bit6 ^= CR
    222         decoded.u16lo_bit7 ^= CR
     317        U16lo.bit5 ^= CR
     318        U16lo.bit6 ^= CR
     319        U16lo.bit7 ^= CR
    223320        CRLF = bitutil.Advance(CR) & LF
    224         decoded.delmask |= CRLF
    225         decoded.pseudo_bit0 = basis_bits.bit0 | CR  # Inverse transposition required
    226         decoded.normalized_LF = LF | CR
    227 
    228 
    229 def Main(basis_bits, decoded):
    230         u8u16(basis_bits, decoded)
    231 
    232 
     321        control.delmask |= CRLF
     322        control.pseudo_bit0 = basis_bits.bit0 | CR  # Inverse transposition required
     323        control.normalized_LF = LF | CR
     324        control.HT = HT
     325
     326def Main(basis_bits, u16hi, u16lo, lex, control):
     327        u8u16(basis_bits, u16hi, u16lo, lex, control)
     328
     329
Note: See TracChangeset for help on using the changeset viewer.