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

Unified Diff: packages/petitparser/lib/src/petitparser/combinators.dart

Issue 2989763002: Update charted to 0.4.8 and roll (Closed)
Patch Set: Removed Cutch from list of reviewers Created 3 years, 5 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
Index: packages/petitparser/lib/src/petitparser/combinators.dart
diff --git a/packages/petitparser/lib/src/petitparser/combinators.dart b/packages/petitparser/lib/src/petitparser/combinators.dart
deleted file mode 100644
index 074d15b8c2fbe18f88c4f8e0473f7326afe0cf29..0000000000000000000000000000000000000000
--- a/packages/petitparser/lib/src/petitparser/combinators.dart
+++ /dev/null
@@ -1,218 +0,0 @@
-part of petitparser;
-
-/// A parser that delegates to another one. Normally users do not need to
-/// directly use a delegate parser.
-class DelegateParser extends Parser {
- Parser _delegate;
-
- DelegateParser(this._delegate);
-
- @override
- Result parseOn(Context context) {
- return _delegate.parseOn(context);
- }
-
- @override
- List<Parser> get children => [_delegate];
-
- @override
- void replace(Parser source, Parser target) {
- super.replace(source, target);
- if (_delegate == source) {
- _delegate = target;
- }
- }
-
- @override
- Parser copy() => new DelegateParser(_delegate);
-}
-
-/// A parser that succeeds only at the end of the input.
-class EndOfInputParser extends DelegateParser {
- final String _message;
-
- EndOfInputParser(parser, this._message) : super(parser);
-
- @override
- Result parseOn(Context context) {
- var result = _delegate.parseOn(context);
- if (result.isFailure || result.position == result.buffer.length) {
- return result;
- }
- return result.failure(_message, result.position);
- }
-
- @override
- String toString() => '${super.toString()}[$_message]';
-
- @override
- Parser copy() => new EndOfInputParser(_delegate, _message);
-
- @override
- bool hasEqualProperties(Parser other) {
- return other is EndOfInputParser && super.hasEqualProperties(other)
- && _message == other._message;
- }
-}
-
-/// The and-predicate, a parser that succeeds whenever its delegate does, but
-/// does not consume the input stream [Parr 1994, 1995].
-class AndParser extends DelegateParser {
- AndParser(parser) : super(parser);
-
- @override
- Result parseOn(Context context) {
- var result = _delegate.parseOn(context);
- if (result.isSuccess) {
- return context.success(result.value);
- } else {
- return result;
- }
- }
-
- @override
- Parser copy() => new AndParser(_delegate);
-}
-
-/// The not-predicate, a parser that succeeds whenever its delegate does not,
-/// but consumes no input [Parr 1994, 1995].
-class NotParser extends DelegateParser {
- final String _message;
-
- NotParser(parser, this._message) : super(parser);
-
- @override
- Result parseOn(Context context) {
- var result = _delegate.parseOn(context);
- if (result.isFailure) {
- return context.success(null);
- } else {
- return context.failure(_message);
- }
- }
-
- @override
- String toString() => '${super.toString()}[$_message]';
-
- @override
- Parser copy() => new NotParser(_delegate, _message);
-
- @override
- bool hasEqualProperties(Parser other) {
- return other is NotParser
- && super.hasEqualProperties(other)
- && _message == other._message;
- }
-}
-
-/// A parser that optionally parsers its delegate, or answers nil.
-class OptionalParser extends DelegateParser {
- final _otherwise;
-
- OptionalParser(parser, this._otherwise) : super(parser);
-
- @override
- Result parseOn(Context context) {
- var result = _delegate.parseOn(context);
- if (result.isSuccess) {
- return result;
- } else {
- return context.success(_otherwise);
- }
- }
-
- @override
- Parser copy() => new OptionalParser(_delegate, _otherwise);
-
- @override
- bool hasEqualProperties(Parser other) {
- return other is OptionalParser
- && super.hasEqualProperties(other)
- && _otherwise == other._otherwise;
- }
-}
-
-/// Abstract parser that parses a list of things in some way.
-abstract class ListParser extends Parser {
- final List<Parser> _parsers;
-
- ListParser(this._parsers);
-
- @override
- List<Parser> get children => _parsers;
-
- @override
- void replace(Parser source, Parser target) {
- super.replace(source, target);
- for (var i = 0; i < _parsers.length; i++) {
- if (_parsers[i] == source) {
- _parsers[i] = target;
- }
- }
- }
-}
-
-/// A parser that uses the first parser that succeeds.
-class ChoiceParser extends ListParser {
- factory ChoiceParser(Iterable<Parser> parsers) {
- return new ChoiceParser._(new List.from(parsers, growable: false));
- }
-
- ChoiceParser._(parsers) : super(parsers);
-
- @override
- Result parseOn(Context context) {
- var result;
- for (var i = 0; i < _parsers.length; i++) {
- result = _parsers[i].parseOn(context);
- if (result.isSuccess) {
- return result;
- }
- }
- return result;
- }
-
- @override
- Parser or(Parser other) {
- return new ChoiceParser(new List()
- ..addAll(_parsers)
- ..add(other));
- }
-
- @override
- Parser copy() => new ChoiceParser(_parsers);
-}
-
-/// A parser that parses a sequence of parsers.
-class SequenceParser extends ListParser {
- factory SequenceParser(Iterable<Parser> parsers) {
- return new SequenceParser._(new List.from(parsers, growable: false));
- }
-
- SequenceParser._(parsers) : super(parsers);
-
- @override
- Result parseOn(Context context) {
- var current = context;
- var elements = new List(_parsers.length);
- for (var i = 0; i < _parsers.length; i++) {
- var result = _parsers[i].parseOn(current);
- if (result.isFailure) {
- return result;
- }
- elements[i] = result.value;
- current = result;
- }
- return current.success(elements);
- }
-
- @override
- Parser seq(Parser other) {
- return new SequenceParser(new List()
- ..addAll(_parsers)
- ..add(other));
- }
-
- @override
- Parser copy() => new SequenceParser(_parsers);
-}
« no previous file with comments | « packages/petitparser/lib/src/petitparser/characters.dart ('k') | packages/petitparser/lib/src/petitparser/composite.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698