Ignore:
Timestamp:
Jul 6, 2015, 9:35:48 AM (4 years ago)
Author:
nmedfort
Message:

Next nodes for While statements must be declared similar to how Defined Vars are for Ifs. (Temporarily breaks multiplexing correctness.)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/icgrep/pablo/builder.cpp

    r4622 r4641  
    66struct __##NAME { \
    77    inline PabloAST * operator()(PabloAST * arg) { \
    8         return mPb.NAME(arg); \
     8        return mPb->NAME(arg); \
    99    } \
    10     inline __##NAME(PabloBlock & pb) : mPb(pb) {} \
     10    inline __##NAME(PabloBlock * pb) : mPb(pb) {} \
    1111private: \
    12     PabloBlock & mPb; \
     12    PabloBlock * mPb; \
    1313}; \
    1414__##NAME functor(mPb); \
     
    1818struct __##NAME { \
    1919    inline PabloAST * operator()(PabloAST * arg, const std::string name) { \
    20         return mPb.NAME(arg, name); \
     20        return mPb->NAME(arg, name); \
    2121    } \
    22     inline __##NAME(PabloBlock & pb) : mPb(pb) {} \
     22    inline __##NAME(PabloBlock * pb) : mPb(pb) {} \
    2323private: \
    24     PabloBlock & mPb; \
     24    PabloBlock * mPb; \
    2525}; \
    2626__##NAME functor(mPb); \
     
    3030struct __##NAME { \
    3131    inline PabloAST * operator()(PabloAST * arg1, PabloAST * arg2) { \
    32         return mPb.NAME(arg1, arg2); \
     32        return mPb->NAME(arg1, arg2); \
    3333    } \
    34     inline __##NAME(PabloBlock & pb) : mPb(pb) {} \
     34    inline __##NAME(PabloBlock * pb) : mPb(pb) {} \
    3535private: \
    36     PabloBlock & mPb; \
     36    PabloBlock * mPb; \
    3737}; \
    3838__##NAME functor(mPb); \
     
    4242struct __##NAME { \
    4343    inline PabloAST * operator()(PabloAST * arg1, PabloAST * arg2, const std::string name) { \
    44         return mPb.NAME(arg1, arg2, name); \
     44        return mPb->NAME(arg1, arg2, name); \
    4545    } \
    46     inline __##NAME(PabloBlock & pb) : mPb(pb) {} \
     46    inline __##NAME(PabloBlock * pb) : mPb(pb) {} \
    4747private: \
    48     PabloBlock & mPb; \
     48    PabloBlock * mPb; \
    4949}; \
    5050__##NAME functor(mPb); \
     
    5454struct __##NAME { \
    5555    inline PabloAST * operator()(PabloAST * arg1, PabloAST * arg2, PabloAST * arg3) { \
    56         return mPb.NAME(arg1, arg2, arg3); \
     56        return mPb->NAME(arg1, arg2, arg3); \
    5757    } \
    58     inline __##NAME(PabloBlock & pb) : mPb(pb) {} \
     58    inline __##NAME(PabloBlock * pb) : mPb(pb) {} \
    5959private: \
    60     PabloBlock & mPb; \
     60    PabloBlock * mPb; \
    6161}; \
    6262__##NAME functor(mPb); \
     
    6666struct __##NAME { \
    6767    inline PabloAST * operator()(PabloAST * arg1, PabloAST * arg2, PabloAST * arg3, const std::string name) { \
    68         return mPb.NAME(arg1, arg2, arg3, name); \
     68        return mPb->NAME(arg1, arg2, arg3, name); \
    6969    } \
    70     inline __##NAME(PabloBlock & pb) : mPb(pb) {} \
     70    inline __##NAME(PabloBlock * pb) : mPb(pb) {} \
    7171private: \
    72     PabloBlock & mPb; \
     72    PabloBlock * mPb; \
    7373}; \
    7474__##NAME functor(mPb); \
Note: See TracChangeset for help on using the changeset viewer.