A machine for csv parsing