Синтаксис:
filter ::= start
start ::= boolExp
boolExp ::= orExp
orExp ::= andExp [ ( '|' | 'or' ) boolExp ]
andExp ::= notExp [ ( '&' | 'and' ) boolExp ]
notExp ::= [ ( '!' | 'not' ) ]
( notExp2 )
notExp2 ::= group | compareExp
group ::= '(' boolExp ')'
comprareExp ::= value [ compareOp value ]
compareOp ::= '=='
| '!='
| '<>'
| '>='
| '<='
| '<'
| '>'
| 'mask'
| 'regex'
value ::= boolConst
| stringConst
| numConst
| field
stringConst ::=
numConst ::=
boolConst ::= 'true' | 'false'
field ::= id { '.' id }
id ::= ( letter | '_' ) { letter | digit | '_' }