class jnc.Regex
class Regex {
// fields
jnc.RegexKind readonly m_regexKind;
jnc.RegexFlags readonly m_flags;
size_t readonly m_captureCount;
size_t readonly m_switchCaseCount;
// properties
string_t const property m_pattern;
string_t const indexed property m_switchCasePattern(uint_t id);
size_t const indexed property m_switchCaseCaptureCount(uint_t id);
// construction
construct();
construct(string_t pattern);
construct(
jnc.RegexFlags flags,
string_t pattern
);
destruct();
// methods
void clear();
bool errorcode compile(
string_t source,
jnc.RegexFlags flags = 0
);
void createSwitch(jnc.RegexFlags flags = 0);
uint_t errorcode compileSwitchCase(string_t source);
bool errorcode finalizeSwitch();
size_t errorcode load(
void const* p,
size_t size
);
size_t errorcode save(std.Buffer* buffer);
std.Buffer* errorcode save();
jnc.RegexExecResult exec(
jnc.RegexState* state,
string_t chunk
) const;
jnc.RegexMatch const* exec(
string_t text,
jnc.RegexExecFlags flags = 0
) const;
jnc.RegexExecResult execEof(
jnc.RegexState* state,
string_t lastChunk,
int eofChar = RegexEofChar
) const;
jnc.RegexExecResult execEof(
jnc.RegexState* state,
int eofChar = RegexEofChar
) const;
size_t errorcode captureSubmatches(
uint64_t matchOffset,
string_t matchText,
jnc.RegexCapture* submatchArray,
size_t count
) const;
size_t errorcode captureSubmatches(
jnc.RegexCapture const* match,
jnc.RegexCapture* submatchArray,
size_t count
) const;
size_t errorcode captureSwitchCaseSubmatches(
uint_t switchCaseId,
uint64_t matchOffset,
string_t matchText,
jnc.RegexCapture* submatchArray,
size_t count
) const;
size_t errorcode captureSwitchCaseSubmatches(
uint_t switchCaseId,
jnc.RegexCapture const* match,
jnc.RegexCapture* submatchArray,
size_t count
) const;
};