treerack/keyval.treerack
2017-10-29 20:01:33 +01:00

21 lines
648 B
Plaintext

whitespace:ws = [ \b\f\r\t\v];
comment-line:alias = "#" [^\n]*;
comment = comment-line ("\n" comment-line)*;
quoted:alias:nows = "\"" ([^\\"] | "\\" .)* "\"";
word:alias:nows = ([^\\"\n=#.\[\] \b\f\r\t\v] | "\\" .)+;
symbol = word+ | quoted;
key-form:alias = symbol ("." symbol)*;
key = key-form;
group-key = (comment "\n")? "[" key-form "]";
value-chars:alias:nows = ([^\\"\n=# \b\f\r\t\v] | "\\" .)+;
value = value-chars+ | quoted;
key-val = (comment "\n")? (key | key? "=" value?) comment-line?;
entry:alias = group-key | key-val;
doc:root = (entry | comment-line | "\n")*;