summaryrefslogtreecommitdiff
path: root/src/GF/Canon/GFCC/AbsGFCC.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/GF/Canon/GFCC/AbsGFCC.hs')
-rw-r--r--src/GF/Canon/GFCC/AbsGFCC.hs64
1 files changed, 64 insertions, 0 deletions
diff --git a/src/GF/Canon/GFCC/AbsGFCC.hs b/src/GF/Canon/GFCC/AbsGFCC.hs
new file mode 100644
index 000000000..bbc323d0f
--- /dev/null
+++ b/src/GF/Canon/GFCC/AbsGFCC.hs
@@ -0,0 +1,64 @@
+module GF.Canon.GFCC.AbsGFCC where
+
+-- Haskell module generated by the BNF converter
+
+newtype CId = CId String deriving (Eq,Ord,Show)
+data Grammar =
+ Grm Header Abstract [Concrete]
+ deriving (Eq,Ord,Show)
+
+data Header =
+ Hdr CId [CId]
+ deriving (Eq,Ord,Show)
+
+data Abstract =
+ Abs [AbsDef]
+ deriving (Eq,Ord,Show)
+
+data Concrete =
+ Cnc CId [CncDef]
+ deriving (Eq,Ord,Show)
+
+data AbsDef =
+ Fun CId Type Exp
+ deriving (Eq,Ord,Show)
+
+data CncDef =
+ Lin CId Term
+ deriving (Eq,Ord,Show)
+
+data Type =
+ Typ [CId] CId
+ deriving (Eq,Ord,Show)
+
+data Exp =
+ Tr Atom [Exp]
+ deriving (Eq,Ord,Show)
+
+data Atom =
+ AC CId
+ | AS String
+ | AI Integer
+ deriving (Eq,Ord,Show)
+
+data Term =
+ R [Term]
+ | P Term Term
+ | S [Term]
+ | K Tokn
+ | V Integer
+ | C Integer
+ | F CId
+ | FV [Term]
+ | W String Term
+ deriving (Eq,Ord,Show)
+
+data Tokn =
+ KS String
+ | KP [String] [Variant]
+ deriving (Eq,Ord,Show)
+
+data Variant =
+ Var [String] [String]
+ deriving (Eq,Ord,Show)
+