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

Unified Diff: sdk/lib/_internal/compiler/implementation/lib/coreimpl_patch.dart

Issue 11365196: Move JSSyntaxRegExp to core as a private member. This removes the last refrences to dart:coreimpl. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fix two pending TODO's. Created 8 years, 1 month 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
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;
- }
- }
-}

Powered by Google App Engine
This is Rietveld 408576698