mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-17 00:39:32 -06:00
83 lines
1.3 KiB
Haskell
83 lines
1.3 KiB
Haskell
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] [Flag] 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] [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 =
|
|
DTyp [Hypo] CId [Exp]
|
|
deriving (Eq,Ord,Show)
|
|
|
|
data 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
|
|
| RP Term 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)
|
|
|
|
data Hypo =
|
|
Hyp CId Type
|
|
deriving (Eq,Ord,Show)
|
|
|
|
data Equation =
|
|
Equ [Exp] Exp
|
|
deriving (Eq,Ord,Show)
|
|
|