22 lines
724 B
Plaintext
22 lines
724 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 ("." symbol)+;
|
|
key = key-form;
|
|
|
|
group-key-form:alias = "[" key-form "]";
|
|
group-key = (comment "\n")? group-key-form | group-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")*;
|