Changeset 2002 for proto/parabix2


Ignore:
Timestamp:
Apr 8, 2012, 9:05:23 AM (7 years ago)
Author:
cameron
Message:

Fixes for DTD prescanning

File:
1 edited

Legend:

Unmodified
Added
Removed
  • proto/parabix2/DTD_prescan.py

    r1999 r2002  
    1 #
    2 #
    31#
    42# DTD Prescanning
     3#
     4# Robert D. Cameron - April 8, 2012
     5# Licensed under Open Software License 3.0
     6#
    57#
    68# DTD prescanning quickly works through the internal DTD
     
    1820        decl_marker = marker &~ lex.RBrak
    1921        while decl_marker:
    20                 marker = pablo.Advance(decl_marker)
    21                 if marker & lex.QMark:
    22                         prescan.start_interior |= marker
     22                marker1 = pablo.Advance(decl_marker)
     23                PI_marker = marker1 & lex.QMark
     24                CtDecl_marker = marker1 & lex.Exclam
     25                if PI_marker:
     26                        prescan.start_interior |= PI_marker
    2327                        marker = pablo.ScanTo(marker, PI_closer)
    2428                        prescan.end_interior |= marker
    25                 if marker & lex.Exclam:
    26                         marker = pablo.Advance(marker)
    27                         if marker & lex.Hyphen:
    28                                 prescan.start_interior |= marker
    29                                 marker = pablo.AdvancebyPos(marker,3)
     29                if CtDecl_marker:
     30                        marker2 = pablo.Advance(CtDecl_marker)
     31                        Ct_marker = marker2 & lex.Hyphen
     32                        Decl_marker = marker2 &~ lex.Hyphen
     33                        if Ct_marker:
     34                                prescan.start_interior |= Ct_marker
     35                                marker = pablo.AdvancebyPos(Ct_marker, 3)
    3036                                marker = pablo.ScanTo(marker, DoubleHyphen)
    3137                                prescan.end_interior |= marker
    32                         if marker &~ lex.Hyphen:
    33                                 marker = pablo.ScanTo(marker, decl_prescan)
     38                        if Decl_marker:
     39                                marker = pablo.ScanTo(Decl_marker, decl_prescan)
    3440                                quote_marker = marker &~ lex.RAngle
    3541                                while quote_marker:
Note: See TracChangeset for help on using the changeset viewer.