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

Side by Side Diff: pkg/compiler/lib/src/string_validator.dart

Issue 1383483006: Extract DiagnosticReporter implementation from Compiler. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Fixes after rebase. Created 5 years, 2 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/compiler/lib/src/ssa/variable_allocator.dart ('k') | pkg/compiler/lib/src/typechecker.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) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 // Check the validity of string literals. 5 // Check the validity of string literals.
6 6
7 library stringvalidator; 7 library stringvalidator;
8 8
9 import 'dart:collection'; 9 import 'dart:collection';
10 10
11 import 'diagnostics/diagnostic_listener.dart'; 11 import 'diagnostics/diagnostic_listener.dart';
12 import 'diagnostics/messages.dart' show MessageKind; 12 import 'diagnostics/messages.dart' show MessageKind;
13 import 'tokens/token.dart' show Token; 13 import 'tokens/token.dart' show Token;
14 import 'tree/tree.dart'; 14 import 'tree/tree.dart';
15 import 'util/characters.dart'; 15 import 'util/characters.dart';
16 16
17 class StringValidator { 17 class StringValidator {
18 final DiagnosticListener listener; 18 final DiagnosticReporter reporter;
19 19
20 StringValidator(this.listener); 20 StringValidator(this.reporter);
21 21
22 DartString validateInterpolationPart(Token token, StringQuoting quoting, 22 DartString validateInterpolationPart(Token token, StringQuoting quoting,
23 {bool isFirst: false, 23 {bool isFirst: false,
24 bool isLast: false}) { 24 bool isLast: false}) {
25 String source = token.value; 25 String source = token.value;
26 int leftQuote = 0; 26 int leftQuote = 0;
27 int rightQuote = 0; 27 int rightQuote = 0;
28 if (isFirst) leftQuote = quoting.leftQuoteLength; 28 if (isFirst) leftQuote = quoting.leftQuoteLength;
29 if (isLast) rightQuote = quoting.rightQuoteLength; 29 if (isLast) rightQuote = quoting.rightQuoteLength;
30 String content = copyWithoutQuotes(source, leftQuote, rightQuote); 30 String content = copyWithoutQuotes(source, leftQuote, rightQuote);
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 * literals (including an initial 'r' for raw strings). 95 * literals (including an initial 'r' for raw strings).
96 */ 96 */
97 String copyWithoutQuotes(String string, int initial, int terminal) { 97 String copyWithoutQuotes(String string, int initial, int terminal) {
98 assert(0 <= initial); 98 assert(0 <= initial);
99 assert(0 <= terminal); 99 assert(0 <= terminal);
100 assert(initial + terminal <= string.length); 100 assert(initial + terminal <= string.length);
101 return string.substring(initial, string.length - terminal); 101 return string.substring(initial, string.length - terminal);
102 } 102 }
103 103
104 void stringParseError(String message, Token token, int offset) { 104 void stringParseError(String message, Token token, int offset) {
105 listener.reportErrorMessage( 105 reporter.reportErrorMessage(
106 token, MessageKind.GENERIC, {'text': "$message @ $offset"}); 106 token, MessageKind.GENERIC, {'text': "$message @ $offset"});
107 } 107 }
108 108
109 /** 109 /**
110 * Validates the escape sequences and special characters of a string literal. 110 * Validates the escape sequences and special characters of a string literal.
111 * Returns a DartString if valid, and null if not. 111 * Returns a DartString if valid, and null if not.
112 */ 112 */
113 DartString validateString(Token token, 113 DartString validateString(Token token,
114 int startOffset, 114 int startOffset,
115 String string, 115 String string,
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 return null; 225 return null;
226 } 226 }
227 // String literal successfully validated. 227 // String literal successfully validated.
228 if (quoting.raw || !containsEscape) { 228 if (quoting.raw || !containsEscape) {
229 // A string without escapes could just as well have been raw. 229 // A string without escapes could just as well have been raw.
230 return new DartString.rawString(string, length); 230 return new DartString.rawString(string, length);
231 } 231 }
232 return new DartString.escapedString(string, length); 232 return new DartString.escapedString(string, length);
233 } 233 }
234 } 234 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/ssa/variable_allocator.dart ('k') | pkg/compiler/lib/src/typechecker.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698