Linter Demo Errors: 2Warnings: 2File: /home/fstrocco/Dart/dart/benchmark/markdown/lib/src/document.dart library markdown.document; import 'ast.dart'; import 'block_parser.dart'; import 'inline_parser.dart'; class Document { final Map refLinks; List inlineSyntaxes; Resolver linkResolver; Resolver imageLinkResolver; Document({this.inlineSyntaxes, this.linkResolver, this.imageLinkResolver}) : refLinks = {}; parseRefLinks(List lines) { final indent = r'^[ ]{0,3}'; final id = r'\[([^\]]+)\]'; final quote = r'"[^"]+"'; final apos = r"'[^']+'"; final paren = r"\([^)]+\)"; final pattern = new RegExp('$indent$id:\\s+(\\S+)\\s*($quote|$apos|$paren|)\\s*\$'); for (int i = 0; i < lines.length; i++) { final match = pattern.firstMatch(lines[i]); if (match != null) { var id = match[1]; var url = match[2]; var title = match[3]; if (title == '') { title = null; } else { title = title.substring(1, title.length - 1); } id = id.toLowerCase(); refLinks[id] = new Link(id, url, title); lines[i] = ''; } } } List parseLines(List lines) { final parser = new BlockParser(lines, this); final blocks = []; while (!parser.isDone) { for (final syntax in BlockSyntax.syntaxes) { if (syntax.canParse(parser)) { final block = syntax.parse(parser); if (block != null) blocks.add(block); break; } } } return blocks; } List parseInline(String text) => new InlineParser(text, this).parse(); } class Link { final String id; final String url; final String title; Link(this.id, this.url, this.title); }