source: icGREP/icgrep-devel/icgrep/pablo/pe_pabloe.h @ 4215

Last change on this file since 4215 was 4215, checked in by nmedfort, 5 years ago

Removed string based CC lookup in CC Compiler.

File size: 1019 bytes
Line 
1/*
2 *  Copyright (c) 2014 International Characters.
3 *  This software is licensed to the public under the Open Software License 3.0.
4 *  icgrep is a trademark of International Characters.
5 */
6
7#ifndef PE_PABLOE_H
8#define PE_PABLOE_H
9
10#include <llvm/Support/Casting.h>
11#include <list>
12
13using namespace llvm;
14
15namespace pablo {
16
17class PabloE
18{
19public:
20    enum class ClassTypeId : unsigned {
21        Advance
22        , All
23        , And
24        , Call
25        , CharClass
26        , MatchStar
27        , Not
28        , Or
29        , ScanThru
30        , Sel
31        , Var
32        , Xor
33        , Assign
34        , If
35        , While
36        , String
37    };
38    inline ClassTypeId getClassTypeId() const {
39        return mClassTypeId;
40    }
41    virtual ~PabloE() = 0;
42protected:
43    inline PabloE(const ClassTypeId id)
44    : mClassTypeId(id) {
45
46    }
47private:
48    const ClassTypeId mClassTypeId;
49};
50
51bool equals(const PabloE * expr1, const PabloE *expr2);
52
53typedef std::list<PabloE *> ExpressionList;
54
55}
56
57#endif // PE_PABLOE_H
58
59
60
Note: See TracBrowser for help on using the repository browser.