141 lines
5.7 KiB
HTML
141 lines
5.7 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
|
|
"http://www.w3.org/TR/html4/strict.dtd">
|
|
|
|
<html lang='en'>
|
|
<head>
|
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" >
|
|
<title>dyaml.resolver - D:YAML 0.4 API documentation</title>
|
|
<link rel="stylesheet" type="text/css" href="css/style.css">
|
|
</head>
|
|
|
|
<body><div id="top">
|
|
<div id="header">
|
|
<img id="logo" alt="D:YAML logo" src="images/logo.png"><a id="main-heading" href="index.html">D:YAML 0.4 API documentation</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="navigation">
|
|
<div class="navblock">
|
|
<div id="toctop">
|
|
<ul><li><a href="../index.html">Documentation home</a></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<div class="navblock">
|
|
<ul><li><a href="index.html">Main page</a></li>
|
|
<li><a href="dyaml.constructor.html">dyaml.constructor</a></li>
|
|
<li><a href="dyaml.dumper.html">dyaml.dumper</a></li>
|
|
<li><a href="dyaml.encoding.html">dyaml.encoding</a></li>
|
|
<li><a href="dyaml.exception.html">dyaml.exception</a></li>
|
|
<li><a href="dyaml.linebreak.html">dyaml.linebreak</a></li>
|
|
<li><a href="dyaml.loader.html">dyaml.loader</a></li>
|
|
<li><a href="dyaml.node.html">dyaml.node</a></li>
|
|
<li><a href="dyaml.representer.html">dyaml.representer</a></li>
|
|
<li><a href="dyaml.resolver.html">dyaml.resolver</a></li>
|
|
<li><a href="dyaml.style.html">dyaml.style</a></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="content">
|
|
<h1>dyaml.resolver</h1>
|
|
<!-- Generated by Ddoc from dyaml/resolver.d -->
|
|
<p>Implements a class that resolves YAML tags. This can be used to implicitly
|
|
resolve tags for custom data types, removing the need to explicitly
|
|
specify tags in YAML. A tutorial can be found
|
|
<a href="../tutorials/custom_types.html">here</a>.
|
|
</p>
|
|
<p>Code based on <a href="http://www.pyyaml.org">PyYAML</a>.</p>
|
|
|
|
<dl><dt class="d_decl"><a name="Resolver"></a>class <a name="Resolver"></a><span class="ddoc_psymbol">Resolver</span>;
|
|
</dt>
|
|
<dd><p>Resolves YAML tags (data types).
|
|
</p>
|
|
<p>Can be used to implicitly resolve custom data types of scalar values.</p>
|
|
|
|
<dl><dt class="d_decl"><a name="Resolver.this"></a>@safe this(Flag!"useDefaultImplicitResolvers" <b>defaultImplicitResolvers</b> = Yes.useDefaultImplicitResolvers);
|
|
</dt>
|
|
<dd><p>Construct a Resolver.
|
|
</p>
|
|
<p>If you don't want to implicitly resolve default YAML tags/data types,
|
|
you can use <b>defaultImplicitResolvers</b> to disable default resolvers.
|
|
|
|
</p>
|
|
<b>Parameters:</b><div class="pbr"><table class=parms><tr><td valign=top>Flag!"useDefaultImplicitResolvers" <b>defaultImplicitResolvers</b></td>
|
|
<td valign=top>Use default YAML implicit resolvers?</td></tr>
|
|
</table></div>
|
|
|
|
</dd>
|
|
<dt class="d_decl"><a name="Resolver.addImplicitResolver"></a>pure @safe void <a name="addImplicitResolver"></a><span class="ddoc_psymbol">addImplicitResolver</span>(string <b>tag</b>, Regex!char <b>regexp</b>, string <b>first</b>);
|
|
</dt>
|
|
<dd><p>Add an implicit scalar resolver.
|
|
</p>
|
|
<p>If a scalar matches <b>regexp</b> and starts with any character in <b>first</b>,
|
|
its tag is set to <b>tag</b>. If it matches more than one resolver regexp
|
|
resolvers added first override ones added later. Default resolvers
|
|
override any user specified resolvers, but they can be disabled in
|
|
Resolver constructor.
|
|
<br>
|
|
|
|
If a scalar is not resolved to anything, it is assigned the default
|
|
YAML tag for strings.
|
|
|
|
</p>
|
|
<b>Parameters:</b><div class="pbr"><table class=parms><tr><td valign=top>string <b>tag</b></td>
|
|
<td valign=top>Tag to resolve to.</td></tr>
|
|
<tr><td valign=top>Regex!char <b>regexp</b></td>
|
|
<td valign=top>Regular expression the scalar must match to have this tag.</td></tr>
|
|
<tr><td valign=top>string <b>first</b></td>
|
|
<td valign=top>String of possible starting characters of the scalar.</td></tr>
|
|
</table></div>
|
|
<b>Examples:</b><div class="pbr">Resolve scalars starting with 'A' to !tag :
|
|
<pre class="d_code"><span class="d_keyword">import</span> std.regex;
|
|
|
|
<span class="d_keyword">import</span> dyaml.all;
|
|
|
|
<span class="d_keyword">void</span> main()
|
|
{
|
|
<span class="d_keyword">auto</span> loader = Loader(<span class="d_string">"file.txt"</span>);
|
|
<span class="d_keyword">auto</span> resolver = <span class="d_keyword">new</span> Resolver();
|
|
resolver.<span class="d_psymbol">addImplicitResolver</span>(<span class="d_string">"!tag"</span>, std.regex.regex(<span class="d_string">"A.*"</span>), <span class="d_string">"A"</span>);
|
|
loader.resolver = resolver;
|
|
|
|
<span class="d_comment">//Note that we have no constructor from tag "!tag", so we can't
|
|
</span> <span class="d_comment">//actually load anything that resolves to this tag.
|
|
</span> <span class="d_comment">//See Constructor API documentation and tutorial for more information.
|
|
</span>
|
|
<span class="d_keyword">auto</span> node = loader.load();
|
|
}
|
|
</pre>
|
|
</div>
|
|
|
|
</dd>
|
|
<dt class="d_decl"><a name="Resolver.defaultScalarTag"></a>package const pure nothrow @property @safe Tag <a name="defaultScalarTag"></a><span class="ddoc_psymbol">defaultScalarTag</span>();
|
|
</dt>
|
|
<dd><p>Return default scalar tag.</p>
|
|
|
|
</dd>
|
|
<dt class="d_decl"><a name="Resolver.defaultSequenceTag"></a>package const pure nothrow @property @safe Tag <a name="defaultSequenceTag"></a><span class="ddoc_psymbol">defaultSequenceTag</span>();
|
|
</dt>
|
|
<dd><p>Return default sequence tag.</p>
|
|
|
|
</dd>
|
|
<dt class="d_decl"><a name="Resolver.defaultMappingTag"></a>package const pure nothrow @property @safe Tag <a name="defaultMappingTag"></a><span class="ddoc_psymbol">defaultMappingTag</span>();
|
|
</dt>
|
|
<dd><p>Return default mapping tag.</p>
|
|
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
|
|
<div id="copyright">
|
|
Copyright © Ferdinand Majerech 2011. Based on <a href="http://www.pyyaml.org">PyYAML</a> by Kirill Simonov. |
|
|
Page generated by AutoDDoc and <a href="http://www.digitalmars.com/d/2.0/ddoc.html">Ddoc</a>.
|
|
</div>
|
|
|
|
</body>
|
|
</html>
|