86void _strscInit(_Out_
strscan* _Nonnull sc, _In_opt_ strref s, flags_t flags);
104#define strscInit(sc, s, ...) _strscInit(sc, s, opt_flags(__VA_ARGS__))
126 return sc->pos >= sc->_len;
323void strscSpan(_In_
strscan* _Nonnull sc, _Out_ int32* _Nonnull off, _Out_ int32* _Nonnull len);
396bool _strscVal(_Inout_
strscan* _Nonnull sc,
stype st, _Out_ stgeneric* _Nonnull out);
419#define strscVal(sc, type, pval) _strscVal(sc, stCheckedPtrArg(type, pval))
bool strscTryChar(strscan *sc, char ch)
bool strscWS1(strscan *sc)
uint8 strscPeekChar(strscan *sc)
bool strscLit(strscan *sc, strref lit)
bool strscTry(strscan *sc, strref lit)
bool strscWS(strscan *sc)
bool strscPeek(strscan *sc, strref lit)
bool strscChar(strscan *sc, char ch)
bool strscBool(strscan *sc, bool *out)
bool strscUInt64(strscan *sc, uint64 *out, int base)
bool strscInt64(strscan *sc, int64 *out, int base)
bool strscUInt32(strscan *sc, uint32 *out, int base)
bool strscInt32(strscan *sc, int32 *out, int base)
bool strscFloat32(strscan *sc, float32 *out)
bool strscFloat64(strscan *sc, float64 *out)
bool strscSeek(strscan *sc, int32 pos)
bool strscFinish(strscan *sc)
int32 strscMark(strscan *sc)
void strscFail(strscan *sc)
STRSC_FLAGS
Flags controlling how a scanner matches.
void strscRewind(strscan *sc, int32 mark)
bool strscDone(strscan *sc)
@ STRSC_CaseInsensitive
Literals and character sets match without regard to case.
Core string types and fundamental operations.
int32 pos
Current byte offset.
int32 errpos
Offset where the scan first failed, or -1.
bool ok
False once anything has failed; every later call is a no-op.
flags_t flags
STRSC_FLAGS the scanner was created with.
strref s
String being scanned (borrowed)