Changeset 5911 for icGREP/icgrep-devel


Ignore:
Timestamp:
Mar 14, 2018, 12:58:39 PM (13 months ago)
Author:
nmedfort
Message:

Warning removal

Location:
icGREP/icgrep-devel/icgrep/re
Files:
2 edited

Legend:

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

    r5908 r5911  
    180180        return m;
    181181    }
    182     auto f = mExternalNameMap.find(nameString);
     182    const auto f = mExternalNameMap.find(nameString);
    183183    if (f != mExternalNameMap.end()) {
    184         if (name->getType() == Name::Type::ZeroWidth) return makeMarker(FinalPostPositionUnit, f->second);
    185         else return makeMarker(FinalMatchUnit, f->second);
     184        const auto pos = (name->getType() == Name::Type::ZeroWidth) ? FinalPostPositionUnit : FinalMatchUnit;
     185        return makeMarker(pos, f->second);
    186186    }
    187187    if (LLVM_LIKELY(name->getDefinition() != nullptr)) {
  • icGREP/icgrep-devel/icgrep/re/re_name_resolve.cpp

    r5897 r5911  
    167167   
    168168RE * AnchorResolution::resolve(RE * r) {
    169     if (!hasAnchor(r)) return r;
    170     if (const Alt * alt = dyn_cast<Alt>(r)) {
    171         std::vector<RE *> list;
    172         list.reserve(alt->size());
    173         for (RE * item : *alt) {
    174             item = resolve(item);
    175             list.push_back(item);
    176         }
    177         return makeAlt(list.begin(), list.end());
    178     } else if (const Seq * seq = dyn_cast<Seq>(r)) {
    179         std::vector<RE *> list;
    180         list.reserve(seq->size());
    181         for (RE * item : *seq) {
    182             item = resolve(item);
    183             list.push_back(item);
    184         }
    185         return makeSeq(list.begin(), list.end());
    186     } else if (Assertion * a = dyn_cast<Assertion>(r)) {
    187         return makeAssertion(resolve(a->getAsserted()), a->getKind(), a->getSense());
    188     } else if (Rep * rep = dyn_cast<Rep>(r)) {
    189         return makeRep(resolve(rep->getRE()), rep->getLB(), rep->getUB());
    190     } else if (Diff * diff = dyn_cast<Diff>(r)) {
    191         return makeDiff(resolve(diff->getLH()), resolve(diff->getRH()));
    192     } else if (Intersect * e = dyn_cast<Intersect>(r)) {
    193         return makeIntersect(resolve(e->getLH()), resolve(e->getRH()));
    194     } else if (isa<Start>(r)) {
    195         if (mIsNegated) return makeNegativeLookBehindAssertion(mAnchorRE);
    196         else return makeAlt({makeSOT(),
    197                              makeLookBehindAssertion(mAnchorRE)});
    198     } else if (isa<End>(r)) {
    199         if (mIsNegated) return makeNegativeLookAheadAssertion(mAnchorRE);
    200         else return makeAlt({makeEOT(),
    201                              makeLookAheadAssertion(mAnchorRE)});
    202     }
     169    if (hasAnchor(r)) {
     170        if (const Alt * alt = dyn_cast<Alt>(r)) {
     171            std::vector<RE *> list;
     172            list.reserve(alt->size());
     173            for (RE * item : *alt) {
     174                item = resolve(item);
     175                list.push_back(item);
     176            }
     177            return makeAlt(list.begin(), list.end());
     178        } else if (const Seq * seq = dyn_cast<Seq>(r)) {
     179            std::vector<RE *> list;
     180            list.reserve(seq->size());
     181            for (RE * item : *seq) {
     182                item = resolve(item);
     183                list.push_back(item);
     184            }
     185            return makeSeq(list.begin(), list.end());
     186        } else if (Assertion * a = dyn_cast<Assertion>(r)) {
     187            return makeAssertion(resolve(a->getAsserted()), a->getKind(), a->getSense());
     188        } else if (Rep * rep = dyn_cast<Rep>(r)) {
     189            return makeRep(resolve(rep->getRE()), rep->getLB(), rep->getUB());
     190        } else if (Diff * diff = dyn_cast<Diff>(r)) {
     191            return makeDiff(resolve(diff->getLH()), resolve(diff->getRH()));
     192        } else if (Intersect * e = dyn_cast<Intersect>(r)) {
     193            return makeIntersect(resolve(e->getLH()), resolve(e->getRH()));
     194        } else if (isa<Start>(r)) {
     195            if (mIsNegated) {
     196                return makeNegativeLookBehindAssertion(mAnchorRE);
     197            } else {
     198                return makeAlt({makeSOT(), makeLookBehindAssertion(mAnchorRE)});
     199            }
     200        } else if (isa<End>(r)) {
     201            if (mIsNegated) {
     202                return makeNegativeLookAheadAssertion(mAnchorRE);
     203            } else {
     204                return makeAlt({makeEOT(), makeLookAheadAssertion(mAnchorRE)});
     205            }
     206        }
     207    }
     208    return r;
    203209}
    204210
Note: See TracChangeset for help on using the changeset viewer.