From 02c40c589d7dc0d57d0c8ef110ab5f2fce6cbf04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kat=20March=C3=A1n?= Date: Sat, 11 Sep 2021 21:04:22 -0700 Subject: [PATCH] bump version to 1.0.0 and add example with type annotations --- README.md | 16 ++++++++++++++++ SPEC.md | 4 ++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index eafc1db..c64d31f 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,8 @@ Language](SCHEMA-SPEC.md) loosely based on JSON Schema. The language is based on [SDLang](https://sdlang.org), with a number of modifications and clarifications on its syntax and behavior. +The current version of the KDL spec is `1.0.0`. + ## Design and Discussion KDL is still extremely new, and discussion about the format should happen over @@ -181,6 +183,20 @@ mynode /-"commented" "not commented" /-key="value" /-{ } ``` +### Type Annotations + +KDL supports type annotations on both values and nodes. These can be +arbitrary, but can be used by individual implementations or use-cases to +constrain KDL's basic types. A number of type names are also reserved to have +specific meanings. + +```kdl +numbers (u8)10 (i32)20 myfloat=(f32)1.5 { + strings (uuid)"123e4567-e89b-12d3-a456-426614174000" (date)"2021-02-03" filter=(regex)r"$\d+" + (author)person name="Alex" +} +``` + ### More Details ```kdl diff --git a/SPEC.md b/SPEC.md index 026ff1f..acea2c1 100644 --- a/SPEC.md +++ b/SPEC.md @@ -3,7 +3,7 @@ This is the semi-formal specification for KDL, including the intended data model and the grammar. -This document describes KDL version `1.0.0-pre.0`. +This document describes KDL version `1.0.0`. ## Introduction @@ -253,7 +253,7 @@ IEEE 754-2008 decimal floating point numbers * `date-time`: ISO8601 date/time format. * `time`: "Time" section of ISO8601. * `date`: "Date" section of ISO8601. -* `duration`: ISO8601 duration format. +* `duration`: ISO8601 duration format. * `decimal`: IEEE 754-2008 decimal string format. * `currency`: ISO 4217 currency code. * `country-2`: ISO 3166-1 alpha-2 country code.