LCONF: BASE EXAMPLE
LCONF-Example
LCONF BaseEXAMPLE with many comments and explanations
___SECTION :: BaseEXAMPLE
# Comment-Line: below Main `Key :: Value Pair` using an `Empty-KeyValuePair-ReplacementValue` "NOT-DEFINED"
# Transform Function is not used and set to None
key1value_pair ::
# Comment-Line: below is a `Key :: Value Pair` with an empty value string: which is skipped
key2value_pair ::
key3value_pair ::
key4value_pair :: True
key5value_pair :: False
key6value_pair :: None
# Comment-Line: Using a Transform Function and using an `Empty-KeyValuePair-ReplacementValue` "-94599.5"
# as default value an empty string is set
key7value_pair ::
key8value_pair :: true
# Comment-Line: Values can be most characters and also longer lines
key9value_pair :: different characters # \n * | , & @ https://translate.google.com/ translate ਅਨੁਵਾਦ 翻訳する μεταφράζω
# Comment-Line: below is a Main `Key-Value-Mapping`
. key10value_mapping
# Comment-Line: Key-Value-Mapping items: `Key :: Value Pair`
mapping10_key1 :: False
mapping10_key2 :: true
mapping10_key3 :: 123456
# Comment-Line: Key-Value-Mapping item: `Key :: Value-List`
- mapping10_key4_list :: 1,2
# Comment-Line: Key-Value-Mapping item: `Key-Value-List`
- mapping10_key5_list
1
2
# Comment-Line: Key-Value-Mapping item: `List-Of-Tuples`
- mapping10_key6_list |x|y|
1,3
2,6
# Comment-Line: Key-Value-Mapping item: `List-Of-Tuples`
- mapping10_key7_list |name|b|c|
Tom, 2.0, 3
Peter, 2.4, 5
# Comment-Line: below is a Main `Key-Value-Mapping`
. key11value_mapping
# Comment-Line: Key-Value-Mapping item: `Key :: Value Pair`
mapping11_key1 :: /home/examples/
# Comment-Line: Key-Value-Mapping item: an other nested `Key-Value-Mapping`
. mapping11_key2_mapping
# Comment-Line: nested Key-Value-Mapping item: `Key :: Value Pair`
mapping11_key2_nested_mapping_key1 :: 2014-05-08 13:39
# Comment-Line: nested Key-Value-Mapping item: `Repeated-Block-Identifier`
* mapping11_key2_nested_mapping_key2_block_identifier
# Comment-Line: `Block-Name1`
sky_blue_blk_name1
# Comment-Line: Block items: `Key :: Value Pairs`
# Using a Transform Function and using an `Empty-KeyValuePair-ReplacementValue` "0"
# as default value an empty string is set
blk_item_red ::
blk_item_green :: 206
blk_item_blue :: 235
# Comment-Line: nested Key-Value-Mapping item: `Key :: Value Pair`
mapping11_key2_nested_mapping_key3 :: car
# Comment-Line: nested Key-Value-Mapping item: `Key-Value-List`
- mapping11_key2_nested_mapping_key4_list
# Comment-Line: List item
value_list_item1
value_list_item2
# Comment-Line: below is a Main `Key-Value-List`
- key12list
# Comment-Line: List item
value_list_item1
value_list_item2
# Comment-Line: below is a Main `Key :: Value-List`
- key13value_pairlist :: 123,8945,278
# Comment-Line: below is a Main `List-Of-Tuples` with 4 items: |Color Name|Red|Green|Blue|
- key14list_of_color_tuples |Color Name|Red|Green|Blue|
# Comment-Line: `List-Of-Tuples` item lines (rows)
forestgreen, 34, 139, 34
brick, 156, 102, 31
# Comment-Line: below is a Main `Key :: Value-List` with an empty list: overwriting any defaults
- key15value_pairlist ::
# Comment-Line: below is a Main `Key-Value-List` with an empty list: overwriting any defaults
- key16value_pairlist
# Comment-Line: below is a Main `List-Of-Tuples` with an empty list: overwriting any defaults
- key17list_of_tuples |a|b|c|
# Comment-Line: below: `Repeated-Block-Identifier`
# this will loose the order of the `Repeated Block-Names` after parsing
# but any library must implement an option to loop over it in order as defined in the section
* RepeatedBlk1
# Comment-Line: BLK_OBJ1 (Block-Name) uses all 8 possible - defined items
BLK_OBJ1
# Comment-Line: below Block-Item `Key-Value-Mapping` with all 4 defined items
. MyKey1_mapping
blk_mapping_key1 :: some text
# Comment-Line: Using a default value: "9999.999" and Transform Function
# as well as using an `Empty-KeyValuePair-ReplacementValue` "-9999999999.99999999"
blk_mapping_key2 :: 12345.99
blk_mapping_key3 :: True
# Comment-Line: Block-Item `Key-Value-Mapping`: an other nested `Key-Value-Mapping`
. blk_mapping_key4
nested_mapping_key1 :: franz
# Comment-Line: Block-Item nested `Key-Value-Mapping` item: an other nested `Key-Value-Lists`
- interests
sport
reading
# Comment-Line: Block-Item: an other deep nested `Repeated-Block-Identifier`
* Nested Repeated Block Identifier
# Comment-Line: keys do not have to be a single word: below a multi words Block-Name
Nested Block Name1
block-item_key1 :: 12345.99
- block-item_key2_list :: False,True,True
# Comment-Line: block-item_key3_list: `List-Of-Tuples`
- block-item_key3_list |name|height_cm|weight_kg|
# Comment-Line: |name|height_cm|weight_kg|
Tim, 178, 86
John, 166, 67
MyKey2 :: 789.9
MyKey3 :: True
# Comment-Line: empty `Key :: Value Pair`
MyKey4 ::
- MyKey5list :: test1,test2
# Comment-Line: Block-Item `Key :: Value-List` with Empty List
- MyKey6list ::
# Comment-Line: Block-Item `Key :: Value-List`
- MyKey7list :: True,False,False,True
MyKey8 :: some text
# Comment-Line: BLK_OBJ2 (Block-Name)
BLK_OBJ2
# Comment-Line: below Block-Item `Key-Value-Mapping` with only some defined items
. MyKey1_mapping
blk_mapping_key1 :: some text
# Comment-Line: Using a default value: "9999.999" and Transform Function
# as well as using an `Empty-KeyValuePair-ReplacementValue` "-9999999999.99999999"
blk_mapping_key2 ::
blk_mapping_key3 :: False
# Comment-Line: Block-Item `Key-Value-Mapping`: an other nested `Key-Value-Mapping`
. blk_mapping_key4
nested_mapping_key1 :: julia
# Comment-Line: Block-Item nested `Key-Value-Mapping` item: an other nested `Key-Value-Lists`
- interests
golf
flowers
# Comment-Line: Block-Item: an other deep nested `Repeated-Block-Identifier`
* Nested Repeated Block Identifier
# Comment-Line: Block-Name: all values will use defaults
Nested Block Name1
# Comment-Line: Block-Name: and defining an empty list: block-item_key2_list
Nested Block Name2
- block-item_key2_list ::
# Comment-Line: block-item_key3_list: `List-Of-Tuples`: to define an empty list: skip any item lines
- block-item_key3_list |name|height_cm|weight_kg|
# Comment-Line: Block-Item `Key-Value-Lists`
- MyKey7list
True
False
True
BLK_OBJ3
# Comment-Line: below Block-Item empty `Key-Value-Mapping`: will use all defaults
# similar if it would not be defined at all
. MyKey1_mapping
# Comment-Line: `Key :: Value Pairs`
MyKey4 ::
- MyKey5list :: test1,test2
# Comment-Line: Repeated Block-Name: will be using all default values
# Note: nested Blocks are not having any default names: so the items are skipped
BLK_OBJ4
___END
(JSON - LCONF)
Json-Example
{
"first": "John",
"last": "Doe",
"age": 39,
"interests": [
"Reading",
"Mountain Biking",
"Hacking"
],
"registered": true,
"salary": 70000,
"sex": "M"
}
LCONF-Example
LCONF using Key-Value-List
___SECTION :: EXAMPLE 2 a
first :: John
last :: Doe
sex :: M
age :: 39
salary :: 70000
# Comment-Line: `Key-Value-List`
- interests
Reading
Mountain Biking
Hacking
registered :: True
___END
LCONF-Example
LCONF using Key :: Value-List
___SECTION :: EXAMPLE 2 b
first :: John
last :: Doe
sex :: M
age :: 39
salary :: 70000
# Comment-Line: `Key :: Value-List`
- interests :: Reading,Mountain Biking,Hacking
registered :: True
___END
(JSON - LCONF)
Json-Example
{
"first": "John",
"last": "Doe",
"sex": "M",
"age": 39,
"salary": 70000,
"favorites": {
"food": "Spaghetti",
"sport": "Soccer",
"color": "Blue"
},
"registered": true
}
LCONF-Example
LCONF using Key-Value-Mapping
___SECTION :: EXAMPLE 3
first :: John
last :: Doe
sex :: M
age :: 39
salary :: 70000
# Comment-Line: `Key-Value-Mapping`
. favorites
food :: Spaghetti
sport :: Soccer
color :: Blue
registered :: True
___END
(JSON - LCONF)
Json-Example
{
"registered_employees": 28594,
"Employee": {
"Person1": {
"first": "John",
"last": "Doe",
"sex": "M",
"age": "39",
"past_salary": {
"year2012": 45000,
"year2013": 62000
},
"emails": [
"<xaver@dot.com>",
"<xaver23@yahoo.com>"
]
}
},
"registered_customer": 28594,
"accounting": [
[
"2010",
38459845,
15835945,
3000945
],
[
"2011",
38459845,
15835945,
3000945
],
[
"2012",
28456849,
4846123,
2599901
],
[
"2013",
38459845,
15835945,
3000945
]
]
}
LCONF-Example
LCONF: using Repeated-Block Identifier and List-Of-Tuples
___SECTION :: EXAMPLE 4 a
registered_employees :: 28594
* Employee
Person1
first :: John
last :: Doe
sex :: M
age :: 39
. past_salary
year2012 :: 45000
year2013 :: 62000
- emails
<xaver@dot.com>
<xaver23@yahoo.com>
registered_customer :: 28594
- accounting |item1|item2|item3|item4|
2010,38459845,15835945,3000945
2011,38459845,15835945,3000945
2012,28456849,4846123,2599901
2013,38459845,15835945,3000945
___END
LCONF: using Key-Value-Mapping Identifier and List-Of-Tuples
___SECTION :: EXAMPLE 4 b
registered_employees :: 28594
. Employee
. Person1
first :: John
last :: Doe
sex :: M
age :: 39
. past_salary
year2012 :: 45000
year2013 :: 62000
- emails
<xaver@dot.com>
<xaver23@yahoo.com>
registered_customer :: 28594
- accounting |item1|item2|item3|item4|
2010,38459845,15835945,3000945
2011,38459845,15835945,3000945
2012,28456849,4846123,2599901
2013,38459845,15835945,3000945
___END
(JSON - LCONF)
Json-Example
{
"skills": [
{
"category": "PHP",
"tests": [
{
"score": 90,
"name": "One"
},
{
"score": 96,
"name": "Two"
}
]
},
{
"category": "Node.js",
"tests": [
{
"score": 97,
"name": "One"
},
{
"score": 93,
"name": "Two"
}
]
}
]
}
Note
a json structure like above needs some small changes to work in LCONF
Reason: List items may not be an other mapping (dict/dictionary) or list: Restrictions Item Types in Lists
Rewrite of the json example for LCONF
LCONF-Example
LCONF: using Repeated-Block and renaming the item values to support 2 groups
___SECTION :: EXAMPLE 5 a
# Repeated-Block-Identifier
* categories
# using `Block-Names`
PHP
test1_name :: One
test1_score :: 90
tests2_name :: Two
tests2_score :: 96
Node.js
test1_name :: One
test1_score :: 97
tests2_name :: Two
tests2_score :: 93
___END
LCONF-Example
LCONF: using Repeated-Block and Key-Value-Mapping
___SECTION :: EXAMPLE 5 b
# Repeated-Block-Identifier
* categories
# using `Block-Names`
PHP
# Key-Value-Mapping
. test1
name :: One
score :: 90
. test2
name :: Two
score :: 96
Node.js
# Key-Value-Mapping
. test1
name :: One
score :: 97
. test2
name :: Two
score :: 93
___END