more operator support

* better operator lexing
ternary ?: operator