aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ext_depends/D-YAML/source/dyaml/parser.d
diff options
context:
space:
mode:
Diffstat (limited to 'src/ext_depends/D-YAML/source/dyaml/parser.d')
-rw-r--r--src/ext_depends/D-YAML/source/dyaml/parser.d51
1 files changed, 24 insertions, 27 deletions
diff --git a/src/ext_depends/D-YAML/source/dyaml/parser.d b/src/ext_depends/D-YAML/source/dyaml/parser.d
index befdfa4..cc2ea47 100644
--- a/src/ext_depends/D-YAML/source/dyaml/parser.d
+++ b/src/ext_depends/D-YAML/source/dyaml/parser.d
@@ -88,16 +88,6 @@ import dyaml.tagdirective;
*/
-/**
- * Marked exception thrown at parser errors.
- *
- * See_Also: MarkedYAMLException
- */
-class ParserException : MarkedYAMLException
-{
- mixin MarkedExceptionCtors;
-}
-
package:
/// Generates events from tokens provided by a Scanner.
///
@@ -173,6 +163,17 @@ final class Parser
ensureState();
}
+ /// Set file name.
+ ref inout(string) name() inout @safe return pure nothrow @nogc
+ {
+ return scanner_.name;
+ }
+ /// Get a mark from the current reader position
+ Mark mark() const @safe pure nothrow @nogc
+ {
+ return scanner_.mark;
+ }
+
private:
/// If current event is invalid, load the next valid one if possible.
void ensureState() @safe
@@ -508,9 +509,9 @@ final class Parser
}
const token = scanner_.front;
- throw new ParserException("While parsing a " ~ (block ? "block" : "flow") ~ " node",
- startMark, "expected node content, but found: "
- ~ token.idString, token.startMark);
+ throw new ParserException("While parsing a " ~ (block ? "block" : "flow")
+ ~ " node, expected node content, but found: " ~ token.idString,
+ token.startMark, "node started here", startMark);
}
/// Handle escape sequences in a double quoted scalar.
@@ -618,8 +619,8 @@ final class Parser
}
//handle must be in tagDirectives_
enforce(replacement !is null,
- new ParserException("While parsing a node", startMark,
- "found undefined tag handle: " ~ handle, tagMark));
+ new ParserException("While parsing a node, found undefined tag handle: "
+ ~ handle, tagMark, "node started here", startMark));
return replacement ~ suffix;
}
return suffix;
@@ -658,9 +659,8 @@ final class Parser
if(scanner_.front.id != TokenID.blockEnd)
{
const token = scanner_.front;
- throw new ParserException("While parsing a block collection", marks_.data.back,
- "expected block end, but found " ~ token.idString,
- token.startMark);
+ throw new ParserException("While parsing a block sequence, expected block end, but found: "
+ ~ token.idString, token.startMark, "sequence started here", marks_.data.back);
}
state_ = popState();
@@ -730,9 +730,8 @@ final class Parser
if(scanner_.front.id != TokenID.blockEnd)
{
const token = scanner_.front;
- throw new ParserException("While parsing a block mapping", marks_.data.back,
- "expected block end, but found: " ~ token.idString,
- token.startMark);
+ throw new ParserException("While parsing a block mapping, expected block end, but found: "
+ ~ token.idString, token.startMark, "mapping started here", marks_.data.back);
}
state_ = popState();
@@ -797,9 +796,8 @@ final class Parser
else
{
const token = scanner_.front;
- throw new ParserException("While parsing a flow sequence", marks_.data.back,
- "expected ',' or ']', but got: " ~
- token.idString, token.startMark);
+ throw new ParserException("While parsing a flow sequence, expected ',' or ']', but got: " ~
+ token.idString, token.startMark, "sequence started here", marks_.data.back);
}
}
@@ -912,9 +910,8 @@ final class Parser
else
{
const token = scanner_.front;
- throw new ParserException("While parsing a flow mapping", marks_.data.back,
- "expected ',' or '}', but got: " ~
- token.idString, token.startMark);
+ throw new ParserException("While parsing a flow mapping, expected ',' or '}', but got: "
+ ~ token.idString, token.startMark, "mapping started here", marks_.data.back);
}
}