parseSdlCdm

fnauto parseSdlCdm(Builder = CdmBuilder)(const(char)[] input, string source = "") @safe

Parse SDL text into a CDM document.

Produces a CdmDocument preserving comments, source locations, and formatting metadata for roundtrip fidelity.

Parameters

inputSDL text to parse.
sourceOptional source identifier (file path, URI).

Returns

A CdmDocument containing the parsed structure.

Throws

Exception on parse error.

Examples

auto doc = parseSdlCdm(`server host="localhost" port=8080`);
assert(doc.root.nodeName == "server");
assert(doc.root.getAttribute("host").as!string == "localhost");
fnauto parseSdlCdm(Builder = CdmBuilder)(File file) @safe

Parse SDL from an open file handle.

Reads from the handle's current position (works for pipes, stdin, and files whose path is no longer resolvable); the source name is taken from the handle.

Parameters

fileFile handle to read SDL content from.

Returns

Builder.ResultCdmDocument for CdmBuilder, var for VarBuilder.

Throws

Exception on I/O or parse error.
fnbool parseSdlCdm(out CdmDocument doc, const(char)[] input, out SdlError err, string source = "", SdlPolicy policy = SdlPolicy.init) @trusted

Non-throwing parse variant.

Parameters

docOutput document; valid only on success.
inputSDL source text.
errPopulated with line/column diagnostics on failure.
sourceSource name for diagnostics.
policyParsing policy.

Returns

true on success, false with err populated on failure.