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.

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

Parameters

regexp Regex!char

Regular expression the scalar must match to have this tag.

first string

String of possible starting characters of the scalar.

Examples

Resolve scalars starting with 'A' to !tag

import std.file : write;
import std.regex : regex;
import dyaml.loader : Loader;
import dyaml.resolver : Resolver;

write("example.yaml", "A");

auto loader = Loader.fromFile("example.yaml");
loader.resolver.addImplicitResolver("!tag", regex("A.*"), "A");

auto node = loader.load();
assert(node.tag == "!tag");

Meta