mirror of
https://github.com/euzu/tuliprox.git
synced 2026-10-14 11:52:24 +02:00
20 lines
608 B
Plaintext
20 lines
608 B
Plaintext
field = { "Group" | "Title" | "Name" | "Url" }
|
|
and = {"AND" | "and"}
|
|
or = {"OR" | "or"}
|
|
not = { "NOT" | "not" }
|
|
lparen = { "(" }
|
|
rparen = { ")" }
|
|
regexp_op = _{ "~" }
|
|
regexp = @{ "\"" ~ ( "\\\"" | (!"\"" ~ ANY) )* ~ "\"" }
|
|
value = _{ regexp }
|
|
|
|
operator = _{ regexp_op }
|
|
match_comparison = _{ field ~ operator ~ value }
|
|
predicate = _{ match_comparison }
|
|
bool_test = _{ predicate | lparen ~ condition ~ rparen }
|
|
bool_factor = _{ not? ~ bool_test }
|
|
bool_term = _{ bool_factor ~ (and ~ bool_factor)* }
|
|
condition = _{ bool_term ~ (or ~ bool_term)* }
|
|
main = _{ SOI ~ condition ~ EOI }
|
|
WHITESPACE = _{ " " | "\t" }
|