summaryrefslogtreecommitdiff
path: root/src/GF/Canon/GFCC/AbsGFCC.hs
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2006-09-05 12:14:13 +0000
committeraarne <aarne@cs.chalmers.se>2006-09-05 12:14:13 +0000
commit8484cfab1b1d27ba7046798c2821c138e4f5fabf (patch)
treeb1b6e5660b736b190cd5b9bcf7aa59e1cb798a5f /src/GF/Canon/GFCC/AbsGFCC.hs
parent1807dc437960afd13adc17cce52c54992daa9570 (diff)
starting GFCC format
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)
+