Index: sdk/lib/_internal/compiler/implementation/lib/coreimpl_patch.dart |
diff --git a/sdk/lib/_internal/compiler/implementation/lib/coreimpl_patch.dart b/sdk/lib/_internal/compiler/implementation/lib/coreimpl_patch.dart |
deleted file mode 100644 |
index efddd1c39ba79237bbca2dd9faddd1a3fb465f16..0000000000000000000000000000000000000000 |
--- a/sdk/lib/_internal/compiler/implementation/lib/coreimpl_patch.dart |
+++ /dev/null |
@@ -1,131 +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. |
- |
-// Patch file for dart:coreimpl classes. |
- |
-// Patch for RegExp implementation. |
-// TODO(ager): Split out into regexp_patch.dart and allow #source in |
-// patch files? |
-patch class JSSyntaxRegExp { |
- final String _pattern; |
- final bool _multiLine; |
- final bool _ignoreCase; |
- |
- patch JSSyntaxRegExp(String pattern, |
- {bool multiLine: false, |
- bool ignoreCase: false}) |
- : _pattern = pattern, |
- _multiLine = multiLine, |
- _ignoreCase = ignoreCase; |
- |
- patch Match firstMatch(String str) { |
- List<String> m = regExpExec(this, checkString(str)); |
- if (m == null) return null; |
- var matchStart = regExpMatchStart(m); |
- // m.lastIndex only works with flag 'g'. |
- var matchEnd = matchStart + m[0].length; |
- return new _MatchImplementation(pattern, str, matchStart, matchEnd, m); |
- } |
- |
- patch bool hasMatch(String str) => regExpTest(this, checkString(str)); |
- |
- patch String stringMatch(String str) { |
- var match = firstMatch(str); |
- return match == null ? null : match.group(0); |
- } |
- |
- patch Iterable<Match> allMatches(String str) { |
- checkString(str); |
- return new _AllMatchesIterable(this, str); |
- } |
- |
- patch String get pattern => _pattern; |
- patch bool get multiLine => _multiLine; |
- patch bool get ignoreCase => _ignoreCase; |
- |
- static JSSyntaxRegExp _globalVersionOf(JSSyntaxRegExp other) { |
- JSSyntaxRegExp re = new JSSyntaxRegExp(other.pattern, |
- multiLine: other.multiLine, |
- ignoreCase: other.ignoreCase); |
- regExpAttachGlobalNative(re); |
- return re; |
- } |
- |
- _getNative() => regExpGetNative(this); |
-} |
- |
-class _MatchImplementation implements Match { |
- final String pattern; |
- final String str; |
- final int start; |
- final int end; |
- final List<String> _groups; |
- |
- const _MatchImplementation( |
- String this.pattern, |
- String this.str, |
- int this.start, |
- int this.end, |
- List<String> this._groups); |
- |
- String group(int index) => _groups[index]; |
- String operator [](int index) => group(index); |
- int get groupCount => _groups.length - 1; |
- |
- List<String> groups(List<int> groups) { |
- List<String> out = []; |
- for (int i in groups) { |
- out.add(group(i)); |
- } |
- return out; |
- } |
-} |
- |
-class _AllMatchesIterable implements Iterable<Match> { |
- final JSSyntaxRegExp _re; |
- final String _str; |
- |
- const _AllMatchesIterable(this._re, this._str); |
- |
- Iterator<Match> iterator() => new _AllMatchesIterator(_re, _str); |
-} |
- |
-class _AllMatchesIterator implements Iterator<Match> { |
- final RegExp _re; |
- final String _str; |
- Match _next; |
- bool _done; |
- |
- _AllMatchesIterator(JSSyntaxRegExp re, String this._str) |
- : _done = false, _re = JSSyntaxRegExp._globalVersionOf(re); |
- |
- Match next() { |
- if (!hasNext) { |
- throw new StateError("No more elements"); |
- } |
- |
- // _next is set by [hasNext]. |
- var next = _next; |
- _next = null; |
- return next; |
- } |
- |
- bool get hasNext { |
- if (_done) { |
- return false; |
- } else if (_next != null) { |
- return true; |
- } |
- |
- // firstMatch actually acts as nextMatch because of |
- // hidden global flag. |
- _next = _re.firstMatch(_str); |
- if (_next == null) { |
- _done = true; |
- return false; |
- } else { |
- return true; |
- } |
- } |
-} |