parseString static method

List<XmlComment>? parseString(
  1. String string, {
  2. bool parseCharacterEntities = true,
  3. bool trimWhitespace = true,
  4. int start = 0,
  5. int? stop,
})
override

Parses a string and returns all found XML comments in a list.

Returns null if no comments were found.

Implementation

static List<XmlComment>? parseString(
  String string, {
  bool parseCharacterEntities = true,
  bool trimWhitespace = true,
  int start = 0,
  int? stop,
}) {
  assert(start >= 0);
  assert(stop == null || stop >= start);

  if (trimWhitespace) string = string.trimWhitespace();

  final matches = Delimiters.comment.allMatches(string).toList();
  if (matches.isEmpty) return null;

  final comments = <XmlComment>[];

  for (var i = start; i < matches.length; i++) {
    var comment = matches[i].namedGroup('value')!;
    if (parseCharacterEntities) {
      comment = HtmlCharacterEntities.decode(comment);
    }
    comments.add(XmlComment(comment));
    if (stop != null && i > stop) break;
  }

  return comments;
}