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

Last change on this file was 6130, checked in by xwa163, 9 days ago

Decompress u8NoFinalStream in lzparabix_grep

File size: 1.1 KB
Line 
1#ifndef RE_ANALYSIS_H
2#define RE_ANALYSIS_H
3
4#include <utility>
5namespace re { class RE; class Name; class CC;}
6
7namespace re {
8
9// Does the RE match the empty string, considering that ^ and $ each
10// do match an empty string.
11bool matchesEmptyString(const RE * re);
12
13//  Determine the set of all codepoints cp such that the given RE
14//  matches a string consisting of a single Unicode character whose
15//  codepoint value is cp.
16const CC * matchableCodepoints(const RE * re);
17
18bool isByteLength(const RE * re);
19
20bool isAllCcByteLength(const RE * re);
21   
22bool isUnicodeUnitLength(const RE * re);
23
24std::pair<int, int> getUnicodeUnitLengthRange(const RE * re);
25
26bool isFixedLength(const RE * re);
27
28int minMatchLength(const RE * re);
29
30bool unitBoundedRep(const RE * re);
31
32bool isTypeForLocal(const RE * re);
33   
34bool hasAssertion(const RE * re);
35   
36bool byteTestsWithinLimit(RE * re, unsigned limit);
37   
38bool hasTriCCwithinLimit(RE * r, unsigned byteCClimit, RE * & prefixRE, RE * & suffixRE);
39
40bool hasEndAnchor(const RE * r);
41   
42bool DefiniteLengthBackReferencesOnly(const RE * re);
43   
44void UndefinedNameError (const Name * n);
45}
46
47#endif // RE_ANALYSIS_H
Note: See TracBrowser for help on using the repository browser.