Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1647)

Side by Side Diff: pkg/front_end/test/fasta/parser/token_stream_rewriter_test.dart

Issue 2899043006: cleanup fasta token classes (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « pkg/front_end/lib/src/scanner/token.dart ('k') | pkg/front_end/test/scanner_fasta_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2017, 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 import 'package:front_end/src/fasta/parser/token_stream_rewriter.dart'; 5 import 'package:front_end/src/fasta/parser/token_stream_rewriter.dart';
6 import 'package:front_end/src/fasta/scanner/token.dart'; 6 import 'package:front_end/src/fasta/scanner/token.dart';
7 import 'package:front_end/src/scanner/token.dart' show Token, TokenType; 7 import 'package:front_end/src/scanner/token.dart'
8 show BeginToken, Token, TokenType;
8 import 'package:test/test.dart'; 9 import 'package:test/test.dart';
9 import 'package:test_reflective_loader/test_reflective_loader.dart'; 10 import 'package:test_reflective_loader/test_reflective_loader.dart';
10 11
11 main() { 12 main() {
12 defineReflectiveSuite(() { 13 defineReflectiveSuite(() {
13 defineReflectiveTests(TokenStreamRewriterTest_NoPrevious); 14 defineReflectiveTests(TokenStreamRewriterTest_NoPrevious);
14 defineReflectiveTests(TokenStreamRewriterTest_UsingPrevious); 15 defineReflectiveTests(TokenStreamRewriterTest_UsingPrevious);
15 }); 16 });
16 } 17 }
17 18
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 rewriter.insertTokenBefore(d, e); 98 rewriter.insertTokenBefore(d, e);
98 expect(c.next, same(d)); 99 expect(c.next, same(d));
99 expect(d.next, same(e)); 100 expect(d.next, same(e));
100 } 101 }
101 102
102 /// Links together the given [tokens] and adds an EOF token to the end of the 103 /// Links together the given [tokens] and adds an EOF token to the end of the
103 /// token stream. 104 /// token stream.
104 /// 105 ///
105 /// The EOF token is returned. 106 /// The EOF token is returned.
106 Token _link(Iterable<Token> tokens) { 107 Token _link(Iterable<Token> tokens) {
107 Token head = new SymbolToken.eof(-1); 108 Token head = new Token.eof(-1);
108 if (!setPrevious) head.previous = null; 109 if (!setPrevious) head.previous = null;
109 for (var token in tokens) { 110 for (var token in tokens) {
110 head.next = token; 111 head.next = token;
111 if (setPrevious) token.previous = head; 112 if (setPrevious) token.previous = head;
112 head = token; 113 head = token;
113 } 114 }
114 int eofOffset = head.charOffset + head.lexeme.length; 115 int eofOffset = head.charOffset + head.lexeme.length;
115 if (eofOffset < 0) eofOffset = 0; 116 if (eofOffset < 0) eofOffset = 0;
116 Token eof = new SymbolToken.eof(eofOffset); 117 Token eof = new Token.eof(eofOffset);
117 if (!setPrevious) eof.previous = null; 118 if (!setPrevious) eof.previous = null;
118 head.next = eof; 119 head.next = eof;
119 if (setPrevious) eof.previous = head; 120 if (setPrevious) eof.previous = head;
120 return eof; 121 return eof;
121 } 122 }
122 123
123 BeginGroupToken _makeBeginGroupToken(int charOffset) { 124 BeginToken _makeBeginGroupToken(int charOffset) {
124 return new BeginGroupToken(TokenType.OPEN_PAREN, charOffset); 125 return new BeginToken(TokenType.OPEN_PAREN, charOffset);
125 } 126 }
126 127
127 StringToken _makeToken(int charOffset, String text) { 128 StringToken _makeToken(int charOffset, String text) {
128 return new StringToken.fromString(null, text, charOffset); 129 return new StringToken.fromString(null, text, charOffset);
129 } 130 }
130 } 131 }
131 132
132 /// Concrete implementation of [TokenStreamRewriterTest] in which 133 /// Concrete implementation of [TokenStreamRewriterTest] in which
133 /// [Token.previous] values are set to null. 134 /// [Token.previous] values are set to null.
134 /// 135 ///
135 /// This forces [TokenStreamRewriter] to use its more complex heursitc for 136 /// This forces [TokenStreamRewriter] to use its more complex heursitc for
136 /// finding previous tokens. 137 /// finding previous tokens.
137 @reflectiveTest 138 @reflectiveTest
138 class TokenStreamRewriterTest_NoPrevious extends TokenStreamRewriterTest { 139 class TokenStreamRewriterTest_NoPrevious extends TokenStreamRewriterTest {
139 bool get setPrevious => false; 140 bool get setPrevious => false;
140 } 141 }
141 142
142 /// Concrete implementation of [TokenStreamRewriterTest] in which 143 /// Concrete implementation of [TokenStreamRewriterTest] in which
143 /// [Token.previous] values are set to non-null. 144 /// [Token.previous] values are set to non-null.
144 /// 145 ///
145 /// Since [TokenStreamRewriter] makes use of [Token.previous] when it can, 146 /// Since [TokenStreamRewriter] makes use of [Token.previous] when it can,
146 /// these tests do not exercise the more complex heuristics for finding previous 147 /// these tests do not exercise the more complex heuristics for finding previous
147 /// tokens. 148 /// tokens.
148 @reflectiveTest 149 @reflectiveTest
149 class TokenStreamRewriterTest_UsingPrevious extends TokenStreamRewriterTest { 150 class TokenStreamRewriterTest_UsingPrevious extends TokenStreamRewriterTest {
150 bool get setPrevious => true; 151 bool get setPrevious => true;
151 } 152 }
OLDNEW
« no previous file with comments | « pkg/front_end/lib/src/scanner/token.dart ('k') | pkg/front_end/test/scanner_fasta_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698