Ignore:
Timestamp:
Oct 17, 2015, 4:25:05 PM (4 years ago)
Author:
nmedfort
Message:

Update for grapheme cluster mode and boundaries.

File:
1 edited

Legend:

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

    r4833 r4841  
    6363
    6464    MarkerType compile(RE * re, pablo::PabloBuilder & cg);
    65     MarkerType AdvanceMarker(const MarkerType m, const MarkerPosition newpos, pablo::PabloBuilder & pb);
    66    
    67     void AlignMarkers(MarkerType & m1, MarkerType & m2, pablo::PabloBuilder & pb);
    68    
     65
    6966    MarkerType process(RE * re, MarkerType marker, pablo::PabloBuilder & pb);
    7067    MarkerType compileName(Name * name, MarkerType marker, pablo::PabloBuilder & pb);
     
    7774    MarkerType compileIntersect(Intersect * x, MarkerType marker, pablo::PabloBuilder & cg);
    7875    pablo::PabloAST * consecutive_matches(pablo::PabloAST * repeated,  int length, int repeat_count, pablo::PabloBuilder & pb);
    79     pablo::PabloAST * reachable(pablo::PabloAST * repeated,  int repeated_lgth, int repeat_count, pablo::PabloBuilder & pb);
     76    pablo::PabloAST * reachable(pablo::PabloAST * repeated,  int length, int repeat_count, pablo::PabloBuilder & pb);
    8077    static bool isFixedLength(RE * regexp);
    8178    MarkerType processLowerBound(RE * repeated,  int lb, MarkerType marker, pablo::PabloBuilder & pb);
     
    8481    RE * resolveUnicodeProperties(RE * re);
    8582
    86     Name * generateGraphemeClusterExtenderRule();
     83    Name * generateGraphemeClusterBoundaryRule();
    8784    MarkerType compileName(Name * name, pablo::PabloBuilder & pb);
    8885    MarkerType compileAny(const MarkerType m, pablo::PabloBuilder & pb);
    8986    MarkerType compileStart(const MarkerType marker, pablo::PabloBuilder & pb);
    9087    MarkerType compileEnd(const MarkerType marker, pablo::PabloBuilder & pb);
    91     MarkerType compileGraphemeBoundary(GraphemeBoundary *gb, const MarkerType marker, pablo::PabloBuilder & pb);
     88    MarkerType compileGraphemeBoundary(GraphemeBoundary *gb, MarkerType marker, pablo::PabloBuilder & pb);
     89
     90    MarkerType AdvanceMarker(MarkerType marker, const MarkerPosition newpos, pablo::PabloBuilder & pb);
     91    void AlignMarkers(MarkerType & m1, MarkerType & m2, pablo::PabloBuilder & pb);
    9292
    9393private:
     
    9898    pablo::PabloAST *                               mUnicodeLineBreak;
    9999    pablo::PabloAST *                               mAny;
    100     pablo::PabloAST *                               mGraphemeExtenderRule;
     100    pablo::PabloAST *                               mGraphemeBoundaryRule;
    101101    pablo::PabloAST *                               mInitial;
    102102    pablo::Assign *                                 mNonFinal;   
     
    106106    std::vector<pablo::Next *>                      mLoopVariants; // <- rethink name
    107107    pablo::PabloBuilder                             mPB;
    108     std::unordered_map<Name *, MarkerType>          mCompiledName;   
     108    std::unordered_map<Name *, MarkerType>          mCompiledName;
    109109    pablo::PabloFunction &                          mFunction;
    110110};
Note: See TracChangeset for help on using the changeset viewer.