MCPcopy Create free account
hub / github.com/Moddable-OpenSource/moddable / fxCharSetNot

Function fxCharSetNot

xs/sources/xsre.c:901–934  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

899}
900
901void* fxCharSetNot(txPatternParser* parser, txCharSet* set)
902{
903 if (set->strings == C_NULL) {
904 txCharSet* result = fxPatternParserCreateTerm(parser, sizeof(txCharSet) + ((set->characters[0] + 2) * sizeof(txInteger)), fxCharSetMeasure);
905 txInteger* current1 = set->characters + 1;
906 txInteger* limit1 = current1 + set->characters[0];
907 txInteger count0 = 0;
908 txInteger* current0 = result->characters + 1;
909 txInteger character = 0;
910 while (current1 < limit1) {
911 txInteger begin = *current1++;
912 txInteger end = *current1++;
913 if (character < begin) {
914 count0++;
915 *current0++ = character;
916 count0++;
917 *current0++ = begin;
918 }
919 character = end;
920 }
921 if (character < 0x7FFFFFFF) {
922 count0++;
923 *current0++ = character;
924 count0++;
925 *current0++ = 0x7FFFFFFF;
926 }
927 result->stringCount = 0;
928 result->strings = C_NULL;
929 result->characters[0] = count0;
930 return result;
931 }
932 fxPatternParserError(parser, gxErrors[mxInvalidPattern]);
933 return C_NULL;
934}
935
936void* fxCharSetOperand(txPatternParser* parser, txInteger* kind)
937{

Callers 3

fxCharSetExpressionFunction · 0.85
fxCharSetParseEscapeFunction · 0.85
fxCharSetParseListFunction · 0.85

Calls 2

fxPatternParserErrorFunction · 0.85

Tested by

no test coverage detected