module GF.Command.AbsGFShell where

-- Haskell module generated by the BNF converter

newtype Ident = Ident String deriving (Eq,Ord,Show)
data CommandLine =
   CLine [Pipe]
 | CEmpty
  deriving (Eq,Ord,Show)

data Pipe =
   PComm [Command]
  deriving (Eq,Ord,Show)

data Command =
   Comm Ident [Option] Argument
 | CNoarg Ident [Option]
  deriving (Eq,Ord,Show)

data Option =
   OOpt Ident
 | OFlag Ident Value
  deriving (Eq,Ord,Show)

data Value =
   VId Ident
 | VInt Integer
  deriving (Eq,Ord,Show)

data Argument =
   ATree Tree
  deriving (Eq,Ord,Show)

data Tree =
   TApp Ident [Tree]
 | TAbs [Ident] Tree
 | TId Ident
 | TInt Integer
 | TStr String
 | TFloat Double
  deriving (Eq,Ord,Show)

