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

Function fxCaptureCode

xs/sources/xsre.c:2071–2101  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2069}
2070
2071void fxCaptureCode(txPatternParser* parser, void* it, txInteger direction, txInteger sequel)
2072{
2073 txCapture* self = it;
2074 txInteger* buffer = (txInteger*)(((txByte*)*(parser->code)) + self->step);
2075 if (direction == 1)
2076 *buffer++ = cxCaptureForwardStep;
2077 else
2078 *buffer++ = cxCaptureBackwardStep;
2079 *buffer++ = self->term->step;
2080 *buffer++ = self->captureIndex;
2081 fxPatternParserCheckStack(parser);
2082 (*self->term->dispatch.code)(parser, self->term, direction, self->completion);
2083 buffer = (txInteger*)(((txByte*)*(parser->code)) + self->completion);
2084 if (direction == 1)
2085 *buffer++ = cxCaptureForwardCompletion;
2086 else
2087 *buffer++ = cxCaptureBackwardCompletion;
2088 *buffer++ = sequel;
2089 *buffer++ = self->captureIndex;
2090 if (self->name) {
2091 *buffer++ = self->name->index;
2092 #ifndef mxCompile
2093 if (parser->the)
2094 (*parser->code)[5 + self->name->index] = fxNewNameC(parser->the, self->name->string);
2095 else
2096 #endif
2097 (*parser->code)[5 + self->name->index] = XS_NO_ID;
2098 }
2099 else
2100 *buffer++ = -1;
2101}
2102
2103void fxCaptureReferenceCode(txPatternParser* parser, void* it, txInteger direction, txInteger sequel)
2104{

Callers

nothing calls this directly

Calls 2

fxNewNameCFunction · 0.85

Tested by

no test coverage detected