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

Unified Diff: pkg/yaml/lib/src/parser.dart

Issue 14103026: Restructure the yaml package. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 8 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
« no previous file with comments | « pkg/yaml/lib/src/model.dart ('k') | pkg/yaml/lib/src/utils.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/yaml/lib/src/parser.dart
diff --git a/pkg/yaml/lib/parser.dart b/pkg/yaml/lib/src/parser.dart
similarity index 85%
rename from pkg/yaml/lib/parser.dart
rename to pkg/yaml/lib/src/parser.dart
index b923fe3301df40de0e4e1e6978be0d8a594bcf87..2616038ee175b0b25020af36f9b6789618742aa9 100644
--- a/pkg/yaml/lib/parser.dart
+++ b/pkg/yaml/lib/src/parser.dart
@@ -2,7 +2,13 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-part of yaml;
+library parser;
+
+import 'dart:collection';
+
+import 'model.dart';
+import 'yaml_exception.dart';
+import 'yaml_map.dart';
/// Translates a string of characters into a YAML serialization tree.
///
@@ -17,7 +23,7 @@ part of yaml;
/// named `nb-ns-plain-in-line`, and the method implementing it is named
/// `nb_ns_plainInLine`. The exception to that rule is methods that just
/// recognize character classes; these are named `is*`.
-class _Parser {
+class Parser {
static const TAB = 0x9;
static const LF = 0xA;
static const CR = 0xD;
@@ -111,84 +117,84 @@ class _Parser {
static const CHOMPING_CLIP = 2;
/// The source string being parsed.
- final String s;
+ final String _s;
/// The current position in the source string.
- int pos = 0;
+ int _pos = 0;
/// The length of the string being parsed.
- final int len;
+ final int _len;
/// The current (0-based) line in the source string.
- int line = 0;
+ int _line = 0;
/// The current (0-based) column in the source string.
- int column = 0;
+ int _column = 0;
/// Whether we're parsing a bare document (that is, one that doesn't begin
/// with `---`). Bare documents don't allow `%` immediately following
/// newlines.
- bool inBareDocument = false;
+ bool _inBareDocument = false;
/// The line number of the farthest position that has been parsed successfully
/// before backtracking. Used for error reporting.
- int farthestLine = 0;
+ int _farthestLine = 0;
/// The column number of the farthest position that has been parsed
/// successfully before backtracking. Used for error reporting.
- int farthestColumn = 0;
+ int _farthestColumn = 0;
/// The farthest position in the source string that has been parsed
/// successfully before backtracking. Used for error reporting.
- int farthestPos = 0;
+ int _farthestPos = 0;
/// The name of the context of the farthest position that has been parsed
/// successfully before backtracking. Used for error reporting.
- String farthestContext = "document";
+ String _farthestContext = "document";
/// A stack of the names of parse contexts. Used for error reporting.
- List<String> contextStack;
+ List<String> _contextStack;
/// Annotations attached to ranges of the source string that add extra
/// information to any errors that occur in the annotated range.
- _RangeMap<String> errorAnnotations;
+ _RangeMap<String> _errorAnnotations;
/// The buffer containing the string currently being captured.
- StringBuffer capturedString;
+ StringBuffer _capturedString;
/// The beginning of the current section of the captured string.
- int captureStart;
+ int _captureStart;
/// Whether the current string capture is being overridden.
- bool capturingAs = false;
+ bool _capturingAs = false;
- _Parser(String s)
- : this.s = s,
- len = s.length,
- contextStack = <String>["document"],
- errorAnnotations = new _RangeMap();
+ Parser(String s)
+ : this._s = s,
+ _len = s.length,
+ _contextStack = <String>["document"],
+ _errorAnnotations = new _RangeMap();
/// Return the character at the current position, then move that position
/// forward one character. Also updates the current line and column numbers.
int next() {
- if (pos == len) return -1;
- var char = s.codeUnitAt(pos++);
+ if (_pos == _len) return -1;
+ var char = _s.codeUnitAt(_pos++);
if (isBreak(char)) {
- line++;
- column = 0;
+ _line++;
+ _column = 0;
} else {
- column++;
+ _column++;
}
- if (farthestLine < line) {
- farthestLine = line;
- farthestColumn = column;
- farthestContext = contextStack.last;
- } else if (farthestLine == line && farthestColumn < column) {
- farthestColumn = column;
- farthestContext = contextStack.last;
+ if (_farthestLine < _line) {
+ _farthestLine = _line;
+ _farthestColumn = _column;
+ _farthestContext = _contextStack.last;
+ } else if (_farthestLine == _line && _farthestColumn < _column) {
+ _farthestColumn = _column;
+ _farthestContext = _contextStack.last;
}
- farthestPos = pos;
+ _farthestPos = _pos;
return char;
}
@@ -199,8 +205,8 @@ class _Parser {
/// Returns -1 if this would return a character after the end or before the
/// beginning of the input string.
int peek([int i = 0]) {
- var peekPos = pos + i;
- return (peekPos >= len || peekPos < 0) ? -1 : s.codeUnitAt(peekPos);
+ var peekPos = _pos + i;
+ return (peekPos >= _len || peekPos < 0) ? -1 : _s.codeUnitAt(peekPos);
}
/// The truthiness operator. Returns `false` if [obj] is `null` or `false`,
@@ -243,11 +249,11 @@ class _Parser {
/// Conceptually, repeats a production any number of times.
List zeroOrMore(consumer()) {
var out = [];
- var oldPos = pos;
+ var oldPos = _pos;
while (true) {
var el = consumer();
- if (!truth(el) || oldPos == pos) return out;
- oldPos = pos;
+ if (!truth(el) || oldPos == _pos) return out;
+ oldPos = _pos;
out.add(el);
}
return null; // Unreachable.
@@ -270,20 +276,20 @@ class _Parser {
/// Calls [consumer] and returns its result, but rolls back the parser state
/// if [consumer] returns a falsey value.
transaction(consumer()) {
- var oldPos = pos;
- var oldLine = line;
- var oldColumn = column;
- var oldCaptureStart = captureStart;
- String capturedSoFar = capturedString == null ? null :
- capturedString.toString();
+ var oldPos = _pos;
+ var oldLine = _line;
+ var oldColumn = _column;
+ var oldCaptureStart = _captureStart;
+ String capturedSoFar = _capturedString == null ? null :
+ _capturedString.toString();
var res = consumer();
if (truth(res)) return res;
- pos = oldPos;
- line = oldLine;
- column = oldColumn;
- captureStart = oldCaptureStart;
- capturedString = capturedSoFar == null ? null :
+ _pos = oldPos;
+ _line = oldLine;
+ _column = oldColumn;
+ _captureStart = oldCaptureStart;
+ _capturedString = capturedSoFar == null ? null :
new StringBuffer(capturedSoFar);
return res;
}
@@ -316,21 +322,21 @@ class _Parser {
/// [consumer] in `transaction`.
String captureString(consumer()) {
// captureString calls may not be nested
- assert(capturedString == null);
+ assert(_capturedString == null);
- captureStart = pos;
- capturedString = new StringBuffer();
+ _captureStart = _pos;
+ _capturedString = new StringBuffer();
var res = transaction(consumer);
if (!truth(res)) {
- captureStart = null;
- capturedString = null;
+ _captureStart = null;
+ _capturedString = null;
return null;
}
flushCapture();
- var result = capturedString.toString();
- captureStart = null;
- capturedString = null;
+ var result = _capturedString.toString();
+ _captureStart = null;
+ _capturedString = null;
return result;
}
@@ -338,27 +344,27 @@ class _Parser {
captureAndTransform(consumer, (_) => replacement);
captureAndTransform(consumer(), String transformation(String captured)) {
- if (capturedString == null) return consumer();
- if (capturingAs) return consumer();
+ if (_capturedString == null) return consumer();
+ if (_capturingAs) return consumer();
flushCapture();
- capturingAs = true;
+ _capturingAs = true;
var res = consumer();
- capturingAs = false;
+ _capturingAs = false;
if (!truth(res)) return res;
- capturedString.write(transformation(s.substring(captureStart, pos)));
- captureStart = pos;
+ _capturedString.write(transformation(_s.substring(_captureStart, _pos)));
+ _captureStart = _pos;
return res;
}
void flushCapture() {
- capturedString.write(s.substring(captureStart, pos));
- captureStart = pos;
+ _capturedString.write(_s.substring(_captureStart, _pos));
+ _captureStart = _pos;
}
/// Adds a tag and an anchor to [node], if they're defined.
- _Node addProps(_Node node, _Pair<_Tag, String> props) {
+ Node addProps(Node node, _Pair<Tag, String> props) {
if (props == null || node == null) return node;
if (truth(props.first)) node.tag = props.first;
if (truth(props.last)) node.anchor = props.last;
@@ -366,19 +372,19 @@ class _Parser {
}
/// Creates a MappingNode from [pairs].
- _MappingNode map(List<_Pair<_Node, _Node>> pairs) {
- var content = new Map<_Node, _Node>();
+ MappingNode map(List<_Pair<Node, Node>> pairs) {
+ var content = new Map<Node, Node>();
pairs.forEach((pair) => content[pair.first] = pair.last);
- return new _MappingNode("?", content);
+ return new MappingNode("?", content);
}
/// Runs [fn] in a context named [name]. Used for error reporting.
context(String name, fn()) {
try {
- contextStack.add(name);
+ _contextStack.add(name);
return fn();
} finally {
- var popped = contextStack.removeLast();
+ var popped = _contextStack.removeLast();
assert(popped == name);
}
}
@@ -387,21 +393,21 @@ class _Parser {
/// current position and the position of the cursor after running [fn]. The
/// cursor is reset after [fn] is run.
annotateError(String message, fn()) {
- var start = pos;
+ var start = _pos;
var end;
transaction(() {
fn();
- end = pos;
+ end = _pos;
return false;
});
- errorAnnotations[new _Range(start, end)] = message;
+ _errorAnnotations[new _Range(start, end)] = message;
}
/// Throws an error with additional context information.
error(String message) {
// Line and column should be one-based.
- throw new SyntaxError(line + 1, column + 1,
- "$message (in $farthestContext)");
+ throw new SyntaxError(_line + 1, _column + 1,
+ "$message (in $_farthestContext)");
}
/// If [result] is falsey, throws an error saying that [expected] was
@@ -411,13 +417,13 @@ class _Parser {
error("expected $expected");
}
- /// Throws an error saying that the parse failed. Uses [farthestLine],
- /// [farthestColumn], and [farthestContext] to provide additional information.
+ /// Throws an error saying that the parse failed. Uses [_farthestLine],
+ /// [_farthestColumn], and [_farthestContext] to provide additional information.
parseFailed() {
- var message = "invalid YAML in $farthestContext";
- var extraError = errorAnnotations[farthestPos];
+ var message = "invalid YAML in $_farthestContext";
+ var extraError = _errorAnnotations[_farthestPos];
if (extraError != null) message = "$message ($extraError)";
- throw new SyntaxError(farthestLine + 1, farthestColumn + 1, message);
+ throw new SyntaxError(_farthestLine + 1, _farthestColumn + 1, message);
}
/// Returns the number of spaces after the current position.
@@ -439,7 +445,7 @@ class _Parser {
spaces = captureString(() => zeroOrMore(() => consumeChar(SP))).length;
if (spaces > maxSpaces) {
maxSpaces = spaces;
- maxSpacesLine = line;
+ maxSpacesLine = _line;
}
} while (b_break());
return false;
@@ -462,10 +468,10 @@ class _Parser {
}
/// Returns whether the current position is at the beginning of a line.
- bool get atStartOfLine => column == 0;
+ bool get atStartOfLine => _column == 0;
/// Returns whether the current position is at the end of the input.
- bool get atEndOfFile => pos == len;
+ bool get atEndOfFile => _pos == _len;
/// Given an indicator character, returns the type of that indicator (or null
/// if the indicator isn't found.
@@ -796,7 +802,7 @@ class _Parser {
bool l_directive() => false; // TODO(nweiz): implement
// 96
- _Pair<_Tag, String> c_ns_properties(int indent, int ctx) {
+ _Pair<Tag, String> c_ns_properties(int indent, int ctx) {
var tag, anchor;
tag = c_ns_tagProperty();
if (truth(tag)) {
@@ -804,7 +810,7 @@ class _Parser {
if (!truth(s_separate(indent, ctx))) return null;
return c_ns_anchorProperty();
});
- return new _Pair<_Tag, String>(tag, anchor);
+ return new _Pair<Tag, String>(tag, anchor);
}
anchor = c_ns_anchorProperty();
@@ -813,14 +819,14 @@ class _Parser {
if (!truth(s_separate(indent, ctx))) return null;
return c_ns_tagProperty();
});
- return new _Pair<_Tag, String>(tag, anchor);
+ return new _Pair<Tag, String>(tag, anchor);
}
return null;
}
// 97
- _Tag c_ns_tagProperty() => null; // TODO(nweiz): implement
+ Tag c_ns_tagProperty() => null; // TODO(nweiz): implement
// 101
String c_ns_anchorProperty() => null; // TODO(nweiz): implement
@@ -833,17 +839,17 @@ class _Parser {
captureString(() => oneOrMore(() => consume(isAnchorChar)));
// 104
- _Node c_ns_aliasNode() {
+ Node c_ns_aliasNode() {
if (!truth(c_indicator(C_ALIAS))) return null;
var name = expect(ns_anchorName(), 'anchor name');
- return new _AliasNode(name);
+ return new AliasNode(name);
}
// 105
- _ScalarNode e_scalar() => new _ScalarNode("?", content: "");
+ ScalarNode e_scalar() => new ScalarNode("?", content: "");
// 106
- _ScalarNode e_node() => e_scalar();
+ ScalarNode e_node() => e_scalar();
// 107
bool nb_doubleChar() => or([
@@ -855,12 +861,12 @@ class _Parser {
bool ns_doubleChar() => !isSpace(peek()) && truth(nb_doubleChar());
// 109
- _Node c_doubleQuoted(int indent, int ctx) => context('string', () {
+ Node c_doubleQuoted(int indent, int ctx) => context('string', () {
return transaction(() {
if (!truth(c_indicator(C_DOUBLE_QUOTE))) return null;
var contents = nb_doubleText(indent, ctx);
if (!truth(c_indicator(C_DOUBLE_QUOTE))) return null;
- return new _ScalarNode("!", content: contents);
+ return new ScalarNode("!", content: contents);
});
});
@@ -943,12 +949,12 @@ class _Parser {
bool ns_singleChar() => !isSpace(peek()) && truth(nb_singleChar());
// 120
- _Node c_singleQuoted(int indent, int ctx) => context('string', () {
+ Node c_singleQuoted(int indent, int ctx) => context('string', () {
return transaction(() {
if (!truth(c_indicator(C_SINGLE_QUOTE))) return null;
var contents = nb_singleText(indent, ctx);
if (!truth(c_indicator(C_SINGLE_QUOTE))) return null;
- return new _ScalarNode("!", content: contents);
+ return new ScalarNode("!", content: contents);
});
});
@@ -1110,18 +1116,18 @@ class _Parser {
}
// 137
- _SequenceNode c_flowSequence(int indent, int ctx) => transaction(() {
+ SequenceNode c_flowSequence(int indent, int ctx) => transaction(() {
if (!truth(c_indicator(C_SEQUENCE_START))) return null;
zeroOrOne(() => s_separate(indent, ctx));
var content = zeroOrOne(() => ns_s_flowSeqEntries(indent, inFlow(ctx)));
if (!truth(c_indicator(C_SEQUENCE_END))) return null;
- return new _SequenceNode("?", new List<_Node>.from(content));
+ return new SequenceNode("?", new List<Node>.from(content));
});
// 138
- Iterable<_Node> ns_s_flowSeqEntries(int indent, int ctx) {
+ Iterable<Node> ns_s_flowSeqEntries(int indent, int ctx) {
var first = ns_flowSeqEntry(indent, ctx);
- if (!truth(first)) return new Queue<_Node>();
+ if (!truth(first)) return new Queue<Node>();
zeroOrOne(() => s_separate(indent, ctx));
var rest;
@@ -1130,25 +1136,25 @@ class _Parser {
rest = zeroOrOne(() => ns_s_flowSeqEntries(indent, ctx));
}
- if (rest == null) rest = new Queue<_Node>();
+ if (rest == null) rest = new Queue<Node>();
rest.addFirst(first);
return rest;
}
// 139
- _Node ns_flowSeqEntry(int indent, int ctx) => or([
+ Node ns_flowSeqEntry(int indent, int ctx) => or([
() => ns_flowPair(indent, ctx),
() => ns_flowNode(indent, ctx)
]);
// 140
- _Node c_flowMapping(int indent, int ctx) {
+ Node c_flowMapping(int indent, int ctx) {
if (!truth(c_indicator(C_MAPPING_START))) return null;
zeroOrOne(() => s_separate(indent, ctx));
var content = zeroOrOne(() => ns_s_flowMapEntries(indent, inFlow(ctx)));
if (!truth(c_indicator(C_MAPPING_END))) return null;
- return new _MappingNode("?", content);
+ return new MappingNode("?", content);
}
// 141
@@ -1175,7 +1181,7 @@ class _Parser {
}
// 142
- _Pair<_Node, _Node> ns_flowMapEntry(int indent, int ctx) => or([
+ _Pair<Node, Node> ns_flowMapEntry(int indent, int ctx) => or([
() => transaction(() {
if (!truth(c_indicator(C_MAPPING_KEY))) return false;
if (!truth(s_separate(indent, ctx))) return false;
@@ -1185,20 +1191,20 @@ class _Parser {
]);
// 143
- _Pair<_Node, _Node> ns_flowMapExplicitEntry(int indent, int ctx) => or([
+ _Pair<Node, Node> ns_flowMapExplicitEntry(int indent, int ctx) => or([
() => ns_flowMapImplicitEntry(indent, ctx),
- () => new _Pair<_Node, _Node>(e_node(), e_node())
+ () => new _Pair<Node, Node>(e_node(), e_node())
]);
// 144
- _Pair<_Node, _Node> ns_flowMapImplicitEntry(int indent, int ctx) => or([
+ _Pair<Node, Node> ns_flowMapImplicitEntry(int indent, int ctx) => or([
() => ns_flowMapYamlKeyEntry(indent, ctx),
() => c_ns_flowMapEmptyKeyEntry(indent, ctx),
() => c_ns_flowMapJsonKeyEntry(indent, ctx)
]);
// 145
- _Pair<_Node, _Node> ns_flowMapYamlKeyEntry(int indent, int ctx) {
+ _Pair<Node, Node> ns_flowMapYamlKeyEntry(int indent, int ctx) {
var key = ns_flowYamlNode(indent, ctx);
if (!truth(key)) return null;
var value = or([
@@ -1208,18 +1214,18 @@ class _Parser {
}),
e_node
]);
- return new _Pair<_Node, _Node>(key, value);
+ return new _Pair<Node, Node>(key, value);
}
// 146
- _Pair<_Node, _Node> c_ns_flowMapEmptyKeyEntry(int indent, int ctx) {
+ _Pair<Node, Node> c_ns_flowMapEmptyKeyEntry(int indent, int ctx) {
var value = c_ns_flowMapSeparateValue(indent, ctx);
if (!truth(value)) return null;
- return new _Pair<_Node, _Node>(e_node(), value);
+ return new _Pair<Node, Node>(e_node(), value);
}
// 147
- _Node c_ns_flowMapSeparateValue(int indent, int ctx) => transaction(() {
+ Node c_ns_flowMapSeparateValue(int indent, int ctx) => transaction(() {
if (!truth(c_indicator(C_MAPPING_VALUE))) return null;
if (isPlainSafe(ctx, peek())) return null;
@@ -1233,7 +1239,7 @@ class _Parser {
});
// 148
- _Pair<_Node, _Node> c_ns_flowMapJsonKeyEntry(int indent, int ctx) {
+ _Pair<Node, Node> c_ns_flowMapJsonKeyEntry(int indent, int ctx) {
var key = c_flowJsonNode(indent, ctx);
if (!truth(key)) return null;
var value = or([
@@ -1243,11 +1249,11 @@ class _Parser {
}),
e_node
]);
- return new _Pair<_Node, _Node>(key, value);
+ return new _Pair<Node, Node>(key, value);
}
// 149
- _Node c_ns_flowMapAdjacentValue(int indent, int ctx) {
+ Node c_ns_flowMapAdjacentValue(int indent, int ctx) {
if (!truth(c_indicator(C_MAPPING_VALUE))) return null;
return or([
() => transaction(() {
@@ -1259,7 +1265,7 @@ class _Parser {
}
// 150
- _Node ns_flowPair(int indent, int ctx) {
+ Node ns_flowPair(int indent, int ctx) {
var pair = or([
() => transaction(() {
if (!truth(c_indicator(C_MAPPING_KEY))) return null;
@@ -1274,34 +1280,34 @@ class _Parser {
}
// 151
- _Pair<_Node, _Node> ns_flowPairEntry(int indent, int ctx) => or([
+ _Pair<Node, Node> ns_flowPairEntry(int indent, int ctx) => or([
() => ns_flowPairYamlKeyEntry(indent, ctx),
() => c_ns_flowMapEmptyKeyEntry(indent, ctx),
() => c_ns_flowPairJsonKeyEntry(indent, ctx)
]);
// 152
- _Pair<_Node, _Node> ns_flowPairYamlKeyEntry(int indent, int ctx) =>
+ _Pair<Node, Node> ns_flowPairYamlKeyEntry(int indent, int ctx) =>
transaction(() {
var key = ns_s_implicitYamlKey(FLOW_KEY);
if (!truth(key)) return null;
var value = c_ns_flowMapSeparateValue(indent, ctx);
if (!truth(value)) return null;
- return new _Pair<_Node, _Node>(key, value);
+ return new _Pair<Node, Node>(key, value);
});
// 153
- _Pair<_Node, _Node> c_ns_flowPairJsonKeyEntry(int indent, int ctx) =>
+ _Pair<Node, Node> c_ns_flowPairJsonKeyEntry(int indent, int ctx) =>
transaction(() {
var key = c_s_implicitJsonKey(FLOW_KEY);
if (!truth(key)) return null;
var value = c_ns_flowMapAdjacentValue(indent, ctx);
if (!truth(value)) return null;
- return new _Pair<_Node, _Node>(key, value);
+ return new _Pair<Node, Node>(key, value);
});
// 154
- _Node ns_s_implicitYamlKey(int ctx) => transaction(() {
+ Node ns_s_implicitYamlKey(int ctx) => transaction(() {
// TODO(nweiz): this is supposed to be limited to 1024 characters.
// The indentation parameter is "null" since it's unused in this path
@@ -1312,7 +1318,7 @@ class _Parser {
});
// 155
- _Node c_s_implicitJsonKey(int ctx) => transaction(() {
+ Node c_s_implicitJsonKey(int ctx) => transaction(() {
// TODO(nweiz): this is supposed to be limited to 1024 characters.
// The indentation parameter is "null" since it's unused in this path
@@ -1323,14 +1329,14 @@ class _Parser {
});
// 156
- _Node ns_flowYamlContent(int indent, int ctx) {
+ Node ns_flowYamlContent(int indent, int ctx) {
var str = ns_plain(indent, ctx);
if (!truth(str)) return null;
- return new _ScalarNode("?", content: str);
+ return new ScalarNode("?", content: str);
}
// 157
- _Node c_flowJsonContent(int indent, int ctx) => or([
+ Node c_flowJsonContent(int indent, int ctx) => or([
() => c_flowSequence(indent, ctx),
() => c_flowMapping(indent, ctx),
() => c_singleQuoted(indent, ctx),
@@ -1338,13 +1344,13 @@ class _Parser {
]);
// 158
- _Node ns_flowContent(int indent, int ctx) => or([
+ Node ns_flowContent(int indent, int ctx) => or([
() => ns_flowYamlContent(indent, ctx),
() => c_flowJsonContent(indent, ctx)
]);
// 159
- _Node ns_flowYamlNode(int indent, int ctx) => or([
+ Node ns_flowYamlNode(int indent, int ctx) => or([
c_ns_aliasNode,
() => ns_flowYamlContent(indent, ctx),
() {
@@ -1362,7 +1368,7 @@ class _Parser {
]);
// 160
- _Node c_flowJsonNode(int indent, int ctx) => transaction(() {
+ Node c_flowJsonNode(int indent, int ctx) => transaction(() {
var props;
zeroOrOne(() => transaction(() {
props = c_ns_properties(indent, ctx);
@@ -1374,7 +1380,7 @@ class _Parser {
});
// 161
- _Node ns_flowNode(int indent, int ctx) => or([
+ Node ns_flowNode(int indent, int ctx) => or([
c_ns_aliasNode,
() => ns_flowContent(indent, ctx),
() => transaction(() {
@@ -1471,7 +1477,7 @@ class _Parser {
});
// 170
- _Node c_l_literal(int indent) => transaction(() {
+ Node c_l_literal(int indent) => transaction(() {
if (!truth(c_indicator(C_LITERAL))) return null;
var header = c_b_blockHeader();
if (!truth(header)) return null;
@@ -1480,7 +1486,7 @@ class _Parser {
var content = l_literalContent(indent + additionalIndent, header.chomping);
if (!truth(content)) return null;
- return new _ScalarNode("!", content: content);
+ return new ScalarNode("!", content: content);
});
// 171
@@ -1508,7 +1514,7 @@ class _Parser {
});
// 174
- _Node c_l_folded(int indent) => transaction(() {
+ Node c_l_folded(int indent) => transaction(() {
if (!truth(c_indicator(C_FOLDED))) return null;
var header = c_b_blockHeader();
if (!truth(header)) return null;
@@ -1517,7 +1523,7 @@ class _Parser {
var content = l_foldedContent(indent + additionalIndent, header.chomping);
if (!truth(content)) return null;
- return new _ScalarNode("!", content: content);
+ return new ScalarNode("!", content: content);
});
// 175
@@ -1593,7 +1599,7 @@ class _Parser {
});
// 183
- _SequenceNode l_blockSequence(int indent) => context('sequence', () {
+ SequenceNode l_blockSequence(int indent) => context('sequence', () {
var additionalIndent = countIndentation() - indent;
if (additionalIndent <= 0) return null;
@@ -1603,11 +1609,11 @@ class _Parser {
}));
if (!truth(content)) return null;
- return new _SequenceNode("?", content);
+ return new SequenceNode("?", content);
});
// 184
- _Node c_l_blockSeqEntry(int indent) => transaction(() {
+ Node c_l_blockSeqEntry(int indent) => transaction(() {
if (!truth(c_indicator(C_SEQUENCE_ENTRY))) return null;
if (isNonSpace(peek())) return null;
@@ -1615,7 +1621,7 @@ class _Parser {
});
// 185
- _Node s_l_blockIndented(int indent, int ctx) {
+ Node s_l_blockIndented(int indent, int ctx) {
var additionalIndent = countIndentation();
return or([
() => transaction(() {
@@ -1629,7 +1635,7 @@ class _Parser {
}
// 186
- _Node ns_l_compactSequence(int indent) => context('sequence', () {
+ Node ns_l_compactSequence(int indent) => context('sequence', () {
var first = c_l_blockSeqEntry(indent);
if (!truth(first)) return null;
@@ -1639,11 +1645,11 @@ class _Parser {
}));
content.insert(0, first);
- return new _SequenceNode("?", content);
+ return new SequenceNode("?", content);
});
// 187
- _Node l_blockMapping(int indent) => context('mapping', () {
+ Node l_blockMapping(int indent) => context('mapping', () {
var additionalIndent = countIndentation() - indent;
if (additionalIndent <= 0) return null;
@@ -1657,13 +1663,13 @@ class _Parser {
});
// 188
- _Pair<_Node, _Node> ns_l_blockMapEntry(int indent) => or([
+ _Pair<Node, Node> ns_l_blockMapEntry(int indent) => or([
() => c_l_blockMapExplicitEntry(indent),
() => ns_l_blockMapImplicitEntry(indent)
]);
// 189
- _Pair<_Node, _Node> c_l_blockMapExplicitEntry(int indent) {
+ _Pair<Node, Node> c_l_blockMapExplicitEntry(int indent) {
var key = c_l_blockMapExplicitKey(indent);
if (!truth(key)) return null;
@@ -1672,37 +1678,37 @@ class _Parser {
e_node
]);
- return new _Pair<_Node, _Node>(key, value);
+ return new _Pair<Node, Node>(key, value);
}
// 190
- _Node c_l_blockMapExplicitKey(int indent) => transaction(() {
+ Node c_l_blockMapExplicitKey(int indent) => transaction(() {
if (!truth(c_indicator(C_MAPPING_KEY))) return null;
return s_l_blockIndented(indent, BLOCK_OUT);
});
// 191
- _Node l_blockMapExplicitValue(int indent) => transaction(() {
+ Node l_blockMapExplicitValue(int indent) => transaction(() {
if (!truth(s_indent(indent))) return null;
if (!truth(c_indicator(C_MAPPING_VALUE))) return null;
return s_l_blockIndented(indent, BLOCK_OUT);
});
// 192
- _Pair<_Node, _Node> ns_l_blockMapImplicitEntry(int indent) => transaction(() {
+ _Pair<Node, Node> ns_l_blockMapImplicitEntry(int indent) => transaction(() {
var key = or([ns_s_blockMapImplicitKey, e_node]);
var value = c_l_blockMapImplicitValue(indent);
- return truth(value) ? new _Pair<_Node, _Node>(key, value) : null;
+ return truth(value) ? new _Pair<Node, Node>(key, value) : null;
});
// 193
- _Node ns_s_blockMapImplicitKey() => context('mapping key', () => or([
+ Node ns_s_blockMapImplicitKey() => context('mapping key', () => or([
() => c_s_implicitJsonKey(BLOCK_KEY),
() => ns_s_implicitYamlKey(BLOCK_KEY)
]));
// 194
- _Node c_l_blockMapImplicitValue(int indent) => context('mapping value', () =>
+ Node c_l_blockMapImplicitValue(int indent) => context('mapping value', () =>
transaction(() {
if (!truth(c_indicator(C_MAPPING_VALUE))) return null;
return or([
@@ -1712,7 +1718,7 @@ class _Parser {
}));
// 195
- _Node ns_l_compactMapping(int indent) => context('mapping', () {
+ Node ns_l_compactMapping(int indent) => context('mapping', () {
var first = ns_l_blockMapEntry(indent);
if (!truth(first)) return null;
@@ -1726,13 +1732,13 @@ class _Parser {
});
// 196
- _Node s_l_blockNode(int indent, int ctx) => or([
+ Node s_l_blockNode(int indent, int ctx) => or([
() => s_l_blockInBlock(indent, ctx),
() => s_l_flowInBlock(indent)
]);
// 197
- _Node s_l_flowInBlock(int indent) => transaction(() {
+ Node s_l_flowInBlock(int indent) => transaction(() {
if (!truth(s_separate(indent + 1, FLOW_OUT))) return null;
var node = ns_flowNode(indent + 1, FLOW_OUT);
if (!truth(node)) return null;
@@ -1741,13 +1747,13 @@ class _Parser {
});
// 198
- _Node s_l_blockInBlock(int indent, int ctx) => or([
+ Node s_l_blockInBlock(int indent, int ctx) => or([
() => s_l_blockScalar(indent, ctx),
() => s_l_blockCollection(indent, ctx)
]);
// 199
- _Node s_l_blockScalar(int indent, int ctx) => transaction(() {
+ Node s_l_blockScalar(int indent, int ctx) => transaction(() {
if (!truth(s_separate(indent + 1, ctx))) return null;
var props = transaction(() {
var innerProps = c_ns_properties(indent + 1, ctx);
@@ -1762,7 +1768,7 @@ class _Parser {
});
// 200
- _Node s_l_blockCollection(int indent, int ctx) => transaction(() {
+ Node s_l_blockCollection(int indent, int ctx) => transaction(() {
var props = transaction(() {
if (!truth(s_separate(indent + 1, ctx))) return null;
return c_ns_properties(indent + 1, ctx);
@@ -1796,7 +1802,7 @@ class _Parser {
// 206
bool c_forbidden() {
- if (!inBareDocument || !atStartOfLine) return false;
+ if (!_inBareDocument || !atStartOfLine) return false;
var forbidden = false;
transaction(() {
if (!truth(or([c_directivesEnd, c_documentEnd]))) return;
@@ -1808,17 +1814,17 @@ class _Parser {
}
// 207
- _Node l_bareDocument() {
+ Node l_bareDocument() {
try {
- inBareDocument = true;
+ _inBareDocument = true;
return s_l_blockNode(-1, BLOCK_IN);
} finally {
- inBareDocument = false;
+ _inBareDocument = false;
}
}
// 208
- _Node l_explicitDocument() {
+ Node l_explicitDocument() {
if (!truth(c_directivesEnd())) return null;
var doc = l_bareDocument();
if (truth(doc)) return doc;
@@ -1829,7 +1835,7 @@ class _Parser {
}
// 209
- _Node l_directiveDocument() {
+ Node l_directiveDocument() {
if (!truth(oneOrMore(l_directive))) return null;
var doc = l_explicitDocument();
if (doc != null) return doc;
@@ -1838,11 +1844,11 @@ class _Parser {
}
// 210
- _Node l_anyDocument() =>
+ Node l_anyDocument() =>
or([l_directiveDocument, l_explicitDocument, l_bareDocument]);
// 211
- List<_Node> l_yamlStream() {
+ List<Node> l_yamlStream() {
var docs = [];
zeroOrMore(l_documentPrefix);
var first = zeroOrOne(l_anyDocument);
@@ -1868,12 +1874,13 @@ class _Parser {
}
class SyntaxError extends YamlException {
- final int line;
- final int column;
+ final int _line;
+ final int _column;
- SyntaxError(this.line, this.column, String msg) : super(msg);
+ SyntaxError(this._line, this._column, String msg) : super(msg);
- String toString() => "Syntax error on line $line, column $column: $msg";
+ String toString() => "Syntax error on line $_line, column $_column: "
+ "${super.toString()}";
}
/// A pair of values.
@@ -1916,18 +1923,17 @@ class _Range {
/// expensive.
class _RangeMap<E> {
/// The ranges and their associated elements.
- final List<_Pair<_Range, E>> contents;
+ final List<_Pair<_Range, E>> _contents = <_Pair<_Range, E>>[];
- _RangeMap() : this.contents = <_Pair<_Range, E>>[];
+ _RangeMap();
/// Returns the value associated with the range in which [pos] lies, or null
/// if there is no such range. If there's more than one such range, the most
/// recently set one is used.
E operator[](int pos) {
// Iterate backwards through contents so the more recent range takes
- // precedence. TODO(nweiz): clean this up when issue 2804 is fixed.
- for (var i = contents.length - 1; i >= 0; i--) {
- var pair = contents[i];
+ // precedence.
+ for (var pair in _contents.reversed) {
if (pair.first.contains(pos)) return pair.last;
}
return null;
@@ -1935,5 +1941,5 @@ class _RangeMap<E> {
/// Associates [value] with [range].
operator[]=(_Range range, E value) =>
- contents.add(new _Pair<_Range, E>(range, value));
+ _contents.add(new _Pair<_Range, E>(range, value));
}
« no previous file with comments | « pkg/yaml/lib/src/model.dart ('k') | pkg/yaml/lib/src/utils.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698