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

Function fxCharSetStringsSequence

xs/sources/xsre.c:1347–1373  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1345}
1346
1347void* fxCharSetStringsSequence(txPatternParser* parser, txString string)
1348{
1349 void* result = NULL;
1350 void* former = NULL;
1351 void* current = NULL;
1352 txSequence* formerBranch = NULL;
1353 txSequence* currentBranch = NULL;
1354 while (*string) {
1355 txInteger character;
1356 string = fxUTF8Decode(string, &character); // no surrogate
1357 current = fxCharSetCanonicalizeSingle(parser, fxCharSetSingle(parser, character));
1358 if (former) {
1359 currentBranch = fxPatternParserCreateTerm(parser, sizeof(txSequence), fxSequenceMeasure);
1360 currentBranch->left = former;
1361 currentBranch->right = current;
1362 if (formerBranch)
1363 formerBranch->right = (txTerm*)currentBranch;
1364 else
1365 result = currentBranch;
1366 formerBranch = currentBranch;
1367 }
1368 else
1369 result = current;
1370 former = current;
1371 }
1372 return result;
1373}
1374
1375void* fxCharSetWords(txPatternParser* parser)
1376{

Callers 1

Calls 4

fxUTF8DecodeFunction · 0.85
fxCharSetSingleFunction · 0.85

Tested by

no test coverage detected