31 lines
703 B
Plaintext
31 lines
703 B
Plaintext
WHITESPACE = _{ " " | "\t" | "\n" | "\r" }
|
|
|
|
filters = { filter ~ ("," ~ filters)? }
|
|
filter = { filter_name ~ ("(" ~ options ~ ")")? }
|
|
filter_name = @{ ASCII_ALPHA ~ (ASCII_ALPHANUMERIC | "_")* }
|
|
|
|
options = { option ~ ("," ~ options)? }
|
|
option = { (option_name ~ "=")? ~ option_value }
|
|
option_name = @{ ASCII_ALPHA ~ (ASCII_ALPHANUMERIC | "_")* }
|
|
|
|
option_value = {
|
|
JSON_NUMBER |
|
|
JSON_STRING |
|
|
JSON_BOOLEAN
|
|
}
|
|
|
|
JSON_NUMBER = @{
|
|
("-")? ~
|
|
("0" | ASCII_NONZERO_DIGIT ~ ASCII_DIGIT*) ~
|
|
("." ~ ASCII_DIGIT*)? ~
|
|
(("e" | "E") ~ ("+" | "-")? ~ ASCII_DIGIT+)?
|
|
}
|
|
|
|
JSON_STRING = ${
|
|
"\"" ~
|
|
(("\\" ~ ANY) | (!("\"" | "\\") ~ ANY))* ~
|
|
"\""
|
|
}
|
|
|
|
JSON_BOOLEAN = ${ "true" | "false" }
|