Index: frog/leg/scanner/string_scanner.dart |
=================================================================== |
--- frog/leg/scanner/string_scanner.dart (revision 5925) |
+++ frog/leg/scanner/string_scanner.dart (working copy) |
@@ -1,74 +0,0 @@ |
-// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
-// for details. All rights reserved. Use of this source code is governed by a |
-// BSD-style license that can be found in the LICENSE file. |
- |
-/** |
- * Scanner that reads from a String and creates tokens that points to |
- * substrings. |
- */ |
-class StringScanner extends ArrayBasedScanner<SourceString> { |
- final String string; |
- |
- StringScanner(String this.string) : super(); |
- |
- int nextByte() => charAt(++byteOffset); |
- |
- int peek() => charAt(byteOffset + 1); |
- |
- int charAt(index) |
- => (string.length > index) ? string.charCodeAt(index) : $EOF; |
- |
- SourceString asciiString(int start, int offset) { |
- return new SubstringWrapper(string, start, byteOffset + offset); |
- } |
- |
- SourceString utf8String(int start, int offset) { |
- return new SubstringWrapper(string, start, byteOffset + offset + 1); |
- } |
- |
- void appendByteStringToken(PrecedenceInfo info, SourceString value) { |
- // assert(kind != $a || keywords.get(value) == null); |
- tail.next = new StringToken.fromSource(info, value, tokenStart); |
- tail = tail.next; |
- } |
-} |
- |
-class SubstringWrapper implements SourceString { |
- final String internalString; |
- final int begin; |
- final int end; |
- |
- const SubstringWrapper(String this.internalString, |
- int this.begin, int this.end); |
- |
- int hashCode() => slowToString().hashCode(); |
- |
- bool operator ==(other) { |
- return other is SourceString && slowToString() == other.slowToString(); |
- } |
- |
- void printOn(StringBuffer sb) { |
- sb.add(internalString.substring(begin, end)); |
- } |
- |
- String slowToString() => internalString.substring(begin, end); |
- |
- String toString() => "SubstringWrapper(${slowToString()})"; |
- |
- String get stringValue() => null; |
- |
- Iterator<int> iterator() => |
- new StringCodeIterator.substring(internalString, begin, end); |
- |
- SourceString copyWithoutQuotes(int initial, int terminal) { |
- assert(0 <= initial); |
- assert(0 <= terminal); |
- assert(initial + terminal <= internalString.length); |
- return new SubstringWrapper(internalString, |
- begin + initial, end - terminal); |
- } |
- |
- bool isEmpty() => begin == end; |
- |
- bool isPrivate() => !isEmpty() && internalString.charCodeAt(begin) === $_; |
-} |