Changeset 548 for proto/parabix2


Ignore:
Timestamp:
Jul 29, 2010, 2:57:56 AM (9 years ago)
Author:
cameron
Message:

Inline and reorganize byteclass and u8 processing

File:
1 edited

Legend:

Unmodified
Added
Removed
  • proto/parabix2/parabix2_compilable.py

    r547 r548  
    2121#import bitutil
    2222
    23 import byteclass
    24 
    25 import u8u16
     23#import byteclass
     24
     25#import u8u16
    2626
    2727#import sys
     28
     29class u8_streams ():
     30  unibyte = 0
     31  prefix = 0
     32  prefix2 = 0
     33  prefix3 = 0
     34  prefix4 = 0
     35  suffix = 0
     36  badprefix = 0
     37  xE0_scope = 0
     38  xED_scope = 0
     39  xF0_scope = 0
     40  xF4_scope = 0
     41  xA0_xBF = 0
     42  x80_x9F = 0
     43  x90_xBF = 0
     44  x80_x8F = 0
     45  xEF_scope = 0
     46  xBF = 0
     47  xBE = 0
     48  scope22 = 0
     49  scope32 = 0
     50  scope33 = 0
     51  scope42 = 0
     52  scope43 = 0
     53  scope44 = 0
     54
     55class control_streams ():
     56  x00_x1F = 0
     57  CR = 0
     58  LF = 0
     59  HT = 0
     60  SP = 0
     61  CR_scope = 0
     62  CRLF = 0
     63 
     64class lexical_streams ():
     65  RefStart = 0
     66  Semicolon = 0 
     67  Colon = 0
     68  LAngle = 0
     69  RAngle = 0
     70  LBracket = 0
     71  RBracket = 0
     72  Exclam = 0
     73  QMark = 0
     74  Hyphen = 0
     75  Equals = 0
     76  SQuote = 0
     77  DQuote = 0
     78  Slash = 0
     79  Hash = 0
     80  x = 0
     81  ASCII_name_start = 0
     82  ASCII_name_char = 0
     83  NameScan = 0
     84  Digit = 0
     85  Hex = 0
     86  WS = 0
     87  PI_start = 0
     88  CtCD_start = 0
     89  EndTag_start = 0
     90  CD_end = 0
     91  DoubleHyphen = 0
     92  PI_end = 0
     93  RefStart_scope = 0
     94  LAngle_scope = 0
     95  Hyphen_scope = 0
     96  QMark_scope = 0
     97  RBracket_scope = 0
     98
     99def classify_bytes(bit) :
     100        lex = lexical_streams()
     101        control = control_streams()
     102        temp1 = (bit[0] | bit[1]);
     103        temp2 = (bit[2] &~ bit[3]);
     104        temp3 = (temp2 &~ temp1);
     105        temp4 = (bit[5] &~ bit[4]);
     106        temp5 = (bit[6] &~ bit[7]);
     107        temp6 = (temp4 & temp5);
     108        lex.RefStart = (temp3 & temp6);
     109        temp7 = (bit[2] & bit[3]);
     110        temp8 = (temp7 &~ temp1);
     111        temp9 = (bit[4] &~ bit[5]);
     112        temp10 = (bit[6] & bit[7]);
     113        temp11 = (temp9 & temp10);
     114        lex.Semicolon = (temp8 & temp11);
     115        temp12 = (bit[4] & bit[5]);
     116        temp13 = (bit[6] | bit[7]);
     117        temp14 = (temp12 &~ temp13);
     118        lex.LAngle = (temp8 & temp14);
     119        temp15 = (temp12 & temp5);
     120        lex.RAngle = (temp8 & temp15);
     121        temp16 = (bit[1] &~ bit[0]);
     122        temp17 = (bit[3] &~ bit[2]);
     123        temp18 = (temp16 & temp17);
     124        lex.LBracket = (temp18 & temp11);
     125        temp19 = (bit[7] &~ bit[6]);
     126        temp20 = (temp12 & temp19);
     127        lex.RBracket = (temp18 & temp20);
     128        temp21 = (bit[4] | bit[5]);
     129        temp22 = (temp19 &~ temp21);
     130        lex.Exclam = (temp3 & temp22);
     131        temp23 = (temp12 & temp10);
     132        lex.QMark = (temp8 & temp23);
     133        lex.Hyphen = (temp3 & temp20);
     134        lex.Equals = (temp8 & temp20);
     135        temp24 = (temp4 & temp10);
     136        lex.SQuote = (temp3 & temp24);
     137        temp25 = (temp5 &~ temp21);
     138        lex.DQuote = (temp3 & temp25);
     139        lex.Slash = (temp3 & temp23);
     140        temp26 = (temp10 &~ temp21);
     141        lex.Hash = (temp3 & temp26);
     142        temp27 = (temp16 & temp7);
     143        temp28 = (temp9 &~ temp13);
     144        lex.x = (temp27 & temp28);
     145        temp29 = (temp9 & temp5);
     146        lex.Colon = (temp8 & temp29);
     147        temp30 = (temp18 & temp23);
     148        temp31 = (temp30 | lex.Colon);
     149        temp32 = (temp16 &~ bit[2]);
     150        temp33 = (bit[5] | temp10);
     151        temp34 = (bit[4] & temp33);
     152        temp35 = (~temp34);
     153        temp36 = (temp21 | temp13);
     154        temp37 = ((bit[3] & temp35)|(~(bit[3]) & temp36));
     155        temp38 = (temp32 & temp37);
     156        temp39 = (temp31 | temp38);
     157        temp40 = (temp16 & bit[2]);
     158        temp41 = (temp40 & temp37);
     159        lex.ASCII_name_start = (temp39 | temp41);
     160        temp42 = (temp30 | lex.Hyphen);
     161        temp43 = (temp3 & temp15);
     162        temp44 = (temp42 | temp43);
     163        temp45 = (temp8 &~ temp34);
     164        temp46 = (temp44 | temp45);
     165        temp47 = (temp46 | temp38);
     166        lex.ASCII_name_char = (temp47 | temp41);
     167        lex.NameScan = (lex.ASCII_name_char | bit[0]);
     168        temp48 = (temp1 | bit[2]);
     169        control.x00_x1F = (~temp48);
     170        temp49 = (bit[2] | bit[3]);
     171        temp50 = (temp1 | temp49);
     172        control.CR = (temp20 &~ temp50);
     173        control.LF = (temp29 &~ temp50);
     174        temp51 = (temp9 & temp19);
     175        control.HT = (temp51 &~ temp50);
     176        control.SP = (temp3 &~ temp36);
     177        temp52 = (temp20 | temp29);
     178        temp53 = (temp52 | temp51);
     179        temp54 = (temp53 &~ temp50);
     180        lex.WS = (temp54 | control.SP);
     181        temp55 = (bit[5] | bit[6]);
     182        temp56 = (bit[4] & temp55);
     183        lex.Digit = (temp8 &~ temp56);
     184        temp57 = (temp16 &~ temp49);
     185        temp58 = (temp57 &~ bit[4]);
     186        temp59 = (~temp10);
     187        temp60 = ((bit[5] & temp59)|(~(bit[5]) & temp13));
     188        temp61 = (temp58 & temp60);
     189        temp62 = (lex.Digit | temp61);
     190        temp63 = (temp16 & temp2);
     191        temp64 = (temp63 &~ bit[4]);
     192        temp65 = (temp64 & temp60);
     193        lex.Hex = (temp62 | temp65);
     194
     195        return (control, lex)
     196
    28197
    29198def validate_xmlchar(u8, control, lex, EOF_mask):
     
    47216        (u8, control, lex) = byteclass.classify_bytes(bit)
    48217        bitutil.print_aligned_streams([('input high nybbles', bitutil.high_nybble_stream(u8data)),
    49                               ('input low nybbles', bitutil.low_nybble_stream(u8data)),
    50                               ('illegal XML chars', bitutil.bitstream2string(validate_xmlchar(u8, control, lex, EOF_mask), lgth+1))])
     218                            ('input low nybbles', bitutil.low_nybble_stream(u8data)),
     219                            ('illegal XML chars', bitutil.bitstream2string(validate_xmlchar(u8, control, lex, EOF_mask), lgth+1))])
    51220
    52221def normalize_line_breaks(control, bit):
     
    73242        (control, bit) = normalize_line_breaks(control, bit)
    74243        bitutil.print_aligned_u8_byte_streams([('input high nybbles', bitutil.high_nybble_stream(u8data)),
    75                               ('input low nybbles', bitutil.low_nybble_stream(u8data)),
    76                               ('CR', bitutil.bitstream2string(control.CR, lgth)),
    77                               ('LF', bitutil.bitstream2string(control.LF, lgth)),
    78                               ('CRLF', bitutil.bitstream2string(control.CRLF, lgth))])
     244                            ('input low nybbles', bitutil.low_nybble_stream(u8data)),
     245                            ('CR', bitutil.bitstream2string(control.CR, lgth)),
     246                            ('LF', bitutil.bitstream2string(control.LF, lgth)),
     247                            ('CRLF', bitutil.bitstream2string(control.CRLF, lgth))])
    79248
    80249
     
    110279        lex = add_multiliterals(lex)
    111280        bitutil.print_aligned_u8_byte_streams([('input data', u8data),
    112                               ('PI_start', bitutil.bitstream2string(lex.PI_start, lgth)),
    113                               ('CtCD_start', bitutil.bitstream2string(lex.CtCD_start, lgth)),
    114                               ('EndTag_start', bitutil.bitstream2string(lex.EndTag_start, lgth)),
    115                               ('CD_end', bitutil.bitstream2string(lex.CD_end, lgth)),
    116                               ('DoubleHyphen', bitutil.bitstream2string(lex.DoubleHyphen, lgth)),
    117                               ('PI_end', bitutil.bitstream2string(lex.PI_end, lgth))])
     281                            ('PI_start', bitutil.bitstream2string(lex.PI_start, lgth)),
     282                            ('CtCD_start', bitutil.bitstream2string(lex.CtCD_start, lgth)),
     283                            ('EndTag_start', bitutil.bitstream2string(lex.EndTag_start, lgth)),
     284                            ('CD_end', bitutil.bitstream2string(lex.CD_end, lgth)),
     285                            ('DoubleHyphen', bitutil.bitstream2string(lex.DoubleHyphen, lgth)),
     286                            ('PI_end', bitutil.bitstream2string(lex.PI_end, lgth))])
    118287
    119288class CtCDPI_callouts:
     
    207376        markup = parse_CtCDPI(lex, EOF_mask)
    208377        bitutil.print_aligned_u8_byte_streams([('input data', u8data),
    209                               ('CD_span', bitutil.bitstream2string(markup.CD_span, lgth)),
    210                               ('Ct_span', bitutil.bitstream2string(markup.Ct_span, lgth)),
    211                               ('PI_span', bitutil.bitstream2string(markup.PI_span, lgth)),
    212                               ('CtCDPI_mask', bitutil.bitstream2string(markup.CtCDPI_mask, lgth)),
    213                               ('error', bitutil.bitstream2string(markup.error, lgth+1))])
     378                            ('CD_span', bitutil.bitstream2string(markup.CD_span, lgth)),
     379                            ('Ct_span', bitutil.bitstream2string(markup.Ct_span, lgth)),
     380                            ('PI_span', bitutil.bitstream2string(markup.PI_span, lgth)),
     381                            ('CtCDPI_mask', bitutil.bitstream2string(markup.CtCDPI_mask, lgth)),
     382                            ('error', bitutil.bitstream2string(markup.error, lgth+1))])
    214383
    215384
     
    284453        callouts = parse_refs(lex, 0)
    285454        bitutil.print_aligned_u8_byte_streams([('input data', u8data),
    286                               ('entity refs', bitutil.bitstream2string(callouts.GenRefs, lgth)),
    287                               ('decimal char refs', bitutil.bitstream2string(callouts.DecRefs, lgth)),
    288                               ('hex char refs', bitutil.bitstream2string(callouts.HexRefs, lgth)),
    289                               ('ref delmask', bitutil.bitstream2string(callouts.delmask, lgth)),
    290                               ('errors', bitutil.bitstream2string(callouts.error, lgth+1))])
     455                            ('entity refs', bitutil.bitstream2string(callouts.GenRefs, lgth)),
     456                            ('decimal char refs', bitutil.bitstream2string(callouts.DecRefs, lgth)),
     457                            ('hex char refs', bitutil.bitstream2string(callouts.HexRefs, lgth)),
     458                            ('ref delmask', bitutil.bitstream2string(callouts.delmask, lgth)),
     459                            ('errors', bitutil.bitstream2string(callouts.error, lgth+1))])
    291460
    292461
     
    519688        callouts = parse_tags(lex, markup1.CtCDPI_mask, EOF_mask)
    520689        bitutil.print_aligned_u8_byte_streams([('input data', u8data),
    521                               ('element names', bitutil.bitstream2string(callouts.ElemNames, lgth)),
    522                               ('attribute names', bitutil.bitstream2string(callouts.AttNames, lgth)),
    523                               ('attribute values', bitutil.bitstream2string(callouts.AttVals, lgth)),
    524                               ('empty tag marks', bitutil.bitstream2string(callouts.EmptyTagMarks, lgth)),
    525                               ('end tags', bitutil.bitstream2string(callouts.EndTags, lgth)),
    526                               ('start/empty tags', bitutil.bitstream2string(callouts.Tags, lgth)),
    527                               ('errors', bitutil.bitstream2string(callouts.error, lgth+1))])
     690                            ('element names', bitutil.bitstream2string(callouts.ElemNames, lgth)),
     691                            ('attribute names', bitutil.bitstream2string(callouts.AttNames, lgth)),
     692                            ('attribute values', bitutil.bitstream2string(callouts.AttVals, lgth)),
     693                            ('empty tag marks', bitutil.bitstream2string(callouts.EmptyTagMarks, lgth)),
     694                            ('end tags', bitutil.bitstream2string(callouts.EndTags, lgth)),
     695                            ('start/empty tags', bitutil.bitstream2string(callouts.Tags, lgth)),
     696                            ('errors', bitutil.bitstream2string(callouts.error, lgth+1))])
    528697
    529698
     
    550719        error = validate_no_CD_end(lex, markup1, tags)
    551720        bitutil.print_aligned_u8_byte_streams([('input data', u8data),
    552                               ('CtCDPI_mask', bitutil.bitstream2string(markup1.CtCDPI_mask, lgth)),
    553                               ('tags', bitutil.bitstream2string(tags.Tags, lgth)),
    554                               ('illegal ]]>', bitutil.bitstream2string(error, lgth))])
     721                            ('CtCDPI_mask', bitutil.bitstream2string(markup1.CtCDPI_mask, lgth)),
     722                            ('tags', bitutil.bitstream2string(tags.Tags, lgth)),
     723                            ('illegal ]]>', bitutil.bitstream2string(error, lgth))])
    555724
    556725
     
    562731        # Classify bytes for UTF-8 processing, whitespace and control
    563732        # processing and XML lexical analysis.
    564         (u8, control, lex) = byteclass.classify_bytes(bit)
     733        #(u8, control, lex) = byteclass.classify_bytes(bit)
    565734        #(u8, control, lex) = byteclass.classify_bytes_with_shift1opt(bit)
    566 
    567         # Validate UTF-8 multibyte sequences and determine the UTF-8 scope streams.
    568         u8 = u8u16.validate_utf8(u8)
    569 
    570         # Rule out the illegal characters for XML.
    571         xmlchar_error = validate_xmlchar(u8, control, lex, EOF_mask)
    572 
    573         # Find and normalize bare CR or CRLF combinations.
    574         # Not needed for xmlwf
    575         #(control, bit) = normalize_line_breaks(control, bit)
     735        #(control, lex) = classify_bytes(bit)
     736
     737        control = control_streams()
     738        temp1 = (bit[0] | bit[1]);
     739        temp2 = (bit[2] &~ bit[3]);
     740        temp3 = (temp2 &~ temp1);
     741        temp4 = (bit[5] &~ bit[4]);
     742        temp5 = (bit[6] &~ bit[7]);
     743        temp6 = (temp4 & temp5);
     744        lex.RefStart = (temp3 & temp6);
     745        temp7 = (bit[2] & bit[3]);
     746        temp8 = (temp7 &~ temp1);
     747        temp9 = (bit[4] &~ bit[5]);
     748        temp10 = (bit[6] & bit[7]);
     749        temp11 = (temp9 & temp10);
     750        lex.Semicolon = (temp8 & temp11);
     751        temp12 = (bit[4] & bit[5]);
     752        temp13 = (bit[6] | bit[7]);
     753        temp14 = (temp12 &~ temp13);
     754        lex.LAngle = (temp8 & temp14);
     755        temp15 = (temp12 & temp5);
     756        lex.RAngle = (temp8 & temp15);
     757        temp16 = (bit[1] &~ bit[0]);
     758        temp17 = (bit[3] &~ bit[2]);
     759        temp18 = (temp16 & temp17);
     760        lex.LBracket = (temp18 & temp11);
     761        temp19 = (bit[7] &~ bit[6]);
     762        temp20 = (temp12 & temp19);
     763        lex.RBracket = (temp18 & temp20);
     764        temp21 = (bit[4] | bit[5]);
     765        temp22 = (temp19 &~ temp21);
     766        lex.Exclam = (temp3 & temp22);
     767        temp23 = (temp12 & temp10);
     768        lex.QMark = (temp8 & temp23);
     769        lex.Hyphen = (temp3 & temp20);
     770        lex.Equals = (temp8 & temp20);
     771        temp24 = (temp4 & temp10);
     772        lex.SQuote = (temp3 & temp24);
     773        temp25 = (temp5 &~ temp21);
     774        lex.DQuote = (temp3 & temp25);
     775        lex.Slash = (temp3 & temp23);
     776        temp26 = (temp10 &~ temp21);
     777        lex.Hash = (temp3 & temp26);
     778        temp27 = (temp16 & temp7);
     779        temp28 = (temp9 &~ temp13);
     780        lex.x = (temp27 & temp28);
     781        temp29 = (temp9 & temp5);
     782        lex.Colon = (temp8 & temp29);
     783        temp30 = (temp18 & temp23);
     784        temp31 = (temp30 | lex.Colon);
     785        temp32 = (temp16 &~ bit[2]);
     786        temp33 = (bit[5] | temp10);
     787        temp34 = (bit[4] & temp33);
     788        temp35 = (~temp34);
     789        temp36 = (temp21 | temp13);
     790        temp37 = ((bit[3] & temp35)|(~(bit[3]) & temp36));
     791        temp38 = (temp32 & temp37);
     792        temp39 = (temp31 | temp38);
     793        temp40 = (temp16 & bit[2]);
     794        temp41 = (temp40 & temp37);
     795        lex.ASCII_name_start = (temp39 | temp41);
     796        temp42 = (temp30 | lex.Hyphen);
     797        temp43 = (temp3 & temp15);
     798        temp44 = (temp42 | temp43);
     799        temp45 = (temp8 &~ temp34);
     800        temp46 = (temp44 | temp45);
     801        temp47 = (temp46 | temp38);
     802        lex.ASCII_name_char = (temp47 | temp41);
     803        lex.NameScan = (lex.ASCII_name_char | bit[0]);
     804        temp48 = (temp1 | bit[2]);
     805        control.x00_x1F = (~temp48);
     806        temp49 = (bit[2] | bit[3]);
     807        temp50 = (temp1 | temp49);
     808        control.CR = (temp20 &~ temp50);
     809        control.LF = (temp29 &~ temp50);
     810        temp51 = (temp9 & temp19);
     811        control.HT = (temp51 &~ temp50);
     812        control.SP = (temp3 &~ temp36);
     813        temp52 = (temp20 | temp29);
     814        temp53 = (temp52 | temp51);
     815        temp54 = (temp53 &~ temp50);
     816        lex.WS = (temp54 | control.SP);
     817        temp55 = (bit[5] | bit[6]);
     818        temp56 = (bit[4] & temp55);
     819        lex.Digit = (temp8 &~ temp56);
     820        temp57 = (temp16 &~ temp49);
     821        temp58 = (temp57 &~ bit[4]);
     822        temp59 = (~temp10);
     823        temp60 = ((bit[5] & temp59)|(~(bit[5]) & temp13));
     824        temp61 = (temp58 & temp60);
     825        temp62 = (lex.Digit | temp61);
     826        temp63 = (temp16 & temp2);
     827        temp64 = (temp63 &~ bit[4]);
     828        temp65 = (temp64 & temp60);
     829        lex.Hex = (temp62 | temp65);
     830
     831
     832
     833        xmlchar_error = (control.x00_x1F &~ lex.WS & EOF_mask)
     834
     835
     836        u8 = u8_streams()
     837        u8.unibyte = (~bit[0]);
     838        u8.suffix = 0
     839
     840        if bit[0]:
     841                u8.prefix = (bit[0] & bit[1]);
     842                u8.prefix2 = (u8.prefix &~ bit[2]);
     843                u8.prefix3 = (u8.prefix & temp2);
     844                u8.prefix4 = (u8.prefix & temp7);
     845                u8.suffix = (bit[0] &~ bit[1]);
     846                temp66 = (u8.prefix &~ temp49);
     847                temp67 = (temp21 | bit[6]);
     848                temp68 = (temp66 &~ temp67);
     849                temp69 = (bit[5] & temp13);
     850                temp70 = (bit[4] | temp69);
     851                temp71 = (u8.prefix4 & temp70);
     852                u8.badprefix = (temp68 | temp71);
     853                xE0 = (u8.prefix3 &~ temp36);
     854                xED = (u8.prefix3 & temp20);
     855                xF0 = (u8.prefix4 &~ temp36);
     856                temp72 = (temp4 &~ temp13);
     857                xF4 = (u8.prefix4 & temp72);
     858                u8.xA0_xBF = (u8.suffix & bit[2]);
     859                u8.x80_x9F = (u8.suffix &~ bit[2]);
     860                u8.x90_xBF = (u8.suffix & temp49);
     861                u8.x80_x8F = (u8.suffix &~ temp49);
     862                xEF = (u8.prefix3 & temp23);
     863                temp73 = (u8.suffix & temp7);
     864                u8.xBF = (temp73 & temp23);
     865                u8.xBE = (temp73 & temp15);
     866                u8.xE0_scope = bitutil.Advance(xE0);
     867                u8.xED_scope = bitutil.Advance(xED);
     868                u8.xF0_scope = bitutil.Advance(xF0);
     869                u8.xF4_scope = bitutil.Advance(xF4);
     870                u8.xEF_scope = bitutil.Advance(xEF);
     871                u8.scope22 = bitutil.Advance(u8.prefix2)
     872                u8.scope32 = bitutil.Advance(u8.prefix3)
     873                u8.scope33 = bitutil.Advance(u8.scope32)
     874                u8.scope42 = bitutil.Advance(u8.prefix4)
     875                u8.scope43 = bitutil.Advance(u8.scope42)
     876                u8.scope44 = bitutil.Advance(u8.scope43)
     877
     878                u8lastscope = u8.scope22 | u8.scope33 | u8.scope44
     879                u8anyscope = u8lastscope | u8.scope32 | u8.scope42 | u8.scope43
     880               
     881                u8error1 = u8.xE0_scope & u8.x80_x9F
     882                u8error2 = u8.xED_scope & u8.xA0_xBF
     883                u8error3 = u8.xF0_scope & u8.x80_x8F
     884                u8error4 = u8.xF4_scope & u8.x90_xBF
     885       
     886                u8mismatch = u8anyscope ^ u8.suffix
     887
     888                u8.error = u8.badprefix | u8error1 | u8error2 | u8error3 | u8error4 | u8mismatch
     889
     890                EF_BF_pending = bitutil.Advance(u8.xEF_scope & u8.xBF)
     891
     892                FFFE_FFFF = (EF_BF_pending & (u8.xBE | u8.xBF))
     893
     894        xmlchar_error |= FFFE_FFFF
     895
     896        lex.RefStart_scope = bitutil.Advance(lex.RefStart)
     897        lex.LAngle_scope = bitutil.Advance(lex.LAngle)
     898        lex.Hyphen_scope = bitutil.Advance(lex.Hyphen)
     899        lex.QMark_scope = bitutil.Advance(lex.QMark)
     900        lex.RBracket_scope = bitutil.Advance(lex.RBracket)
    576901
    577902        # Compute XML multilterals such as <?, </, --, ]]>.
    578         lex = add_multiliterals(lex)
    579        
     903        #lex = add_multiliterals(lex)
     904        lex.PI_start = lex.LAngle_scope & lex.QMark
     905        lex.CtCD_start = lex.LAngle_scope & lex.Exclam
     906        lex.EndTag_start = lex.LAngle_scope & lex.Slash
     907        lex.CD_end = bitutil.Advance(lex.RBracket_scope & lex.RBracket) & lex.RAngle
     908        lex.DoubleHyphen = lex.Hyphen_scope & lex.Hyphen
     909        lex.PI_end = lex.QMark_scope & lex.RAngle
     910
    580911       
    581912        # THE FOLLOWING FUNCTIONAL CALL IS MANUALLY INLINED
     
    7551086                error3 = (GenRefEnds | DecRefEnds | HexRefEnds) &~ lex.Semicolon
    7561087                refs.GenRefs = GenRefEnds - GenRef2
    757                 refs.DecRefs = DecRefEnds - DecRef3
    758                 refs.HexRefs = HexRefEnds - HexRef4
     1088                #refs.DecRefs = DecRefEnds - DecRef3
     1089                #refs.HexRefs = HexRefEnds - HexRef4
    7591090                # Mark references for deletion, but leave the trailing semicolon as
    7601091                # the point for insertion of the "expansion" text (most often a
     
    7761107        #delmask = control.CRLF | refs.delmask | u16delmask # | CT_callouts.CDATA_delimiters
    7771108        #Not needed for xmlwf
    778         delmask = control.CRLF | refs.delmask  # | CT_callouts.CDATA_delimiters
     1109        #delmask = control.CRLF | refs.delmask  # | CT_callouts.CDATA_delimiters
    7791110       
    7801111        qname_stream =  callouts.ElemNames | callouts.AttNames
     
    7941125        (markup1, tags, refs, u16hi, u16lo, delmask, error, lex, u16delmask, EOF_mask) = parabix_parse(u8data)
    7951126        bitutil.print_aligned_u8_byte_streams([('input data', u8data),
    796                               ('input high nybbles', bitutil.high_nybble_stream(u8data)),
    797                               ('input low nybbles', bitutil.low_nybble_stream(u8data)),
    798                               ('CD_span', bitutil.bitstream2string(markup1.CD_span, lgth)),
    799                               ('Ct_span', bitutil.bitstream2string(markup1.Ct_span, lgth)),
    800                               ('PI_span', bitutil.bitstream2string(markup1.PI_span, lgth)),
    801                               ('CtCDPI_mask', bitutil.bitstream2string(markup1.CtCDPI_mask, lgth)),
    802                               ('entity refs', bitutil.bitstream2string(refs.GenRefs, lgth)),
    803                               ('decimal char refs', bitutil.bitstream2string(refs.DecRefs, lgth)),
    804                               ('hex char refs', bitutil.bitstream2string(refs.HexRefs, lgth)),
    805                               ('element names', bitutil.bitstream2string(tags.ElemNames, lgth)),
    806                               ('attribute names', bitutil.bitstream2string(tags.AttNames, lgth)),
    807                               ('attribute values', bitutil.bitstream2string(tags.AttVals, lgth)),
    808                               ('empty tag marks', bitutil.bitstream2string(tags.EmptyTagMarks, lgth)),
    809                               ('end tags', bitutil.bitstream2string(tags.EndTags, lgth)),
    810                               ('start/empty tags', bitutil.bitstream2string(tags.Tags, lgth)),
    811                               ('delmask', bitutil.bitstream2string(delmask, lgth)),
    812                               ('u16delmask', bitutil.bitstream2string(u16delmask, lgth)),
    813                               ('errors', bitutil.bitstream2string(error, lgth+1))])
     1127                            ('input high nybbles', bitutil.high_nybble_stream(u8data)),
     1128                            ('input low nybbles', bitutil.low_nybble_stream(u8data)),
     1129                            ('CD_span', bitutil.bitstream2string(markup1.CD_span, lgth)),
     1130                            ('Ct_span', bitutil.bitstream2string(markup1.Ct_span, lgth)),
     1131                            ('PI_span', bitutil.bitstream2string(markup1.PI_span, lgth)),
     1132                            ('CtCDPI_mask', bitutil.bitstream2string(markup1.CtCDPI_mask, lgth)),
     1133                            ('entity refs', bitutil.bitstream2string(refs.GenRefs, lgth)),
     1134                            ('decimal char refs', bitutil.bitstream2string(refs.DecRefs, lgth)),
     1135                            ('hex char refs', bitutil.bitstream2string(refs.HexRefs, lgth)),
     1136                            ('element names', bitutil.bitstream2string(tags.ElemNames, lgth)),
     1137                            ('attribute names', bitutil.bitstream2string(tags.AttNames, lgth)),
     1138                            ('attribute values', bitutil.bitstream2string(tags.AttVals, lgth)),
     1139                            ('empty tag marks', bitutil.bitstream2string(tags.EmptyTagMarks, lgth)),
     1140                            ('end tags', bitutil.bitstream2string(tags.EndTags, lgth)),
     1141                            ('start/empty tags', bitutil.bitstream2string(tags.Tags, lgth)),
     1142                            ('delmask', bitutil.bitstream2string(delmask, lgth)),
     1143                            ('u16delmask', bitutil.bitstream2string(u16delmask, lgth)),
     1144                            ('errors', bitutil.bitstream2string(error, lgth+1))])
    8141145
    8151146def demo_u16delmask(u8data):
     
    8401171       
    8411172        bitutil.print_aligned_u8_byte_streams([('input data', u8data),
    842                                 ('u16delmask', bitutil.bitstream2string(delmask, u8len)),               
    843                                     ('errors', bitutil.bitstream2string(u8.error, u8len+1))])
     1173                                ('u16delmask', bitutil.bitstream2string(delmask, u8len)),               
     1174                                  ('errors', bitutil.bitstream2string(u8.error, u8len+1))])
    8441175        return
    8451176
Note: See TracChangeset for help on using the changeset viewer.