Flexible data parser