Changeset 4336 for icGREP/icgrep-devel


Ignore:
Timestamp:
Dec 12, 2014, 7:47:08 AM (5 years ago)
Author:
cameron
Message:

Although the REs associated with some Names may be CCs, other definitions are possible

Location:
icGREP/icgrep-devel/icgrep
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/icgrep/cc/cc_compiler.cpp

    r4335 r4336  
    7878    if (var == nullptr) {
    7979        if (name->getType() != Name::Type::UnicodeCategory) {
    80             RE * cc = name->getCC();
    81             assert (cc);
     80            RE * def = name->getDefinition();
     81            assert (def);
    8282            PabloAST * value = nullptr;
    83             if (isa<CC>(cc)) {
    84                 value = charset_expr(cast<CC>(cc));
    85             }
    86             else if (isa<Seq>(cc)) {
    87                 value = compile_re(cast<Seq>(cc));
    88             }
    89             else if (isa<Alt>(cc)) {
    90                 value = compile_re(cast<Alt>(cc));
     83            if (isa<CC>(def)) {
     84                value = charset_expr(cast<CC>(def));
     85            }
     86            else if (isa<Seq>(def)) {
     87                value = compile_re(cast<Seq>(def));
     88            }
     89            else if (isa<Alt>(def)) {
     90                value = compile_re(cast<Alt>(def));
    9191            }
    9292            if (value == nullptr) {
    93                 throw std::runtime_error("Unexpected CC node given to CC_Compiler: " + Printer_RE::PrintRE(name) + " : " + Printer_RE::PrintRE(cc));
     93                throw std::runtime_error("Unexpected CC node given to CC_Compiler: " + Printer_RE::PrintRE(name) + " : " + Printer_RE::PrintRE(def));
    9494            }
    9595            Assign * assign = mCG.createAssign(name->getName(), value);
    96             if (mAnnotateVariableConstraints && isa<CC>(cc)) {
    97                 mVariableVector.push_back(std::make_pair(cast<CC>(cc), assign));
     96            if (mAnnotateVariableConstraints && isa<CC>(def)) {
     97                mVariableVector.push_back(std::make_pair(cast<CC>(def), assign));
    9898            }
    9999            var = mCG.createVar(assign);
  • icGREP/icgrep-devel/icgrep/cc/cc_namemap.cpp

    r4334 r4336  
    3636        e->setLH(process(e->getLH()));
    3737    }
    38     else if (Name * name = dyn_cast<Name>(re)) {
    39         RE * cc = name->getCC();
    40         if (cc && !isa<CC>(cc)) {
    41             name->setCC(process(cc));
     38    else if (Name * nameNode = dyn_cast<Name>(re)) {
     39        RE * def = nameNode->getDefinition();
     40        if (def && !isa<CC>(def)) {
     41            nameNode->setDefinition(process(def));
    4242        }
    43         std::string classname = name->getName();
     43        std::string classname = nameNode->getName();
    4444        auto f = mNameMap.find(classname);
    4545        if (f == mNameMap.end()) {
    46             return insert(std::move(classname), name);
     46            // Insert into the name map.
     47            return insert(std::move(classname), nameNode);
    4748        }
    4849        return f->second;
     
    6263    std::string retval = "";
    6364    for (Name * name : mNameVector) {
    64         retval.append("mNameMap[" +  name->getName() + "] = " + Printer_RE::PrintRE(name->getCC()) + "]\n");
     65        retval.append("mNameMap[" +  name->getName() + "] = " + Printer_RE::PrintRE(name->getDefinition()) + "]\n");
    6566    }
    6667    return retval;
  • icGREP/icgrep-devel/icgrep/re/re_name.h

    r4335 r4336  
    3131    const std::string & getName() const;
    3232    Type getType() const;
    33     RE *getCC() const;
     33    RE *getDefinition() const;
    3434    pablo::Var * getCompiled() const {
    3535        return mCompiled;
     
    3838        mCompiled = var;
    3939    }
    40     void setCC(RE *cc);
     40    void setDefinition(RE * def);
    4141    virtual ~Name() {}
    4242protected:
     
    4646        return mAllocator.allocate(size);
    4747    }
    48     Name(const std::string && name, const Type type, RE * cc)
     48    Name(const std::string && name, const Type type, RE * defn)
    4949    : RE(ClassTypeId::Name)
    5050    , mName(std::move(name))
    5151    , mType(type)
    52     , mCC(cc)
     52    , mDefiningRE(defn)
    5353    , mCompiled(nullptr)
    5454    {
     
    5959    const std::string   mName;
    6060    const Type          mType;
    61     RE *                mCC;
     61    RE *                mDefiningRE;
    6262    pablo::Var *        mCompiled;
    6363};
     
    7171}
    7272
    73 inline RE * Name::getCC() const {
    74     return mCC;
     73inline RE * Name::getDefinition() const {
     74    return mDefiningRE;
    7575}
    7676
    77 inline void Name::setCC(RE * cc) {
    78     mCC = cc;
     77inline void Name::setDefinition(RE * d) {
     78    mDefiningRE = d;
    7979}
    8080
  • icGREP/icgrep-devel/icgrep/utf8_encoder.cpp

    r4334 r4336  
    2121RE * UTF8_Encoder::toUTF8(CC_NameMap & nameMap, RE * ast) {
    2222    for (Name * name : nameMap) {
    23         if (const CC * cc = dyn_cast_or_null<CC>(name->getCC())) {
     23        if (const CC * cc = dyn_cast_or_null<CC>(name->getDefinition())) {
    2424            if (cc->size() == 1) {
    25                 name->setCC(rangeToUTF8(cc->front()));
     25                name->setDefinition(rangeToUTF8(cc->front()));
    2626            }
    2727            else if (cc->size() > 1) {
     
    3030                    alt.push_back(rangeToUTF8(item));
    3131                }
    32                 name->setCC(makeAlt(alt.begin(), alt.end()));
     32                name->setDefinition(makeAlt(alt.begin(), alt.end()));
    3333            }
    3434        }
Note: See TracChangeset for help on using the changeset viewer.