source: icGREP/icgrep-devel/icgrep/kernels/cc_kernel.h @ 5589

Last change on this file since 5589 was 5576, checked in by lindanl, 2 years ago

minor fixes.

File size: 1.2 KB
RevLine 
[5140]1/*
2 *  Copyright (c) 2016 International Characters.
3 *  This software is licensed to the public under the Open Software License 3.0.
4 */
5#ifndef CC_KERNEL_H
6#define CC_KERNEL_H
7
[5436]8#include <pablo/pablo_kernel.h>
9
[5267]10namespace IDISA { class IDISA_Builder; }
11namespace re { class CC; }
[5140]12
13namespace kernel {
14
[5435]15class DirectCharacterClassKernelBuilder final : public BlockOrientedKernel {
16public:   
[5440]17    DirectCharacterClassKernelBuilder(const std::unique_ptr<KernelBuilder> & b, std::string ccSetName, std::vector<re::CC *> charClasses, unsigned codeUnitSize);
18    void generateDoBlockMethod(const std::unique_ptr<KernelBuilder> & iBuilder) override;
[5576]19    bool isCachable() const override { return true;}
[5140]20private:
[5435]21    const std::vector<re::CC *> mCharClasses;
22    const unsigned              mCodeUnitSize;
[5140]23   
24};
25
[5435]26class ParabixCharacterClassKernelBuilder final : public pablo::PabloKernel {
[5140]27public:
[5440]28    ParabixCharacterClassKernelBuilder(const std::unique_ptr<KernelBuilder> & b, std::string ccSetName, const std::vector<re::CC *> & charClasses, unsigned codeUnitSize);
[5435]29protected:
[5436]30    void generatePabloMethod() override;
[5435]31private:
32    const std::vector<re::CC *> mCharClasses;
[5140]33};
34
35}
36#endif
Note: See TracBrowser for help on using the repository browser.