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

Side by Side Diff: packages/petitparser/lib/src/petitparser/context.dart

Issue 2989763002: Update charted to 0.4.8 and roll (Closed)
Patch Set: Removed Cutch from list of reviewers Created 3 years, 4 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 unified diff | Download patch
OLDNEW
(Empty)
1 part of petitparser;
2
3 /// An immutable parse context.
4 class Context {
5 const Context(this.buffer, this.position);
6
7 /// The buffer we are working on.
8 final buffer;
9
10 /// The current position in the buffer.
11 final int position;
12
13 /// Returns a result indicating a parse success.
14 Result success(result, [int position]) {
15 return new Success(buffer, position == null ? this.position : position, resu lt);
16 }
17
18 /// Returns a result indicating a parse failure.
19 Result failure(String message, [int position]) {
20 return new Failure(buffer, position == null ? this.position : position, mess age);
21 }
22
23 /// Returns a human readable string of the current context.
24 String toString() => 'Context[${toPositionString()}]';
25
26 /// Returns the line:column if the input is a string, otherwise the position.
27 String toPositionString() => Token.positionString(buffer, position);
28 }
29
30 /// An immutable parse result.
31 abstract class Result extends Context {
32 const Result(buffer, position) : super(buffer, position);
33
34 /// Returns [true] if this result indicates a parse success.
35 bool get isSuccess => false;
36
37 /// Returns [true] if this result indicates a parse failure.
38 bool get isFailure => false;
39
40 /// Returns the parse result of the current context.
41 get value;
42
43 /// Returns the parse message of the current context.
44 String get message;
45 }
46
47 /// An immutable parse result in case of a successful parse.
48 class Success extends Result {
49 const Success(buffer, position, this.value) : super(buffer, position);
50
51 @override
52 bool get isSuccess => true;
53
54 @override
55 final value;
56
57 @override
58 String get message => null;
59
60 @override
61 String toString() => 'Success[${toPositionString()}]: $value';
62 }
63
64 /// An immutable parse result in case of a failed parse.
65 class Failure extends Result {
66 const Failure(buffer, position, this.message) : super(buffer, position);
67
68 @override
69 bool get isFailure => true;
70
71 @override
72 get value => throw new ParserError(this);
73
74 @override
75 final String message;
76
77 @override
78 String toString() => 'Failure[${toPositionString()}]: $message';
79 }
80
81 /// An exception raised in case of a parse error.
82 class ParserError extends Error {
83 final Failure failure;
84
85 ParserError(this.failure);
86
87 @override
88 String toString() => '${failure.message} at ${failure.toPositionString()}';
89 }
OLDNEW
« no previous file with comments | « packages/petitparser/lib/src/petitparser/composite.dart ('k') | packages/petitparser/lib/src/petitparser/definition.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698