Ignore:
Timestamp:
Dec 2, 2010, 7:04:17 PM (9 years ago)
Author:
ksherdy
Message:

Add fix to prototype and compilable.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • proto/JSON/json_prototype.py

    r766 r768  
    2626import sys
    2727
    28 debug = False
     28debug = False#True
    2929filename = "json_prototype.py"
    3030
     
    149149        """
    150150        global lgth
    151        
    152         AtomSpans = (Lex.True | Lex.False | Lex.Null | Lex.Number | StringSpans)
    153         AtomStarts = AtomSpans &~ bitutil.Advance(AtomSpans)
    154151               
    155         StringStarts = AtomStarts & (Lex.DQuote)       
    156         NumberStarts = AtomStarts & (Lex.Minus|Lex.Digit0_9)
    157         TrueStarts = AtomStarts & (Lex.t)
    158         FalseStarts = AtomStarts & (Lex.f)
    159         NullStarts = AtomStarts & (Lex.n)
     152        StringStarts = StringSpans &~ bitutil.Advance(StringSpans)     
     153
     154        UnmaskedAtomSpans = (Lex.True | Lex.False | Lex.Null | Lex.Number) &~ StringSpans
     155        UnmaskedAtomStarts = UnmaskedAtomSpans &~ bitutil.Advance(UnmaskedAtomSpans)
     156
     157        NumberStarts = UnmaskedAtomStarts & (Lex.Minus|Lex.Digit0_9)
     158        TrueStarts = UnmaskedAtomStarts & (Lex.t)
     159        FalseStarts = UnmaskedAtomStarts & (Lex.f)
     160        NullStarts = UnmaskedAtomStarts & (Lex.n)
    160161
    161162        if debug:
     
    210211       
    211212        """     
    212         Scope1 = bitutil.Advance(TrueStarts)
    213         Scope2 = bitutil.Advance(Scope1)
    214         Scope3 = bitutil.Advance(Scope2)
    215        
    216         TrueErrors = Scope1 &~ Lex.r
    217         TrueErrors |= Scope2 &~ Lex.u
    218         TrueErrors |= Scope3 &~ Lex.e
    219        
    220         Follows = bitutil.Advance(Scope3)
    221         TrueSpans = Follows - TrueStarts
     213        TrueScope1 = bitutil.Advance(TrueStarts)
     214        TrueScope2 = bitutil.Advance(TrueScope1)
     215        TrueScope3 = bitutil.Advance(TrueScope2)
     216       
     217        TrueErrors = TrueScope1 &~ Lex.r
     218        TrueErrors |= TrueScope2 &~ Lex.u
     219        TrueErrors |= TrueScope3 &~ Lex.e
     220       
     221        TrueFollows = bitutil.Advance(TrueScope3)
     222        TrueSpans = TrueFollows - TrueStarts
    222223
    223224        return (TrueErrors, TrueSpans)
     
    230231       
    231232        """     
    232         Scope1 = bitutil.Advance(FalseStarts)
    233         Scope2 = bitutil.Advance(Scope1)
    234         Scope3 = bitutil.Advance(Scope2)
    235         Scope4 = bitutil.Advance(Scope3)
    236        
    237         FalseErrors = Scope1 &~ Lex.a
    238         FalseErrors |= Scope2 &~ Lex.l
    239         FalseErrors |= Scope3 &~ Lex.s
    240         FalseErrors |= Scope4 &~ Lex.e
    241 
    242         Follows = bitutil.Advance(Scope4)
    243         FalseSpans = Follows - FalseStarts
     233        FalseScope1 = bitutil.Advance(FalseStarts)
     234        FalseScope2 = bitutil.Advance(FalseScope1)
     235        FalseScope3 = bitutil.Advance(FalseScope2)
     236        FalseScope4 = bitutil.Advance(FalseScope3)
     237       
     238        FalseErrors = FalseScope1 &~ Lex.a
     239        FalseErrors |= FalseScope2 &~ Lex.l
     240        FalseErrors |= FalseScope3 &~ Lex.s
     241        FalseErrors |= FalseScope4 &~ Lex.e
     242
     243        FalseFollows = bitutil.Advance(FalseScope4)
     244        FalseSpans = FalseFollows - FalseStarts
    244245       
    245246        return (FalseErrors, FalseSpans)
     
    252253       
    253254        """
    254         Scope1 = bitutil.Advance(NullStarts)
    255         Scope2 = bitutil.Advance(Scope1)
    256         Scope3 = bitutil.Advance(Scope2)
    257        
    258         NullErrors = Scope1 &~ Lex.u
    259         NullErrors |= Scope2 &~ Lex.l
    260         NullErrors |= Scope3 &~ Lex.l
    261        
    262         Follows = bitutil.Advance(Scope3)
    263         NullSpans = Follows - NullStarts
     255        NullScope1 = bitutil.Advance(NullStarts)
     256        NullScope2 = bitutil.Advance(NullScope1)
     257        NullScope3 = bitutil.Advance(NullScope2)
     258       
     259        NullErrors = NullScope1 &~ Lex.u
     260        NullErrors |= NullScope2 &~ Lex.l
     261        NullErrors |= NullScope3 &~ Lex.l
     262       
     263        NullFollows = bitutil.Advance(NullScope3)
     264        NullSpans = NullFollows - NullStarts
    264265
    265266        return (NullErrors, NullSpans)
     
    286287        global lgth
    287288       
    288         M0 = NumberStarts                                               # Initialize marker stream     
     289        M0 = NumberStarts                                       # Initialize marker stream     
    289290       
    290291        M1 = bitutil.ScanThru(M0, Lex.Minus & M0)               # ? Optional character class [-]
     
    309310       
    310311        M7a = M7 &~(Lex.Ee)                                     # Split
    311         M7b = M7 &(Lex.Ee)
     312        M7b = M7 & (Lex.Ee)
    312313        M8b = bitutil.Advance(M7b)
    313314        M9b = bitutil.ScanThru(M8b, Lex.PlusMinus & M8b)        # ? Optional character class [+-]               
     
    316317        M10b = bitutil.ScanThru(M9b,Lex.Digit0_9)
    317318
    318         M11 = M7a | M10b                                       
     319        M11 = E1 | E5b | E9b | M7a | M10b                       # Record final marker positions,
     320                                                                # At Advance(M11) this positions is either (1) a known error position or (2) an undetermined position to be checked
    319321       
    320322        NumberErrors = E1 | E5b | E9b
     
    364366        Ee          : _______________________1____1______________________1_______________
    365367        PlusMinus   : _1_11_1_____1___1___1____1_______1_______1______1_____1____________
    366         NumberSpans : _11_11_11___11__1111_1111_1111___11111111__11111__1111__1__________
     368        NumberSpans : _1_1__1__1__11__111_111__111__1__11111111__11111__1111__1__________
    367369        NumberErrors: __1_1__1___________1___1____1_______________________________________
    368370        EOF_Mask    : 1111111111111111111111111111111111111111111111111111111111111111111_
Note: See TracChangeset for help on using the changeset viewer.