Fix parsing properly; -ve float defaults parse correctly

I noticed an error in my last fix - you couldn't use negative Floats in defaults, as the Parser was matching the wrong way and always picking them up as Ints.

I'm sorry about the patch - I've tried three times to make it smaller, but although local git reports about 10 lines of change every time, GitHub is somehow insisting the whitespace has changed.