Ignore:
Timestamp:
Feb 18, 2017, 4:13:44 PM (2 years ago)
Author:
nmedfort
Message:

Continued work on parenthesis matching; addition of Pablo ScanTo? and AdvanceThenScanTo/Thru? statements. Bug fix for Pablo Compiler for escaping variables.

File:
1 edited

Legend:

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

    r5307 r5329  
    1515namespace pablo { class Add; }
    1616namespace pablo { class Advance; }
     17namespace pablo { class AdvanceThenScanThru; }
     18namespace pablo { class AdvanceThenScanTo; }
    1719namespace pablo { class And; }
    1820namespace pablo { class Assign; }
     
    3234namespace pablo { class PabloKernel; }
    3335namespace pablo { class ScanThru; }
     36namespace pablo { class ScanTo; }
    3437namespace pablo { class Sel; }
    3538namespace pablo { class String; }
     
    238241    ScanThru * createScanThru(PabloAST * from, PabloAST * thru, String * name);
    239242
     243    ScanTo * createScanTo(PabloAST * from, PabloAST * to) {
     244        return createScanTo(from, to, nullptr);
     245    }
     246
     247    ScanTo * createScanTo(PabloAST * from, PabloAST * to, const llvm::StringRef & prefix) {
     248        return createScanTo(from, to, makeName(prefix));
     249    }
     250
     251    ScanTo * createScanTo(PabloAST * from, PabloAST * to, String * name);
     252
     253    AdvanceThenScanThru * createAdvanceThenScanThru(PabloAST * from, PabloAST * thru) {
     254        return createAdvanceThenScanThru(from, thru, nullptr);
     255    }
     256
     257    AdvanceThenScanThru * createAdvanceThenScanThru(PabloAST * from, PabloAST * thru, const llvm::StringRef & prefix) {
     258        return createAdvanceThenScanThru(from, thru, makeName(prefix));
     259    }
     260
     261    AdvanceThenScanThru * createAdvanceThenScanThru(PabloAST * from, PabloAST * thru, String * name);
     262
     263    AdvanceThenScanTo * createAdvanceThenScanTo(PabloAST * from, PabloAST * to) {
     264        return createAdvanceThenScanTo(from, to, nullptr);
     265    }
     266
     267    AdvanceThenScanTo * createAdvanceThenScanTo(PabloAST * from, PabloAST * to, const llvm::StringRef & prefix) {
     268        return createAdvanceThenScanTo(from, to, makeName(prefix));
     269    }
     270
     271    AdvanceThenScanTo * createAdvanceThenScanTo(PabloAST * from, PabloAST * to, String * name);
     272
    240273    If * createIf(PabloAST * condition, PabloBlock * body);
    241274
    242275    While * createWhile(PabloAST * condition, PabloBlock * body);
    243276
    244 //    llvm::Type * getStreamTy(const unsigned FieldWidth = 1) {
    245 //        return mParent->getStreamTy(FieldWidth);
    246 //    }
    247    
    248277    llvm::Type * getStreamSetTy(const unsigned NumElements = 1, const unsigned FieldWidth = 1) {
    249278        return mParent->getStreamSetTy(NumElements, FieldWidth);
Note: See TracChangeset for help on using the changeset viewer.