Can be used to create filter directly from expression of the form:
STR := NOT? CL ( || CL )*
CL := ST ( && ST )*
ST := TYPE NAME CMP VALUE
TYPE := {string, int, long, double, boolean}
CMP := ==, equals, <, >, <=, >=, !=.
NAME := the name of some property or field which will be accessed
VALUE := the string value (possibly converted) it should be compared to