| Index: pkg/front_end/lib/src/fasta/scanner/array_based_scanner.dart
|
| diff --git a/pkg/front_end/lib/src/fasta/scanner/array_based_scanner.dart b/pkg/front_end/lib/src/fasta/scanner/array_based_scanner.dart
|
| index dba3246a6672aefeb3a34008c56fbe292eb49e4e..48933b1222debe45b4ec49b3fffedd0a87c2e492 100644
|
| --- a/pkg/front_end/lib/src/fasta/scanner/array_based_scanner.dart
|
| +++ b/pkg/front_end/lib/src/fasta/scanner/array_based_scanner.dart
|
| @@ -11,7 +11,14 @@ import 'keyword.dart' show Keyword;
|
| import 'precedence.dart' show EOF_INFO, PrecedenceInfo;
|
|
|
| import 'token.dart'
|
| - show BeginGroupToken, KeywordToken, StringToken, SymbolToken, Token;
|
| + show
|
| + BeginGroupToken,
|
| + CommentToken,
|
| + DartDocToken,
|
| + KeywordToken,
|
| + StringToken,
|
| + SymbolToken,
|
| + Token;
|
|
|
| import 'token_constants.dart'
|
| show
|
| @@ -47,7 +54,7 @@ abstract class ArrayBasedScanner extends AbstractScanner {
|
| tail.next.previousToken = tail;
|
| tail = tail.next;
|
| if (comments != null) {
|
| - tail.precedingComments = comments;
|
| + tail.precedingCommentTokens = comments;
|
| comments = null;
|
| commentsTail = null;
|
| }
|
| @@ -227,7 +234,17 @@ abstract class ArrayBasedScanner extends AbstractScanner {
|
|
|
| void appendComment(start, PrecedenceInfo info, bool asciiOnly) {
|
| if (!includeComments) return;
|
| - Token newComment = createSubstringToken(info, start, asciiOnly);
|
| + Token newComment = createCommentToken(info, start, asciiOnly);
|
| + _appendToCommentStream(newComment);
|
| + }
|
| +
|
| + void appendDartDoc(start, PrecedenceInfo info, bool asciiOnly) {
|
| + if (!includeComments) return;
|
| + Token newComment = createDartDocToken(info, start, asciiOnly);
|
| + _appendToCommentStream(newComment);
|
| + }
|
| +
|
| + void _appendToCommentStream(Token newComment) {
|
| if (comments == null) {
|
| comments = newComment;
|
| commentsTail = comments;
|
| @@ -262,6 +279,32 @@ abstract class ArrayBasedScanner extends AbstractScanner {
|
| [int extraOffset = 0]);
|
|
|
| /**
|
| + * Returns a new comment from the scan offset [start] to the current
|
| + * [scanOffset] plus the [extraOffset]. For example, if the current
|
| + * scanOffset is 10, then [appendSubstringToken(5, -1)] will append the
|
| + * substring string [5,9).
|
| + *
|
| + * Note that [extraOffset] can only be used if the covered character(s) are
|
| + * known to be ASCII.
|
| + */
|
| + CommentToken createCommentToken(
|
| + PrecedenceInfo info, int start, bool asciiOnly,
|
| + [int extraOffset = 0]);
|
| +
|
| + /**
|
| + * Returns a new dartdoc from the scan offset [start] to the current
|
| + * [scanOffset] plus the [extraOffset]. For example, if the current
|
| + * scanOffset is 10, then [appendSubstringToken(5, -1)] will append the
|
| + * substring string [5,9).
|
| + *
|
| + * Note that [extraOffset] can only be used if the covered character(s) are
|
| + * known to be ASCII.
|
| + */
|
| + DartDocToken createDartDocToken(
|
| + PrecedenceInfo info, int start, bool asciiOnly,
|
| + [int extraOffset = 0]);
|
| +
|
| + /**
|
| * This method is called to discard '<' from the "grouping" stack.
|
| *
|
| * [PartialParser.skipExpression] relies on the fact that we do not
|
|
|