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

Last change on this file since 5613 was 5509, checked in by cameron, 2 years ago

Bounded repetition optimizations and bug fix; test case

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