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 m0 = match.group(0)!;
  var runLength = m0.length;
  var matchStart = match.start;
  var matchEnd = match.end;
  var text = Text(m0);
  if (!requiresDelimiterRun) {
    parser.pushDelimiter(SimpleDelimiter(
        node: text,
        length: runLength,
        char: m0.codeUnitAt(0),
        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;
  }
}