onMatch method
Processes match
, adding nodes to parser
and possibly advancing
parser
.
Returns whether the caller should advance parser
by match[0].length
.
Implementation
@override
bool onMatch(InlineParser parser, Match match) {
var runLength = match.group(0)!.length;
var matchStart = parser.pos;
var matchEnd = parser.pos + runLength;
var text = Text(parser.source.substring(matchStart, matchEnd));
if (!requiresDelimiterRun) {
parser._pushDelimiter(SimpleDelimiter(
node: text,
length: runLength,
char: parser.source.codeUnitAt(matchStart),
canOpen: true,
canClose: false,
syntax: this,
endPos: matchEnd));
parser.addNode(text);
return true;
}
var delimiterRun = DelimiterRun.tryParse(parser, matchStart, matchEnd,
syntax: this, node: text, allowIntraWord: allowIntraWord);
if (delimiterRun != null) {
parser._pushDelimiter(delimiterRun);
parser.addNode(text);
return true;
} else {
parser.advanceBy(runLength);
return false;
}
}