44
55library _fe_analyzer_shared.scanner.token;
66
7- import 'token.dart' as analyzer;
8- import 'token.dart' show TokenType;
7+ import 'token.dart'
8+ show
9+ DocumentationCommentToken,
10+ SimpleToken,
11+ TokenType,
12+ CommentToken,
13+ StringToken,
14+ LanguageVersionToken;
915
1016import 'token_constants.dart' show IDENTIFIER_TOKEN;
1117
@@ -16,7 +22,7 @@ import 'string_canonicalizer.dart';
1622 * number literals, comments, and error tokens, using the corresponding
1723 * precedence info.
1824 */
19- class StringToken extends analyzer. SimpleToken implements analyzer. StringToken {
25+ class StringTokenImpl extends SimpleToken implements StringToken {
2026 /**
2127 * The length threshold above which substring tokens are computed lazily.
2228 *
@@ -33,8 +39,8 @@ class StringToken extends analyzer.SimpleToken implements analyzer.StringToken {
3339 * Creates a non-lazy string token. If [canonicalize] is true, the string
3440 * is canonicalized before the token is created.
3541 */
36- StringToken .fromString (TokenType type, String value, int charOffset,
37- {bool canonicalize: false , analyzer. CommentToken ? precedingComments})
42+ StringTokenImpl .fromString (TokenType type, String value, int charOffset,
43+ {bool canonicalize: false , CommentToken ? precedingComments})
3844 : valueOrLazySubstring = canonicalizedString (
3945 value, /* start = */ 0 , value.length, canonicalize),
4046 super (type, charOffset, precedingComments);
@@ -43,9 +49,9 @@ class StringToken extends analyzer.SimpleToken implements analyzer.StringToken {
4349 * Creates a lazy string token. If [canonicalize] is true, the string
4450 * is canonicalized before the token is created.
4551 */
46- StringToken .fromSubstring (
52+ StringTokenImpl .fromSubstring (
4753 TokenType type, String data, int start, int end, int charOffset,
48- {bool canonicalize: false , analyzer. CommentToken ? precedingComments})
54+ {bool canonicalize: false , CommentToken ? precedingComments})
4955 : super (type, charOffset, precedingComments) {
5056 int length = end - start;
5157 if (length <= LAZY_THRESHOLD ) {
@@ -61,9 +67,9 @@ class StringToken extends analyzer.SimpleToken implements analyzer.StringToken {
6167 * Creates a lazy string token. If [asciiOnly] is false, the byte array
6268 * is passed through a UTF-8 decoder.
6369 */
64- StringToken .fromUtf8Bytes (TokenType type, List <int > data, int start, int end ,
65- bool asciiOnly, int charOffset,
66- {analyzer. CommentToken ? precedingComments})
70+ StringTokenImpl .fromUtf8Bytes (TokenType type, List <int > data, int start,
71+ int end, bool asciiOnly, int charOffset,
72+ {CommentToken ? precedingComments})
6773 : super (type, charOffset, precedingComments) {
6874 int length = end - start;
6975 if (length <= LAZY_THRESHOLD ) {
@@ -73,10 +79,6 @@ class StringToken extends analyzer.SimpleToken implements analyzer.StringToken {
7379 }
7480 }
7581
76- StringToken ._(TokenType type, this .valueOrLazySubstring, int charOffset,
77- [analyzer.CommentToken ? precedingComments])
78- : super (type, charOffset, precedingComments);
79-
8082 @override
8183 String get lexeme {
8284 if (valueOrLazySubstring is String ) {
@@ -119,28 +121,15 @@ class StringToken extends analyzer.SimpleToken implements analyzer.StringToken {
119121 String value () => lexeme;
120122}
121123
122- /**
123- * A String-valued token that does not exist in the original source.
124- */
125- class SyntheticStringToken extends StringToken
126- implements analyzer.SyntheticStringToken {
127- SyntheticStringToken (TokenType type, String value, int offset,
128- [analyzer.CommentToken ? precedingComments])
129- : super ._(type, value, offset, precedingComments);
130-
131- @override
132- int get length => 0 ;
133- }
134-
135- class CommentToken extends StringToken implements analyzer.CommentToken {
124+ class CommentTokenImpl extends StringTokenImpl implements CommentToken {
136125 @override
137- analyzer. SimpleToken ? parent;
126+ SimpleToken ? parent;
138127
139128 /**
140129 * Creates a lazy comment token. If [canonicalize] is true, the string
141130 * is canonicalized before the token is created.
142131 */
143- CommentToken .fromSubstring (
132+ CommentTokenImpl .fromSubstring (
144133 TokenType type, String data, int start, int end, int charOffset,
145134 {bool canonicalize: false })
146135 : super .fromSubstring (type, data, start, end, charOffset,
@@ -149,44 +138,44 @@ class CommentToken extends StringToken implements analyzer.CommentToken {
149138 /**
150139 * Creates a non-lazy comment token.
151140 */
152- CommentToken .fromString (TokenType type, String lexeme, int charOffset)
141+ CommentTokenImpl .fromString (TokenType type, String lexeme, int charOffset)
153142 : super .fromString (type, lexeme, charOffset);
154143
155144 /**
156145 * Creates a lazy string token. If [asciiOnly] is false, the byte array
157146 * is passed through a UTF-8 decoder.
158147 */
159- CommentToken .fromUtf8Bytes (TokenType type, List <int > data, int start, int end ,
160- bool asciiOnly, int charOffset)
148+ CommentTokenImpl .fromUtf8Bytes (TokenType type, List <int > data, int start,
149+ int end, bool asciiOnly, int charOffset)
161150 : super .fromUtf8Bytes (type, data, start, end, asciiOnly, charOffset);
162151}
163152
164- class LanguageVersionToken extends CommentToken
165- implements analyzer. LanguageVersionToken {
153+ class LanguageVersionTokenImpl extends CommentTokenImpl
154+ implements LanguageVersionToken {
166155 @override
167156 int major;
168157
169158 @override
170159 int minor;
171160
172- LanguageVersionToken .from (String text, int offset, this .major, this .minor)
161+ LanguageVersionTokenImpl .from (String text, int offset, this .major, this .minor)
173162 : super .fromString (TokenType .SINGLE_LINE_COMMENT , text, offset);
174163
175- LanguageVersionToken .fromSubstring (
164+ LanguageVersionTokenImpl .fromSubstring (
176165 String string, int start, int end, int tokenStart, this .major, this .minor,
177166 {bool canonicalize: false })
178167 : super .fromSubstring (
179168 TokenType .SINGLE_LINE_COMMENT , string, start, end, tokenStart,
180169 canonicalize: canonicalize);
181170
182- LanguageVersionToken .fromUtf8Bytes (List <int > bytes, int start, int end,
171+ LanguageVersionTokenImpl .fromUtf8Bytes (List <int > bytes, int start, int end,
183172 int tokenStart, this .major, this .minor)
184173 : super .fromUtf8Bytes (
185174 TokenType .SINGLE_LINE_COMMENT , bytes, start, end, true , tokenStart);
186175}
187176
188- class DartDocToken extends CommentToken
189- implements analyzer. DocumentationCommentToken {
177+ class DartDocToken extends CommentTokenImpl
178+ implements DocumentationCommentToken {
190179 /**
191180 * Creates a lazy comment token. If [canonicalize] is true, the string
192181 * is canonicalized before the token is created.
0 commit comments