Bump to 1.14.1
[platform/upstream/augeas.git] / tests / modules / pass_nested_sections.aug
1 module Pass_nested_sections =
2
3 let word = /[a-zA-Z0-9]+/
4 let ws = /[ \t]*/
5 let nl = /\n/
6
7 let eol = del (ws . nl) "\n"
8 let eq = del (ws . "=" . ws) "="
9 let lbr = del (ws . "{" . ws . nl) " {\n"
10 let rbr = del (ws . "}" . ws . nl) "}\n"
11 let indent = del ws ""
12
13 let entry = [ indent . key word . eq . store word . eol ]
14
15 let rec lns =
16   let sec = [ indent . key word . lbr . lns . rbr ] in
17   (sec | entry)+
18
19
20 test lns get "key = value\n" = { "key" = "value" }
21
22 test lns get "section {
23   key1 = v1
24   key2 = v2
25   section {
26     section {
27       key4 = v4
28     }
29   }
30   section {
31     key5 = v5
32   }
33 }\n" =
34   { "section"
35     { "key1" = "v1" }
36     { "key2" = "v2" }
37     { "section" { "section" { "key4" = "v4" } } }
38     { "section" { "key5" = "v5" } } }
39
40
41 test lns get "section {
42   section {
43     key2 = v2
44   }
45 }
46 section {
47   key3 = v3
48 }
49 " =
50   { "section"
51     { "section"
52       { "key2" = "v2" } } }
53   { "section"
54     { "key3" = "v3" } }