Improved expression parsing