module GF.CFGM.AbsCFG where

-- Haskell module generated by the BNF converter

newtype Ident = Ident String deriving (Eq,Ord,Show)
newtype SingleQuoteString = SingleQuoteString String deriving (Eq,Ord,Show)
data Grammars =
   Grammars [Grammar]
  deriving (Eq,Ord,Show)

data Grammar =
   Grammar Ident [Flag] [Rule]
  deriving (Eq,Ord,Show)

data Flag =
   StartCat Category
  deriving (Eq,Ord,Show)

data Rule =
   Rule Fun Profiles Category [Symbol]
  deriving (Eq,Ord,Show)

data Fun =
   Cons Ident
 | Coerce
  deriving (Eq,Ord,Show)

data Profiles =
   Profiles [Profile]
  deriving (Eq,Ord,Show)

data Profile =
   UnifyProfile [Integer]
 | ConstProfile Ident
  deriving (Eq,Ord,Show)

data Symbol =
   CatS Category
 | TermS String
  deriving (Eq,Ord,Show)

data Category =
   Category SingleQuoteString
  deriving (Eq,Ord,Show)

