From c64e941874ba2ccbb463389134713658f20e9e12 Mon Sep 17 00:00:00 2001 From: Lukas Renggli Date: Tue, 2 Jul 2013 18:40:13 +0200 Subject: [PATCH] - renamed private method _parse(Contet) to parseOn(Context) so that parser classes can be created outside the library --- lib/src/core/actions.dart | 20 ++++++++++---------- lib/src/core/characters.dart | 2 +- lib/src/core/combinators.dart | 34 +++++++++++++++++----------------- lib/src/core/parser.dart | 12 +++++++----- lib/src/core/parsers.dart | 4 ++-- lib/src/core/predicates.dart | 4 ++-- lib/src/core/reflection.dart | 4 ++-- 7 files changed, 41 insertions(+), 39 deletions(-) diff --git a/lib/src/core/actions.dart b/lib/src/core/actions.dart index 9d106423..57140095 100644 --- a/lib/src/core/actions.dart +++ b/lib/src/core/actions.dart @@ -12,8 +12,8 @@ class _ActionParser extends DelegateParser { _ActionParser(parser, this._function) : super(parser); - Result _parse(Context context) { - var result = _delegate._parse(context); + Result parseOn(Context context) { + var result = _delegate.parseOn(context); if (result.isSuccess) { return result.success(_function(result.value)); } else { @@ -38,18 +38,18 @@ class _TrimmingParser extends DelegateParser { _TrimmingParser(parser, this._trimmer) : super(parser); - Result _parse(Context context) { + Result parseOn(Context context) { var current = context; do { - current = _trimmer._parse(current); + current = _trimmer.parseOn(current); } while (current.isSuccess); - var result = _delegate._parse(current); + var result = _delegate.parseOn(current); if (result.isFailure) { return result; } current = result; do { - current = _trimmer._parse(current); + current = _trimmer.parseOn(current); } while (current.isSuccess); return current.success(result.value); } @@ -75,8 +75,8 @@ class _FlattenParser extends DelegateParser { _FlattenParser(parser) : super(parser); - Result _parse(Context context) { - var result = _delegate._parse(context); + Result parseOn(Context context) { + var result = _delegate.parseOn(context); if (result.isSuccess) { var output = context.buffer is String ? context.buffer.substring(context.position, result.position) @@ -98,8 +98,8 @@ class _TokenParser extends DelegateParser { _TokenParser(parser) : super(parser); - Result _parse(Context context) { - var result = _delegate._parse(context); + Result parseOn(Context context) { + var result = _delegate.parseOn(context); if (result.isSuccess) { var token = new Token(result.value, context.buffer, context.position, result.position); diff --git a/lib/src/core/characters.dart b/lib/src/core/characters.dart index 412ba480..78156ce5 100644 --- a/lib/src/core/characters.dart +++ b/lib/src/core/characters.dart @@ -13,7 +13,7 @@ class _CharacterParser extends Parser { _CharacterParser(this._matcher, this._message); - Result _parse(Context context) { + Result parseOn(Context context) { var buffer = context.buffer; var position = context.position; if (position < buffer.length && _matcher.match(buffer.codeUnitAt(position))) { diff --git a/lib/src/core/combinators.dart b/lib/src/core/combinators.dart index 7e91ba4b..7b93224c 100644 --- a/lib/src/core/combinators.dart +++ b/lib/src/core/combinators.dart @@ -12,8 +12,8 @@ class DelegateParser extends Parser { DelegateParser(this._delegate); - Result _parse(Context context) { - return _delegate._parse(context); + Result parseOn(Context context) { + return _delegate.parseOn(context); } List get children => [_delegate]; @@ -38,8 +38,8 @@ class _EndOfInputParser extends DelegateParser { _EndOfInputParser(parser, this._message) : super(parser); - Result _parse(Context context) { - var result = _delegate._parse(context); + Result parseOn(Context context) { + var result = _delegate.parseOn(context); if (result.isFailure || result.position == result.buffer.length) { return result; } @@ -64,8 +64,8 @@ class _AndParser extends DelegateParser { _AndParser(parser) : super(parser); - Result _parse(Context context) { - var result = _delegate._parse(context); + Result parseOn(Context context) { + var result = _delegate.parseOn(context); if (result.isSuccess) { return context.success(result.value); } else { @@ -87,8 +87,8 @@ class _NotParser extends DelegateParser { _NotParser(parser, this._message) : super(parser); - Result _parse(Context context) { - var result = _delegate._parse(context); + Result parseOn(Context context) { + var result = _delegate.parseOn(context); if (result.isFailure) { return context.success(null); } else { @@ -115,8 +115,8 @@ class _OptionalParser extends DelegateParser { _OptionalParser(parser, this._otherwise) : super(parser); - Result _parse(Context context) { - var result = _delegate._parse(context); + Result parseOn(Context context) { + var result = _delegate.parseOn(context); if (result.isSuccess) { return result; } else { @@ -142,11 +142,11 @@ class _RepeatingParser extends DelegateParser { _RepeatingParser(parser, this._min, this._max) : super(parser); - Result _parse(Context context) { + Result parseOn(Context context) { var current = context; var elements = new List(); while (elements.length < _min) { - var result = _delegate._parse(current); + var result = _delegate.parseOn(current); if (result.isFailure) { return result; } @@ -154,7 +154,7 @@ class _RepeatingParser extends DelegateParser { current = result; } while (elements.length < _max) { - var result = _delegate._parse(current); + var result = _delegate.parseOn(current); if (result.isFailure) { return current.success(elements); } @@ -205,10 +205,10 @@ class _ChoiceParser extends _ListParser { _ChoiceParser(parsers) : super(parsers); - Result _parse(Context context) { + Result parseOn(Context context) { var result; for (var parser in _parsers) { - result = parser._parse(context); + result = parser.parseOn(context); if (result.isSuccess) { return result; } @@ -233,11 +233,11 @@ class _SequenceParser extends _ListParser { _SequenceParser(parsers) : super(parsers); - Result _parse(Context context) { + 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]._parse(current); + var result = _parsers[i].parseOn(current); if (result.isFailure) { return result; } diff --git a/lib/src/core/parser.dart b/lib/src/core/parser.dart index e49439bc..317d2390 100644 --- a/lib/src/core/parser.dart +++ b/lib/src/core/parser.dart @@ -8,12 +8,14 @@ part of petitparser; abstract class Parser { /** - * Private abstract method doing the actual parsing. + * Primitive method doing the actual parsing. * - * The methods takes a parse [context] and returns the resulting context, - * which is either a [Success] or [Failure] context. + * The method is overridden in concrete subclasses to implement the + * parser specific logic. The methods takes a parse [context] and + * returns the resulting context, which is either a [Success] or + * [Failure] context. */ - Result _parse(Context context); + Result parseOn(Context context); /** * Returns the parse result of the [input]. @@ -30,7 +32,7 @@ abstract class Parser { * ['letter expected']. */ Result parse(dynamic input) { - return _parse(new Context(input, 0)); + return parseOn(new Context(input, 0)); } /** diff --git a/lib/src/core/parsers.dart b/lib/src/core/parsers.dart index a507507f..dce4b6fa 100644 --- a/lib/src/core/parsers.dart +++ b/lib/src/core/parsers.dart @@ -16,7 +16,7 @@ class _EpsilonParser extends Parser { _EpsilonParser(this._result); - Result _parse(Context context) => context.success(_result); + Result parseOn(Context context) => context.success(_result); Parser copy() => new _EpsilonParser(_result); @@ -41,7 +41,7 @@ class _FailureParser extends Parser { _FailureParser(this._message); - Result _parse(Context context) => context.failure(_message); + Result parseOn(Context context) => context.failure(_message); String toString() => '${super.toString()}[$_message]'; diff --git a/lib/src/core/predicates.dart b/lib/src/core/predicates.dart index d0f1b06e..f3cb0291 100644 --- a/lib/src/core/predicates.dart +++ b/lib/src/core/predicates.dart @@ -18,7 +18,7 @@ class _AnyParser extends Parser { _AnyParser(this._message); - Result _parse(Context context) { + Result parseOn(Context context) { var position = context.position; var buffer = context.buffer; return position < buffer.length @@ -93,7 +93,7 @@ class _PredicateParser extends Parser { _PredicateParser(this._length, this._predicate, this._message); - Result _parse(Context context) { + Result parseOn(Context context) { final start = context.position; final stop = start + _length; if (stop <= context.buffer.length) { diff --git a/lib/src/core/reflection.dart b/lib/src/core/reflection.dart index 2977159d..be3a9cce 100644 --- a/lib/src/core/reflection.dart +++ b/lib/src/core/reflection.dart @@ -138,8 +138,8 @@ String _debugIndent(int level) { class _ContinuationParser extends DelegateParser { final Function _function; _ContinuationParser(parser, this._function) : super(parser); - Result _parse(Context context) { - return _function(context, (result) => _delegate._parse(result)); + Result parseOn(Context context) { + return _function(context, (result) => _delegate.parseOn(result)); } Parser copy() => new _ContinuationParser(_delegate, _function); }