Ignore:
Timestamp:
Aug 7, 2015, 10:04:46 AM (4 years ago)
Author:
cameron
Message:

Mod64Advance, Mod64MatchStar, Mod64ScanThru ops; -mod64-approximate command-line option

File:
1 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/icgrep/re/re_compiler.cpp

    r4716 r4717  
    500500    if (isByteLength(repeated)  && !DisableMatchStar) {
    501501        PabloAST * cc = markerVar(compile(repeated, pb)); 
    502         return makeMarker(InitialPostPositionByte, pb.createMatchStar(base, cc, "unbounded"));
     502        PabloAST * mstar = SetMod64Approximation ? pb.createMod64MatchStar(base, cc) : pb.createMatchStar(base, cc, "unbounded");
     503        return makeMarker(InitialPostPositionByte, mstar);
    503504    }
    504505    else if (isUnicodeUnitLength(repeated) && !DisableMatchStar && !DisableUnicodeMatchStar) {
    505506        PabloAST * cc = markerVar(compile(repeated, pb));
    506         PabloAST * mstar = pb.createMatchStar(base, pb.createOr(mNonFinal, cc));
    507         if (SetMod64Approximation) {
    508             if (isa<MatchStar>(mstar)) {
    509                 dyn_cast<MatchStar>(mstar)->setMod64();
    510             }
    511         }
     507        PabloAST * mstar = SetMod64Approximation ? pb.createMod64MatchStar(base, pb.createOr(mNonFinal, cc)) : pb.createMatchStar(base, pb.createOr(mNonFinal, cc));
    512508        return makeMarker(FinalPostPositionByte, pb.createAnd(mstar, mFinal, "unbounded"));
    513509    }
Note: See TracChangeset for help on using the changeset viewer.