Skip to content

Commit

Permalink
- renamed private method _parse(Contet) to parseOn(Context) so that p…
Browse files Browse the repository at this point in the history
…arser classes can be created outside the library
  • Loading branch information
renggli committed Jul 2, 2013
1 parent 152fc86 commit c64e941
Show file tree
Hide file tree
Showing 7 changed files with 41 additions and 39 deletions.
20 changes: 10 additions & 10 deletions lib/src/core/actions.dart
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -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);
}
Expand All @@ -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)
Expand All @@ -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);
Expand Down
2 changes: 1 addition & 1 deletion lib/src/core/characters.dart
Original file line number Diff line number Diff line change
Expand Up @@ -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))) {
Expand Down
34 changes: 17 additions & 17 deletions lib/src/core/combinators.dart
Original file line number Diff line number Diff line change
Expand Up @@ -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<Parser> get children => [_delegate];
Expand All @@ -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;
}
Expand All @@ -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 {
Expand All @@ -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 {
Expand All @@ -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 {
Expand All @@ -142,19 +142,19 @@ 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;
}
elements.add(result.value);
current = result;
}
while (elements.length < _max) {
var result = _delegate._parse(current);
var result = _delegate.parseOn(current);
if (result.isFailure) {
return current.success(elements);
}
Expand Down Expand Up @@ -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;
}
Expand All @@ -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;
}
Expand Down
12 changes: 7 additions & 5 deletions lib/src/core/parser.dart
Original file line number Diff line number Diff line change
Expand Up @@ -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].
Expand All @@ -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));
}

/**
Expand Down
4 changes: 2 additions & 2 deletions lib/src/core/parsers.dart
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand All @@ -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]';

Expand Down
4 changes: 2 additions & 2 deletions lib/src/core/predicates.dart
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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) {
Expand Down
4 changes: 2 additions & 2 deletions lib/src/core/reflection.dart
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

0 comments on commit c64e941

Please sign in to comment.