fix float tokenization of float types
add predicates: int?, string?, and float?
add tests for predicates