| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library glob.ast; | 5 library glob.ast; |
| 6 | 6 |
| 7 import 'package:path/path.dart' as p; | 7 import 'package:path/path.dart' as p; |
| 8 import 'package:collection/collection.dart'; | 8 import 'package:collection/collection.dart'; |
| 9 | 9 |
| 10 import 'utils.dart'; | 10 import 'utils.dart'; |
| (...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 327 | 327 |
| 328 OptionsNode(Iterable<SequenceNode> options) | 328 OptionsNode(Iterable<SequenceNode> options) |
| 329 : options = options.toList(); | 329 : options = options.toList(); |
| 330 | 330 |
| 331 OptionsNode flattenOptions() => new OptionsNode( | 331 OptionsNode flattenOptions() => new OptionsNode( |
| 332 options.expand((option) => option.flattenOptions().options)); | 332 options.expand((option) => option.flattenOptions().options)); |
| 333 | 333 |
| 334 String _toRegExp() => | 334 String _toRegExp() => |
| 335 '(?:${options.map((option) => option._toRegExp()).join("|")})'; | 335 '(?:${options.map((option) => option._toRegExp()).join("|")})'; |
| 336 | 336 |
| 337 bool operator==(Object other) => other is OptionsNode && | 337 bool operator==(Object other) => other is OptionsNode && |
| 338 const UnorderedIterableEquality().equals(options, other.options); | 338 const UnorderedIterableEquality().equals(options, other.options); |
| 339 | 339 |
| 340 int get hashCode => const UnorderedIterableEquality().hash(options); | 340 int get hashCode => const UnorderedIterableEquality().hash(options); |
| 341 | 341 |
| 342 String toString() => '{${options.join(',')}}'; | 342 String toString() => '{${options.join(',')}}'; |
| 343 } | 343 } |
| 344 | 344 |
| 345 /// A node that matches a literal string. | 345 /// A node that matches a literal string. |
| 346 class LiteralNode extends AstNode { | 346 class LiteralNode extends AstNode { |
| 347 /// The string to match. | 347 /// The string to match. |
| (...skipping 15 matching lines...) Expand all Loading... |
| 363 LiteralNode(this.text, [this._context]); | 363 LiteralNode(this.text, [this._context]); |
| 364 | 364 |
| 365 String _toRegExp() => regExpQuote(text); | 365 String _toRegExp() => regExpQuote(text); |
| 366 | 366 |
| 367 bool operator==(Object other) => other is LiteralNode && other.text == text; | 367 bool operator==(Object other) => other is LiteralNode && other.text == text; |
| 368 | 368 |
| 369 int get hashCode => text.hashCode; | 369 int get hashCode => text.hashCode; |
| 370 | 370 |
| 371 String toString() => text; | 371 String toString() => text; |
| 372 } | 372 } |
| OLD | NEW |