diff --git a/docsite/site/content/reference/expressions.md b/docsite/site/content/reference/expressions.md index ff60193..8435f80 100644 --- a/docsite/site/content/reference/expressions.md +++ b/docsite/site/content/reference/expressions.md @@ -1,5 +1,5 @@ +++ -title = "UCG Expressions" +title = "Expressions" weight = 3 sort_by = "weight" in_search_index = true diff --git a/docsite/site/content/reference/grammar.md b/docsite/site/content/reference/grammar.md index 346ab4b..4369d4e 100644 --- a/docsite/site/content/reference/grammar.md +++ b/docsite/site/content/reference/grammar.md @@ -1,5 +1,5 @@ +++ -title = "UCG Formal Grammar" +title = "Formal Grammar" slug = "grammar" weight = 1 sort_by = "weight" diff --git a/docsite/site/content/reference/overview.md b/docsite/site/content/reference/overview.md new file mode 100644 index 0000000..781f876 --- /dev/null +++ b/docsite/site/content/reference/overview.md @@ -0,0 +1,30 @@ ++++ +title = "Overview" +slug = "overview" +weight = 0 +sort_by = "weight" +in_search_index = true ++++ + +UCG is an expression oriented functional language with immutability, +copy-on-write semantics and forward type inference. Everything in UCG is an +expression except for a few statements that introduce named bindings or +generate an output. + +UCG is purpose built for constructing configurations. Anything that is not +useful for that is excluded. All ucg output targets one of the compilation +conversion targets. + +UCG can import supported configuration formats and transform them before +outputting them into one of the compilation conversion targets. UCG also has +built in support test assertions in your configuration generation and +transformation logic. + +Among the possibilities this opens up are: + +* Slowly migrating existing configuration formats over to UCG +* Sharing common configuration values across static configurations +* Enforcing invariants in your configurations at build time +* Unit testing your configuration generation logic +* Converting one config format to another config format +* Dynammic querying of your configurations using the `ucg eval` command \ No newline at end of file diff --git a/docsite/site/content/reference/statements.md b/docsite/site/content/reference/statements.md index 30bfec5..07c3983 100644 --- a/docsite/site/content/reference/statements.md +++ b/docsite/site/content/reference/statements.md @@ -1,5 +1,5 @@ +++ -title = "UCG Statements" +title = "Statements" weight = 4 sort_by = "weight" in_search_index = true diff --git a/docsite/site/content/reference/types.md b/docsite/site/content/reference/types.md index ff663e1..1f1e63b 100644 --- a/docsite/site/content/reference/types.md +++ b/docsite/site/content/reference/types.md @@ -1,5 +1,5 @@ +++ -title = "UCG types" +title = "Types" weight = 2 sort_by = "weight" in_search_index = true @@ -50,7 +50,9 @@ Strings are any double quoted text. You can use the `\` to esacpe characters in ### NULL or the Empty type NULL is the empty type. It represents the absence of a value. It is represented by the -symbol `NULL`. +symbol `NULL`. The empty type is special in that any field regardless of type can be assigned +the `NULL` value and any field of NULL value can be assigned any type. This is most useful when +you need a module, tuple, or function to have fields or parameters that can be any type. ``` let empty = NULL; diff --git a/docsite/site/content/stdlib/functional.md b/docsite/site/content/stdlib/functional.md index 13571d5..e2b5a46 100644 --- a/docsite/site/content/stdlib/functional.md +++ b/docsite/site/content/stdlib/functional.md @@ -1,5 +1,5 @@ +++ -title = "UCG functional operations" +title = "Functional operations" weight = 5 sort_by = "weight" in_search_index = true diff --git a/docsite/site/content/stdlib/lists.md b/docsite/site/content/stdlib/lists.md index 2e8b97f..ed02de0 100644 --- a/docsite/site/content/stdlib/lists.md +++ b/docsite/site/content/stdlib/lists.md @@ -1,5 +1,5 @@ +++ -title = "UCG List Modules" +title = "List Operations" weight = 1 sort_by = "weight" in_search_index = true diff --git a/docsite/site/content/stdlib/schema.md b/docsite/site/content/stdlib/schema.md index 73ee1fa..da65ab9 100644 --- a/docsite/site/content/stdlib/schema.md +++ b/docsite/site/content/stdlib/schema.md @@ -1,5 +1,5 @@ +++ -title = "UCG Schema Modules" +title = "Schema Helpers" weight = 4 sort_by = "weight" in_search_index = true diff --git a/docsite/site/content/stdlib/testing.md b/docsite/site/content/stdlib/testing.md index ef60d88..e7b02d8 100644 --- a/docsite/site/content/stdlib/testing.md +++ b/docsite/site/content/stdlib/testing.md @@ -1,5 +1,5 @@ +++ -title = "UCG Testing Modules" +title = "Testing Helpers" weight = 3 sort_by = "weight" in_search_index = true diff --git a/docsite/site/content/stdlib/tuples.md b/docsite/site/content/stdlib/tuples.md index f03113b..df6bb36 100644 --- a/docsite/site/content/stdlib/tuples.md +++ b/docsite/site/content/stdlib/tuples.md @@ -1,5 +1,5 @@ +++ -title = "UCG Tuple Modules" +title = "Tuple Operations" weight = 2 sort_by = "weight" in_search_index = true