Add boolean types to parser; fix number parsing for negatives