onMatch method

  1. @override
bool onMatch(
  1. InlineParser parser,
  2. Match match
)
override

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;
  }
}