Improved parser with operator precdence.