Index: pkg/dart_scanner/lib/src/string_scanner.dart |
diff --git a/pkg/compiler/lib/src/scanner/string_scanner.dart b/pkg/dart_scanner/lib/src/string_scanner.dart |
similarity index 60% |
rename from pkg/compiler/lib/src/scanner/string_scanner.dart |
rename to pkg/dart_scanner/lib/src/string_scanner.dart |
index 7e1f995d8252332cbf1e5213ee1197536aa1dbb4..d69d6737588f9ec0dcaa7376da046ccfafd44171 100644 |
--- a/pkg/compiler/lib/src/scanner/string_scanner.dart |
+++ b/pkg/dart_scanner/lib/src/string_scanner.dart |
@@ -4,10 +4,15 @@ |
library dart2js.scanner.string; |
-import '../io/source_file.dart' show SourceFile; |
-import '../tokens/precedence.dart' show PrecedenceInfo; |
-import '../tokens/token.dart' show StringToken, Token; |
-import 'array_based_scanner.dart' show ArrayBasedScanner; |
+import 'array_based_scanner.dart' show |
+ ArrayBasedScanner; |
+ |
+import 'precedence.dart' show |
+ PrecedenceInfo; |
+ |
+import 'token.dart' show |
+ StringToken, |
+ Token; |
/** |
* Scanner that reads from a String and creates tokens that points to |
@@ -20,22 +25,15 @@ class StringScanner extends ArrayBasedScanner { |
/** The current offset in [string]. */ |
int scanOffset = -1; |
- StringScanner(SourceFile file, {bool includeComments: false}) |
- : string = file.slowText(), |
- super(file, includeComments) { |
- ensureZeroTermination(); |
- } |
- |
- StringScanner.fromString(this.string, {bool includeComments: false}) |
- : super(null, includeComments) { |
- ensureZeroTermination(); |
- } |
+ StringScanner(String string, {bool includeComments: false}) |
+ : string = ensureZeroTermination(string), |
+ super(includeComments); |
- void ensureZeroTermination() { |
- if (string.isEmpty || string.codeUnitAt(string.length - 1) != 0) { |
- // TODO(lry): abort instead of copying the array, or warn? |
- string = string + '\x00'; |
- } |
+ static String ensureZeroTermination(String string) { |
+ return (string.isEmpty || string.codeUnitAt(string.length - 1) != 0) |
+ // TODO(lry): abort instead of copying the array, or warn? |
+ ? string + '\x00' |
+ : string; |
} |
int advance() => string.codeUnitAt(++scanOffset); |