sdlang-d 0.10.3

Parse/Generate SDLang (Simple Declarative Language - cleaner than JSON/XML)

To use this package, run the following command in your project's root directory:

Manual usage
Put the following dependency into your project's dependences section:

SDLang-D Build Status

An SDLang (Simple Declarative Language) library for D, to read and write SDLang. Both a DOM and a Pull Parser are provided.

Officially supported compiler versions are shown in .travis.yml.

SDL is a data language like JSON, XML or YAML, except it's:

  • Less verbose than JSON and XML.
  • Type-aware.
  • Easier to learn and read than YAML.

This is what SDL looks like (some of these examples, and more, are from the original SDL site:

// A couple basic values
first "Joe"
last "Coder"

// Supports values, named attributes, and various data types
numbers 12 53 2 635
names "Sally" "Frank N. Stein"
pets chihuahua="small" dalmation="hyper" mastiff="big"

mixed 34.7f "Tim" somedate=2010/08/14

// Supports child tags
folder "myFiles" color="yellow" protection=on {
    folder "my images" {
        file "myHouse.jpg" color=true date=2005/11/05
        file "myCar.jpg" color=false date=2002/01/05
    folder "my documents" {
        document "resume.pdf"

Tags are of this form:

[tag name] [values] [attributes] [children]

Attributes are simply values with names.

Tag and attribute names can optionally include a namespace prefix (ie,

that an anonymous (ie, no name) tag must have at least one value.

* Tags are separated by either newline or semicolon.
* Whitespace and indentation is not significant (other than newlines).
* The line-continuation operator is ```\``` (backslash). This can be used
to split a tag across multiple lines.
* Line comments start with either ```#```, ```//``` or ```--```.
* Block comments start with ```/*``` and end with the first occurrence
of ```*/``` (ie, they do *not* nest).
* Values always come before the attributes.
* All the data types and syntax details are described in the
[Language Guide](
* Note that, unlike C-based languages, opening curly braces must be on the
*same* line, not the next line. [Why?](

For more details on the langauge, see the
[Language Guide](

Differences from original Java implementation

* License is zlib/libpng, not LGPL. (No source from the Java or Ruby
implementations was used or looked at. The libraries were *used* to
test compatibility, but the actual source code was not viewed.)
* [API]( is completely redesigned for D.
* Anonymous tags are named ```""``` (empty string) not ```"content"```.
* Dates with unknown or invalid time zones use a special type indicating
"unknown time zone" (```DateTimeFracUnknownZone```) instead of assuming GMT.


* [Language Guide](
* [How to use SDLang-D (Tutorial / DOM API Overview)](
* [Pull Parse SDLang](
* [API Reference](
* [Changelog](
* [SDLang Wiki](
* [SDLang-D FAQ](
* [SDLang Language FAQ](
* [Included tools and scripts](
* [License]( (zlib/libpng)
* [Old Official SDL Site]( [[mirror](]
  • Nick Sabalausky
libinputvisitor, taggedalgebraic
0.10.6 2020-Apr-12
0.10.5 2019-Feb-23
0.10.4 2018-Jul-16
0.10.3 2018-May-30
0.10.2 2018-Feb-13
Show all 20 versions
Download Stats:
  • 19 downloads today

  • 113 downloads this week

  • 427 downloads this month

  • 28028 downloads total

Short URL: