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

Unified Diff: frog/leg/lib/string_helper.dart

Issue 9873021: Move frog/leg to lib/compiler/implementation. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « frog/leg/lib/regexp_helper.dart ('k') | frog/leg/namer.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: frog/leg/lib/string_helper.dart
===================================================================
--- frog/leg/lib/string_helper.dart (revision 5925)
+++ frog/leg/lib/string_helper.dart (working copy)
@@ -1,127 +0,0 @@
-// Copyright (c) 2012, 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.
-
-class StringMatch implements Match {
- const StringMatch(int this._start,
- String this.str,
- String this.pattern);
-
- int start() => _start;
- int end() => _start + pattern.length;
- String operator[](int g) => group(g);
- int groupCount() => 0;
-
- String group(int group_) {
- if (group_ != 0) {
- throw new IndexOutOfRangeException(group_);
- }
- return pattern;
- }
-
- List<String> groups(List<int> groups_) {
- List<String> result = new List<String>();
- for (int g in groups_) {
- result.add(group(g));
- }
- return result;
- }
-
- final int _start;
- final String str;
- final String pattern;
-}
-
-List<Match> allMatchesInStringUnchecked(String needle, String haystack) {
- // Copied from StringBase.allMatches in
- // ../../../runtime/lib/string.dart
- List<Match> result = new List<Match>();
- int length = haystack.length;
- int patternLength = needle.length;
- int startIndex = 0;
- while (true) {
- int position = haystack.indexOf(needle, startIndex);
- if (position == -1) {
- break;
- }
- result.add(new StringMatch(position, haystack, needle));
- int endIndex = position + patternLength;
- if (endIndex == length) {
- break;
- } else if (position == endIndex) {
- ++startIndex; // empty match, advance and restart
- } else {
- startIndex = endIndex;
- }
- }
- return result;
-}
-
-stringContainsUnchecked(receiver, other, startIndex) {
- if (other is String) {
- return receiver.indexOf(other, startIndex) !== -1;
- } else if (other is JSSyntaxRegExp) {
- return other.hasMatch(receiver.substring(startIndex));
- } else {
- var substr = receiver.substring(startIndex);
- return other.allMatches(substr).iterator().hasNext();
- }
-}
-
-stringReplaceAllUnchecked(receiver, from, to) {
- if (from is String) {
- if (from == "") {
- if (receiver == "") {
- return to;
- } else {
- StringBuffer result = new StringBuffer();
- int length = receiver.length;
- result.add(to);
- for (int i = 0; i < length; i++) {
- result.add(receiver[i]);
- result.add(to);
- }
- return result.toString();
- }
- } else {
- RegExp quoteRegExp =
- const JSSyntaxRegExp(@'[-[\]{}()*+?.,\\^$|#\s]', false, false);
- var quoter = regExpMakeNative(quoteRegExp, global: true);
- var quoted = JS('String', @'#.replace(#, "\\$&")', from, quoter);
- RegExp replaceRegExp = new JSSyntaxRegExp(quoted, false, false);
- var replacer = regExpMakeNative(replaceRegExp, global: true);
- return JS('String', @'#.replace(#, #)', receiver, replacer, to);
- }
- } else if (from is JSSyntaxRegExp) {
- var re = regExpMakeNative(from, global: true);
- return JS('String', @'#.replace(#, #)', receiver, re, to);
- } else {
- checkNull(from);
- // TODO(floitsch): implement generic String.replace (with patterns).
- throw "StringImplementation.replaceAll(Pattern) UNIMPLEMENTED";
- }
-}
-
-stringReplaceFirstUnchecked(receiver, from, to) {
- if (from is String) {
- return JS('String', @'#.replace(#, #)', receiver, from, to);
- } else if (from is JSSyntaxRegExp) {
- var re = regExpGetNative(from);
- return JS('String', @'#.replace(#, #)', receiver, re, to);
- } else {
- checkNull(from);
- // TODO(floitsch): implement generic String.replace (with patterns).
- throw "StringImplementation.replace(Pattern) UNIMPLEMENTED";
- }
-}
-
-stringSplitUnchecked(receiver, pattern) {
- if (pattern is String) {
- return JS('List', @'#.split(#)', receiver, pattern);
- } else if (pattern is JSSyntaxRegExp) {
- var re = regExpGetNative(pattern);
- return JS('List', @'#.split(#)', receiver, re);
- } else {
- throw "StringImplementation.split(Pattern) UNIMPLEMENTED";
- }
-}
« no previous file with comments | « frog/leg/lib/regexp_helper.dart ('k') | frog/leg/namer.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698