Ignore:
Timestamp:
Oct 4, 2014, 1:14:35 PM (5 years ago)
Author:
nmedfort
Message:

First stage of code generator revamp

File:
1 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/icgrep/pablo/codegenstate.h

    r4209 r4210  
    2828#include <vector>
    2929#include <string>
     30#include <pablo/symbol_generator.h>
    3031
    3132namespace pablo {
    3233
    3334struct CodeGenState {
     35
     36    CodeGenState(SymbolGenerator & symgen)
     37    : mSymbolGenerator(symgen)
     38    , mPredecessor(nullptr)
     39    {
     40
     41    }
     42
     43    CodeGenState(CodeGenState & cg)
     44    : mSymbolGenerator(cg.mSymbolGenerator)
     45    , mPredecessor(&cg)
     46    {
     47
     48    }
     49
    3450
    3551//    PabloE * createAll(const bool value);
     
    104120
    105121
     122    inline void push_back(PabloE * expr) {
     123        mExpressions.push_back(expr);
     124    }
    106125
     126    inline std::string symgen(std::string prefix) {
     127        return mSymbolGenerator.get(prefix);
     128    }
    107129
    108     std::list<PabloE *>  stmtsl;
    109     std::string          newsym;
     130    inline const std::list<PabloE *> & expressions() const {
     131        return mExpressions;
     132    }
     133
     134    std::string newsym;
     135private:
     136    std::list<PabloE *>     mExpressions;
     137    SymbolGenerator &       mSymbolGenerator;
     138    CodeGenState * const    mPredecessor;
    110139};
    111140
Note: See TracChangeset for help on using the changeset viewer.