// Copyright (c) 2006-2008 by Leif Frenzel - see http://leiffrenzel.de
// This code is made available under the terms of the Eclipse Public License,
// version 1.0 (EPL). See http://www.eclipse.org/legal/epl-v10.html
package net.sf.eclipsefp.haskell.core.compiler;
/** Known Haskell implementation enumeration.
*
* @author Leif Frenzel
* @author Scott Michel (bscottm@ieee.org, modifications)
*/
public enum HsImplementationType {
GHC( "ghc", "--numeric-version", "--print-libdir" ); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
private final String exeCommand;
private final String versionOption;
private final String libDirOption;
/** Internal enumeration constructor
*
* @param exeCommand The command to execute (binary directory will be prepended)
* @param versionOption Option flag to query version
* @param libDirOption Option flag to query library directory(ies)
*/
private HsImplementationType( final String exeCommand,
final String versionOption,
final String libDirOption ) {
this.exeCommand = exeCommand;
this.versionOption = versionOption;
this.libDirOption = libDirOption;
}
/** Get the Haskell implementation's executable command string */
String getExecutableCommand() {
return exeCommand;
}
/** Get the Haskell implementation's version option string */
String getVersionOption() {
return versionOption;
}
/** Get the Haskell implementation's library directory query string */
String getLibDirOption() {
return libDirOption;
}
}