forked from GitHub/gf-core
66 lines
992 B
Haskell
66 lines
992 B
Haskell
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
|
|
| AF Double
|
|
| AM
|
|
deriving (Eq,Ord,Show)
|
|
|
|
data Term =
|
|
R [Term]
|
|
| P Term Term
|
|
| S [Term]
|
|
| KS String
|
|
| KP [String] [Variant]
|
|
| V Int
|
|
| C Int
|
|
| F CId
|
|
| FV [Term]
|
|
| W String [String]
|
|
| RP Term Term
|
|
| TM
|
|
| L CId Term
|
|
| BV CId
|
|
deriving (Eq,Ord,Show)
|
|
|
|
data Variant =
|
|
Var [String] [String]
|
|
deriving (Eq,Ord,Show)
|