module BNFC.Options.Target where

import BNFC.Prelude

----------------------------------------------------------------------------

-- | Target languages
data TargetLanguage =
  TargetAgda | TargetC | TargetCpp | TargetCppNoStl
  | TargetHaskell | TargetLatex
  | TargetJava | TargetOCaml | TargetPygments
  | TargetTxt2Tags | TargetCheck
  deriving (TargetLanguage -> TargetLanguage -> Bool
(TargetLanguage -> TargetLanguage -> Bool)
-> (TargetLanguage -> TargetLanguage -> Bool) -> Eq TargetLanguage
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TargetLanguage -> TargetLanguage -> Bool
$c/= :: TargetLanguage -> TargetLanguage -> Bool
== :: TargetLanguage -> TargetLanguage -> Bool
$c== :: TargetLanguage -> TargetLanguage -> Bool
Eq, TargetLanguage
TargetLanguage -> TargetLanguage -> Bounded TargetLanguage
forall a. a -> a -> Bounded a
maxBound :: TargetLanguage
$cmaxBound :: TargetLanguage
minBound :: TargetLanguage
$cminBound :: TargetLanguage
Bounded, Int -> TargetLanguage
TargetLanguage -> Int
TargetLanguage -> [TargetLanguage]
TargetLanguage -> TargetLanguage
TargetLanguage -> TargetLanguage -> [TargetLanguage]
TargetLanguage
-> TargetLanguage -> TargetLanguage -> [TargetLanguage]
(TargetLanguage -> TargetLanguage)
-> (TargetLanguage -> TargetLanguage)
-> (Int -> TargetLanguage)
-> (TargetLanguage -> Int)
-> (TargetLanguage -> [TargetLanguage])
-> (TargetLanguage -> TargetLanguage -> [TargetLanguage])
-> (TargetLanguage -> TargetLanguage -> [TargetLanguage])
-> (TargetLanguage
    -> TargetLanguage -> TargetLanguage -> [TargetLanguage])
-> Enum TargetLanguage
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: TargetLanguage
-> TargetLanguage -> TargetLanguage -> [TargetLanguage]
$cenumFromThenTo :: TargetLanguage
-> TargetLanguage -> TargetLanguage -> [TargetLanguage]
enumFromTo :: TargetLanguage -> TargetLanguage -> [TargetLanguage]
$cenumFromTo :: TargetLanguage -> TargetLanguage -> [TargetLanguage]
enumFromThen :: TargetLanguage -> TargetLanguage -> [TargetLanguage]
$cenumFromThen :: TargetLanguage -> TargetLanguage -> [TargetLanguage]
enumFrom :: TargetLanguage -> [TargetLanguage]
$cenumFrom :: TargetLanguage -> [TargetLanguage]
fromEnum :: TargetLanguage -> Int
$cfromEnum :: TargetLanguage -> Int
toEnum :: Int -> TargetLanguage
$ctoEnum :: Int -> TargetLanguage
pred :: TargetLanguage -> TargetLanguage
$cpred :: TargetLanguage -> TargetLanguage
succ :: TargetLanguage -> TargetLanguage
$csucc :: TargetLanguage -> TargetLanguage
Enum, Eq TargetLanguage
Eq TargetLanguage
-> (TargetLanguage -> TargetLanguage -> Ordering)
-> (TargetLanguage -> TargetLanguage -> Bool)
-> (TargetLanguage -> TargetLanguage -> Bool)
-> (TargetLanguage -> TargetLanguage -> Bool)
-> (TargetLanguage -> TargetLanguage -> Bool)
-> (TargetLanguage -> TargetLanguage -> TargetLanguage)
-> (TargetLanguage -> TargetLanguage -> TargetLanguage)
-> Ord TargetLanguage
TargetLanguage -> TargetLanguage -> Bool
TargetLanguage -> TargetLanguage -> Ordering
TargetLanguage -> TargetLanguage -> TargetLanguage
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: TargetLanguage -> TargetLanguage -> TargetLanguage
$cmin :: TargetLanguage -> TargetLanguage -> TargetLanguage
max :: TargetLanguage -> TargetLanguage -> TargetLanguage
$cmax :: TargetLanguage -> TargetLanguage -> TargetLanguage
>= :: TargetLanguage -> TargetLanguage -> Bool
$c>= :: TargetLanguage -> TargetLanguage -> Bool
> :: TargetLanguage -> TargetLanguage -> Bool
$c> :: TargetLanguage -> TargetLanguage -> Bool
<= :: TargetLanguage -> TargetLanguage -> Bool
$c<= :: TargetLanguage -> TargetLanguage -> Bool
< :: TargetLanguage -> TargetLanguage -> Bool
$c< :: TargetLanguage -> TargetLanguage -> Bool
compare :: TargetLanguage -> TargetLanguage -> Ordering
$ccompare :: TargetLanguage -> TargetLanguage -> Ordering
$cp1Ord :: Eq TargetLanguage
Ord)

instance Show TargetLanguage where
  show :: TargetLanguage -> String
show TargetLanguage
TargetAgda        = String
"Agda"
  show TargetLanguage
TargetC           = String
"C"
  show TargetLanguage
TargetCpp         = String
"C++"
  show TargetLanguage
TargetCppNoStl    = String
"C++ (without STL)"
  show TargetLanguage
TargetHaskell     = String
"Haskell"
  show TargetLanguage
TargetLatex       = String
"Latex"
  show TargetLanguage
TargetJava        = String
"Java"
  show TargetLanguage
TargetOCaml       = String
"OCaml"
  show TargetLanguage
TargetPygments    = String
"Pygments"
  show TargetLanguage
TargetTxt2Tags    = String
"Txt2Tags"
  show TargetLanguage
TargetCheck       = String
"Check LBNF file"