# File lib/parslet/atoms/alternative.rb, line 33
  def try(source, context, consume_all)
    errors = alternatives.map { |a|
      success, value = result = a.apply(source, context, consume_all)
      return result if success
      
      # Aggregate all errors
      value
    }
    
    # If we reach this point, all alternatives have failed. 
    context.err(self, source, @error_msg, errors)
  end