mirror of
https://github.com/euzu/tuliprox.git
synced 2026-10-03 14:32:08 +02:00
19 lines
501 B
Plaintext
19 lines
501 B
Plaintext
WHITESPACE = _{ " " | "\t" }
|
|
field = { ^"group" | ^"title" | ^"name" | ^"url" }
|
|
and = { ^"and" }
|
|
or = { ^"or" }
|
|
not = { ^"not" }
|
|
regexp = @{ "\"" ~ ( "\\\"" | (!"\"" ~ ANY) )* ~ "\"" }
|
|
comparison_value = _{ regexp }
|
|
comparison = { field ~ "~" ~ comparison_value }
|
|
bool_op = { and | or}
|
|
expr_group = { "(" ~ expr ~ ")" }
|
|
expr = {
|
|
comparison ~ (bool_op ~ expr)*
|
|
| expr_group ~ (bool_op ~ expr)*
|
|
| not ~ expr ~ (bool_op ~ expr)*
|
|
}
|
|
stmt = { expr ~ (bool_op ~ expr)* }
|
|
main = _{ SOI ~ stmt ~ EOI }
|
|
|