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

Function fxCaptureNameParse

xs/sources/xsre.c:1444–1472  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1442}
1443
1444void fxCaptureNameParse(txPatternParser* parser, txInteger* length)
1445{
1446 txString p = parser->error;
1447 txString q = p + sizeof(parser->error) - 1;
1448 if (parser->character == '\\')
1449 fxCaptureNameEscape(parser);
1450 if (fxIsIdentifierFirst(parser->character)) {
1451 p = mxStringByteEncode(p, parser->character);
1452 fxPatternParserNext(parser);
1453 }
1454 else
1455 fxPatternParserError(parser, gxErrors[mxInvalidName]);
1456 while (parser->character != '>') {
1457 if (parser->character == '\\')
1458 fxCaptureNameEscape(parser);
1459 if (fxIsIdentifierNext(parser->character)) {
1460 if (mxStringByteLength(parser->character) > (q - p))
1461 fxPatternParserError(parser, gxErrors[mxNameOverflow]);
1462 p = mxStringByteEncode(p, parser->character);
1463 fxPatternParserNext(parser);
1464 }
1465 else
1466 fxPatternParserError(parser, gxErrors[mxInvalidName]);
1467 }
1468 parser->flags &= ~XS_REGEXP_NAME;
1469 fxPatternParserNext(parser);
1470 *p = 0;
1471 *length = mxPtrDiff(p - parser->error);
1472}
1473
1474void fxCaptureNameParticipate(txPatternParser* parser, txCapture* capture)
1475{

Callers 1

fxSequenceParseFunction · 0.85

Calls 5

fxCaptureNameEscapeFunction · 0.85
fxIsIdentifierFirstFunction · 0.85
fxPatternParserNextFunction · 0.85
fxPatternParserErrorFunction · 0.85
fxIsIdentifierNextFunction · 0.85

Tested by

no test coverage detected