summaryrefslogtreecommitdiff
path: root/src/GF/GFCC/AbsGFCC.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/GF/GFCC/AbsGFCC.hs')
-rw-r--r--src/GF/GFCC/AbsGFCC.hs83
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)
+