Resolver.addImplicitResolver

Add an implicit scalar resolver.

If a scalar matches regexp and starts with any character in first, its _tag is set to tag. 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.

If a scalar is not resolved to anything, it is assigned the default YAML _tag for strings.

class Resolver
void
addImplicitResolver
pure @safe
(
string tag
,
Regex!char regexp
,
string first
)

Parameters

regexp
Type: Regex!char

Regular expression the scalar must match to have this _tag.

first
Type: string

String of possible starting characters of the scalar.

Examples

Resolve scalars starting with 'A' to !_tag :

1 import std.regex;
2 
3 import dyaml.all;
4 
5 void main()
6 {
7    auto loader = Loader("file.txt");
8    auto resolver = new Resolver();
9    resolver.addImplicitResolver("!tag", std.regex.regex("A.*"), "A");
10    loader.resolver = resolver;
11    
12    //Note that we have no constructor from tag "!tag", so we can't
13    //actually load anything that resolves to this tag.
14    //See Constructor API documentation and tutorial for more information.
15 
16    auto node = loader.load();
17 }

Meta