OLD | NEW |
---|---|
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library analyzer.src.generated.parser; | 5 library analyzer.src.generated.parser; |
6 | 6 |
7 import 'dart:collection'; | 7 import 'dart:collection'; |
8 import "dart:math" as math; | 8 import "dart:math" as math; |
9 | 9 |
10 import 'package:analyzer/src/generated/ast.dart'; | 10 import 'package:analyzer/src/generated/ast.dart'; |
(...skipping 3868 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3879 comment, index, 0x2A, 0x20, 0x20, 0x20, 0x20, 0x20)) { | 3879 comment, index, 0x2A, 0x20, 0x20, 0x20, 0x20, 0x20)) { |
3880 int end = index + 6; | 3880 int end = index + 6; |
3881 while (end < length && | 3881 while (end < length && |
3882 comment.codeUnitAt(end) != 0xD && | 3882 comment.codeUnitAt(end) != 0xD && |
3883 comment.codeUnitAt(end) != 0xA) { | 3883 comment.codeUnitAt(end) != 0xA) { |
3884 end = end + 1; | 3884 end = end + 1; |
3885 } | 3885 } |
3886 ranges.add(<int>[index, end]); | 3886 ranges.add(<int>[index, end]); |
3887 index = end; | 3887 index = end; |
3888 } | 3888 } |
3889 } else if (StringUtilities.startsWith5( | |
3890 comment, index, 0x20, 0x20, 0x20, 0x20, 0x20)) { | |
Brian Wilkerson
2015/12/16 21:23:33
That looks like five spaces to me. (If we only req
scheglov
2015/12/16 21:27:06
According to
https://www.dartlang.org/effective-da
Brian Wilkerson
2015/12/16 21:35:02
Given the example you showed me earlier, it's poss
scheglov
2015/12/16 22:28:18
Acknowledged.
| |
3891 int end = index + 5; | |
3892 while (end < length && | |
3893 comment.codeUnitAt(end) != 0xD && | |
3894 comment.codeUnitAt(end) != 0xA) { | |
3895 end = end + 1; | |
3896 } | |
3897 ranges.add(<int>[index, end]); | |
3898 index = end; | |
3889 } else if (index + 1 < length && | 3899 } else if (index + 1 < length && |
3890 currentChar == 0x5B && | 3900 currentChar == 0x5B && |
3891 comment.codeUnitAt(index + 1) == 0x3A) { | 3901 comment.codeUnitAt(index + 1) == 0x3A) { |
3892 int end = StringUtilities.indexOf2(comment, index + 2, 0x3A, 0x5D); | 3902 int end = StringUtilities.indexOf2(comment, index + 2, 0x3A, 0x5D); |
3893 if (end < 0) { | 3903 if (end < 0) { |
3894 end = length; | 3904 end = length; |
3895 } | 3905 } |
3896 ranges.add(<int>[index, end]); | 3906 ranges.add(<int>[index, end]); |
3897 index = end + 1; | 3907 index = end + 1; |
3898 } else { | 3908 } else { |
(...skipping 1137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
5036 * '[' 'new'? qualified ']' libraryReference? | 5046 * '[' 'new'? qualified ']' libraryReference? |
5037 * | 5047 * |
5038 * libraryReference ::= | 5048 * libraryReference ::= |
5039 * '(' stringLiteral ')' | 5049 * '(' stringLiteral ')' |
5040 */ | 5050 */ |
5041 List<CommentReference> _parseCommentReferences( | 5051 List<CommentReference> _parseCommentReferences( |
5042 List<DocumentationCommentToken> tokens) { | 5052 List<DocumentationCommentToken> tokens) { |
5043 List<CommentReference> references = new List<CommentReference>(); | 5053 List<CommentReference> references = new List<CommentReference>(); |
5044 for (DocumentationCommentToken token in tokens) { | 5054 for (DocumentationCommentToken token in tokens) { |
5045 String comment = token.lexeme; | 5055 String comment = token.lexeme; |
5046 comment = _removeGitHubCodeBlocks(comment); | 5056 comment = _removeCodeBlocksGitHub(comment); |
5047 int length = comment.length; | 5057 int length = comment.length; |
5048 List<List<int>> codeBlockRanges = _getCodeBlockRanges(comment); | 5058 List<List<int>> codeBlockRanges = _getCodeBlockRanges(comment); |
5049 int leftIndex = comment.indexOf('['); | 5059 int leftIndex = comment.indexOf('['); |
5050 while (leftIndex >= 0 && leftIndex + 1 < length) { | 5060 while (leftIndex >= 0 && leftIndex + 1 < length) { |
5051 List<int> range = _findRange(codeBlockRanges, leftIndex); | 5061 List<int> range = _findRange(codeBlockRanges, leftIndex); |
5052 if (range == null) { | 5062 if (range == null) { |
5053 int nameOffset = token.offset + leftIndex + 1; | 5063 int nameOffset = token.offset + leftIndex + 1; |
5054 int rightIndex = JavaString.indexOf(comment, ']', leftIndex); | 5064 int rightIndex = JavaString.indexOf(comment, ']', leftIndex); |
5055 if (rightIndex >= 0) { | 5065 if (rightIndex >= 0) { |
5056 int firstChar = comment.codeUnitAt(leftIndex + 1); | 5066 int firstChar = comment.codeUnitAt(leftIndex + 1); |
(...skipping 3169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
8226 * is the current token, `1` is the next token, etc. | 8236 * is the current token, `1` is the next token, etc. |
8227 */ | 8237 */ |
8228 Token _peekAt(int distance) { | 8238 Token _peekAt(int distance) { |
8229 Token token = _currentToken; | 8239 Token token = _currentToken; |
8230 for (int i = 0; i < distance; i++) { | 8240 for (int i = 0; i < distance; i++) { |
8231 token = token.next; | 8241 token = token.next; |
8232 } | 8242 } |
8233 return token; | 8243 return token; |
8234 } | 8244 } |
8235 | 8245 |
8236 String _removeGitHubCodeBlocks(String comment) { | 8246 String _removeCodeBlocksGitHub(String comment) { |
8237 int index = 0; | 8247 int index = 0; |
8238 while (true) { | 8248 while (true) { |
8239 int beginIndex = comment.indexOf('`', index); | 8249 int beginIndex = comment.indexOf('`', index); |
8240 if (beginIndex == -1) { | 8250 if (beginIndex == -1) { |
8241 break; | 8251 break; |
8242 } | 8252 } |
8243 int endIndex = comment.indexOf('`', beginIndex + 1); | 8253 int endIndex = comment.indexOf('`', beginIndex + 1); |
8244 if (endIndex == -1) { | 8254 if (endIndex == -1) { |
8245 break; | 8255 break; |
8246 } | 8256 } |
(...skipping 3062 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
11309 } | 11319 } |
11310 | 11320 |
11311 /** | 11321 /** |
11312 * Copy resolution data from the [fromNode] to the [toNode]. | 11322 * Copy resolution data from the [fromNode] to the [toNode]. |
11313 */ | 11323 */ |
11314 static void copyResolutionData(AstNode fromNode, AstNode toNode) { | 11324 static void copyResolutionData(AstNode fromNode, AstNode toNode) { |
11315 ResolutionCopier copier = new ResolutionCopier(); | 11325 ResolutionCopier copier = new ResolutionCopier(); |
11316 copier._isEqualNodes(fromNode, toNode); | 11326 copier._isEqualNodes(fromNode, toNode); |
11317 } | 11327 } |
11318 } | 11328 } |
OLD | NEW |