treerack/examples/keyval.treerack

21 lines
648 B
Plaintext
Raw Permalink Normal View History

2017-10-29 00:21:32 +02:00
whitespace:ws = [ \b\f\r\t\v];
2017-06-25 17:51:08 +02:00
comment-line:alias = "#" [^\n]*;
2017-10-29 00:21:32 +02:00
comment = comment-line ("\n" comment-line)*;
2017-06-25 17:51:08 +02:00
2017-10-29 00:21:32 +02:00
quoted:alias:nows = "\"" ([^\\"] | "\\" .)* "\"";
word:alias:nows = ([^\\"\n=#.\[\] \b\f\r\t\v] | "\\" .)+;
symbol = word+ | quoted;
2017-06-25 17:51:08 +02:00
2017-10-29 00:49:03 +02:00
key-form:alias = symbol ("." symbol)*;
2017-06-25 17:51:08 +02:00
key = key-form;
2017-10-29 00:49:03 +02:00
group-key = (comment "\n")? "[" key-form "]";
2017-06-25 17:51:08 +02:00
2017-10-29 00:21:32 +02:00
value-chars:alias:nows = ([^\\"\n=# \b\f\r\t\v] | "\\" .)+;
value = value-chars+ | quoted;
2017-06-25 17:51:08 +02:00
2017-10-29 00:21:32 +02:00
key-val = (comment "\n")? (key | key? "=" value?) comment-line?;
entry:alias = group-key | key-val;
doc:root = (entry | comment-line | "\n")*;