| Index: quiver/lib/pattern.dart
|
| diff --git a/quiver/lib/pattern.dart b/quiver/lib/pattern.dart
|
| deleted file mode 100644
|
| index 937b0a06a61074799b1b58de0659e16893e8ddcb..0000000000000000000000000000000000000000
|
| --- a/quiver/lib/pattern.dart
|
| +++ /dev/null
|
| @@ -1,85 +0,0 @@
|
| -// Copyright 2013 Google Inc. All Rights Reserved.
|
| -//
|
| -// Licensed under the Apache License, Version 2.0 (the "License");
|
| -// you may not use this file except in compliance with the License.
|
| -// You may obtain a copy of the License at
|
| -//
|
| -// http://www.apache.org/licenses/LICENSE-2.0
|
| -//
|
| -// Unless required by applicable law or agreed to in writing, software
|
| -// distributed under the License is distributed on an "AS IS" BASIS,
|
| -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| -// See the License for the specific language governing permissions and
|
| -// limitations under the License.
|
| -
|
| -/**
|
| - * This library contains utilities for working with [RegExp]s and other
|
| - * [Pattern]s.
|
| - */
|
| -library quiver.pattern;
|
| -
|
| -part 'src/pattern/glob.dart';
|
| -
|
| -// From the PatternCharacter rule here:
|
| -// http://ecma-international.org/ecma-262/5.1/#sec-15.10
|
| -final _specialChars = new RegExp(r'([\\\^\$\.\|\+\[\]\(\)\{\}])');
|
| -
|
| -/**
|
| - * Escapes special regex characters in [str] so that it can be used as a
|
| - * literal match inside of a [RegExp].
|
| - *
|
| - * The special characters are: \ ^ $ . | + [ ] ( ) { }
|
| - * as defined here: http://ecma-international.org/ecma-262/5.1/#sec-15.10
|
| - */
|
| -String escapeRegex(String str) => str.splitMapJoin(_specialChars,
|
| - onMatch: (Match m) => '\\${m.group(0)}', onNonMatch: (s) => s);
|
| -
|
| -/**
|
| - * Returns a [Pattern] that matches against every pattern in [include] and
|
| - * returns all the matches. If the input string matches against any pattern in
|
| - * [exclude] no matches are returned.
|
| - */
|
| -Pattern matchAny(Iterable<Pattern> include, {Iterable<Pattern> exclude}) =>
|
| - new _MultiPattern(include, exclude: exclude);
|
| -
|
| -class _MultiPattern extends Pattern {
|
| - final Iterable<Pattern> include;
|
| - final Iterable<Pattern> exclude;
|
| -
|
| - _MultiPattern(Iterable<Pattern> this.include,
|
| - {Iterable<Pattern> this.exclude});
|
| -
|
| - Iterable<Match> allMatches(String str, [int start = 0]) {
|
| - var _allMatches = [];
|
| - for (var pattern in include) {
|
| - var matches = pattern.allMatches(str, start);
|
| - if (_hasMatch(matches)) {
|
| - if (exclude != null) {
|
| - for (var excludePattern in exclude) {
|
| - if (_hasMatch(excludePattern.allMatches(str, start))) {
|
| - return [];
|
| - }
|
| - }
|
| - }
|
| - _allMatches.add(matches);
|
| - }
|
| - }
|
| - return _allMatches.expand((x) => x);
|
| - }
|
| -
|
| - Match matchAsPrefix(String str, [int start = 0]) {
|
| - return allMatches(str).firstWhere((match) => match.start == start,
|
| - orElse: () => null);
|
| - }
|
| -}
|
| -
|
| -/**
|
| - * Returns true if [pattern] has a single match in [str] that matches the whole
|
| - * string, not a substring.
|
| - */
|
| -bool matchesFull(Pattern pattern, String str) {
|
| - var match = pattern.matchAsPrefix(str);
|
| - return match != null && match.end == str.length;
|
| -}
|
| -
|
| -bool _hasMatch(Iterable<Match> matches) => matches.iterator.moveNext();
|
|
|