source: icGREP/icgrep-devel/icgrep/re/re_nullable.h

Last change on this file was 5732, checked in by cameron, 9 days ago

More changes in preparation for LLVM 3.9, 4.0

File size: 733 bytes
Line 
1#ifndef RE_NULLABLE_H
2#define RE_NULLABLE_H
3
4#include <llvm/Support/Compiler.h>
5
6namespace re { class RE; }
7namespace re { class Vector; }
8
9namespace re {
10
11class RE_Nullable {
12public:
13    static RE * removeNullablePrefix(RE * re);
14    static RE * removeNullableSuffix(RE * re);
15    static RE * removeNullableAssertion(RE * re);
16    static RE * removeNullableAfterAssertion(RE * re);
17    static bool isNullable(const RE * re);
18    static bool hasNullablePrefix(const RE * re);
19    static bool hasNullableSuffix(const RE * re);
20private:
21    static bool isNullableAfterAssertion(const RE * re);
22    static RE * removeNullableAfterAssertion_helper(RE * re);
23    static bool isNullable(const Vector * vec);
24};
25
26}
27
28#endif // RE_NULLABLE_H
Note: See TracBrowser for help on using the repository browser.