diff options
Diffstat (limited to 'src/GF/GFCC/AbsGFCC.hs')
| -rw-r--r-- | src/GF/GFCC/AbsGFCC.hs | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/src/GF/GFCC/AbsGFCC.hs b/src/GF/GFCC/AbsGFCC.hs new file mode 100644 index 000000000..b41f66d6f --- /dev/null +++ b/src/GF/GFCC/AbsGFCC.hs @@ -0,0 +1,83 @@ +module GF.GFCC.AbsGFCC where + +-- Haskell module generated by the BNF converter + +newtype CId = CId String deriving (Eq,Ord,Show) +data Grammar = + Grm CId [CId] Abstract [Concrete] + deriving (Eq,Ord,Show) + +data Abstract = + Abs [Flag] [FunDef] [CatDef] + deriving (Eq,Ord,Show) + +data Concrete = + Cnc CId [Flag] [LinDef] [LinDef] [LinDef] [LinDef] [LinDef] + deriving (Eq,Ord,Show) + +data Flag = + Flg CId String + deriving (Eq,Ord,Show) + +data CatDef = + Cat CId [Hypo] + deriving (Eq,Ord,Show) + +data FunDef = + Fun CId Type Exp + deriving (Eq,Ord,Show) + +data LinDef = + Lin CId Term + deriving (Eq,Ord,Show) + +data Type = + Typ [CId] CId + | DTyp [Hypo] CId [Exp] + deriving (Eq,Ord,Show) + +data Exp = + Tr Atom [Exp] + | DTr [CId] Atom [Exp] + | EEq [Equation] + deriving (Eq,Ord,Show) + +data Atom = + AC CId + | AS String + | AI Integer + | AF Double + | AM Integer + | AV CId + deriving (Eq,Ord,Show) + +data Term = + R [Term] + | P Term Term + | S [Term] + | K Tokn + | V Int --H + | C Int --H + | F CId + | FV [Term] + | W String Term + | TM + deriving (Eq,Ord,Show) + +data Tokn = + KS String + | KP [String] [Variant] + deriving (Eq,Ord,Show) + +data Variant = + Var [String] [String] + deriving (Eq,Ord,Show) + +data Hypo = + Hyp CId Type + deriving (Eq,Ord,Show) + +data Equation = + Equ [Exp] Exp + deriving (Eq,Ord,Show) + |
