Redesign symbol (etc.) parsing to work better and be much more robust