/*
 * Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
 * for details. All rights reserved. Use of this source code is governed by a
 * BSD-style license that can be found in the LICENSE file.
 *
 * This file has been automatically generated. Please do not edit it manually.
 * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
 */
package org.dartlang.analysis.server.protocol;

/**
 * An enumeration of the kinds of executable files.
 *
 * @coverage dart.server.generated.types
 */
public class ExecutableKind {

  public static final String CLIENT = "CLIENT";

  public static final String EITHER = "EITHER";

  public static final String NOT_EXECUTABLE = "NOT_EXECUTABLE";

  public static final String SERVER = "SERVER";

}
