mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 13:09:33 -06:00
semantics extended to questions
This commit is contained in:
@@ -61,6 +61,12 @@ data GAP =
|
||||
| GPrime
|
||||
deriving Show
|
||||
|
||||
data GAnswer =
|
||||
GNo
|
||||
| GValue GNP
|
||||
| GYes
|
||||
deriving Show
|
||||
|
||||
data GCN =
|
||||
GModCN GAP GCN
|
||||
| GNumber
|
||||
@@ -71,13 +77,30 @@ data GConj =
|
||||
| GOr
|
||||
deriving Show
|
||||
|
||||
newtype GListPN = GListPN [GPN] deriving Show
|
||||
|
||||
data GNP =
|
||||
GConjNP GConj GNP GNP
|
||||
| GEvery GCN
|
||||
| GMany GListPN
|
||||
| GNone GCN
|
||||
| GSome GCN
|
||||
| GUsePN GPN
|
||||
deriving Show
|
||||
|
||||
data GPN =
|
||||
GGCD GListPN
|
||||
| GProduct GListPN
|
||||
| GSum GListPN
|
||||
| GUseInt GInt
|
||||
deriving Show
|
||||
|
||||
data GQuestion =
|
||||
GQuestS GS
|
||||
| GWhatIs GPN
|
||||
| GWhichAre GCN GAP
|
||||
deriving Show
|
||||
|
||||
data GS =
|
||||
GConjS GConj GS GS
|
||||
| GPredAP GNP GAP
|
||||
@@ -97,6 +120,11 @@ instance Gf GAP where
|
||||
gf GOdd = DTr [] (AC (CId "Odd")) []
|
||||
gf GPrime = DTr [] (AC (CId "Prime")) []
|
||||
|
||||
instance Gf GAnswer where
|
||||
gf GNo = DTr [] (AC (CId "No")) []
|
||||
gf (GValue x1) = DTr [] (AC (CId "Value")) [gf x1]
|
||||
gf GYes = DTr [] (AC (CId "Yes")) []
|
||||
|
||||
instance Gf GCN where
|
||||
gf (GModCN x1 x2) = DTr [] (AC (CId "ModCN")) [gf x1, gf x2]
|
||||
gf GNumber = DTr [] (AC (CId "Number")) []
|
||||
@@ -105,12 +133,29 @@ instance Gf GConj where
|
||||
gf GAnd = DTr [] (AC (CId "And")) []
|
||||
gf GOr = DTr [] (AC (CId "Or")) []
|
||||
|
||||
instance Gf GListPN where
|
||||
gf (GListPN [x1,x2]) = DTr [] (AC (CId "BasePN")) [gf x1, gf x2]
|
||||
gf (GListPN (x:xs)) = DTr [] (AC (CId "ConsPN")) [gf x, gf (GListPN xs)]
|
||||
|
||||
instance Gf GNP where
|
||||
gf (GConjNP x1 x2 x3) = DTr [] (AC (CId "ConjNP")) [gf x1, gf x2, gf x3]
|
||||
gf (GEvery x1) = DTr [] (AC (CId "Every")) [gf x1]
|
||||
gf (GMany x1) = DTr [] (AC (CId "Many")) [gf x1]
|
||||
gf (GNone x1) = DTr [] (AC (CId "None")) [gf x1]
|
||||
gf (GSome x1) = DTr [] (AC (CId "Some")) [gf x1]
|
||||
gf (GUsePN x1) = DTr [] (AC (CId "UsePN")) [gf x1]
|
||||
|
||||
instance Gf GPN where
|
||||
gf (GGCD x1) = DTr [] (AC (CId "GCD")) [gf x1]
|
||||
gf (GProduct x1) = DTr [] (AC (CId "Product")) [gf x1]
|
||||
gf (GSum x1) = DTr [] (AC (CId "Sum")) [gf x1]
|
||||
gf (GUseInt x1) = DTr [] (AC (CId "UseInt")) [gf x1]
|
||||
|
||||
instance Gf GQuestion where
|
||||
gf (GQuestS x1) = DTr [] (AC (CId "QuestS")) [gf x1]
|
||||
gf (GWhatIs x1) = DTr [] (AC (CId "WhatIs")) [gf x1]
|
||||
gf (GWhichAre x1 x2) = DTr [] (AC (CId "WhichAre")) [gf x1, gf x2]
|
||||
|
||||
instance Gf GS where
|
||||
gf (GConjS x1 x2 x3) = DTr [] (AC (CId "ConjS")) [gf x1, gf x2, gf x3]
|
||||
gf (GPredAP x1 x2) = DTr [] (AC (CId "PredAP")) [gf x1, gf x2]
|
||||
@@ -135,6 +180,14 @@ instance Fg GAP where
|
||||
DTr [] (AC (CId "Prime")) [] -> GPrime
|
||||
_ -> error ("no AP " ++ show t)
|
||||
|
||||
instance Fg GAnswer where
|
||||
fg t =
|
||||
case t of
|
||||
DTr [] (AC (CId "No")) [] -> GNo
|
||||
DTr [] (AC (CId "Value")) [x1] -> GValue (fg x1)
|
||||
DTr [] (AC (CId "Yes")) [] -> GYes
|
||||
_ -> error ("no Answer " ++ show t)
|
||||
|
||||
instance Fg GCN where
|
||||
fg t =
|
||||
case t of
|
||||
@@ -149,15 +202,41 @@ instance Fg GConj where
|
||||
DTr [] (AC (CId "Or")) [] -> GOr
|
||||
_ -> error ("no Conj " ++ show t)
|
||||
|
||||
instance Fg GListPN where
|
||||
fg t =
|
||||
case t of
|
||||
DTr [] (AC (CId "BasePN")) [x1,x2] -> GListPN [fg x1, fg x2]
|
||||
DTr [] (AC (CId "ConsPN")) [x1,x2] -> let GListPN xs = fg x2 in GListPN (fg x1:xs)
|
||||
_ -> error ("no ListPN " ++ show t)
|
||||
|
||||
instance Fg GNP where
|
||||
fg t =
|
||||
case t of
|
||||
DTr [] (AC (CId "ConjNP")) [x1,x2,x3] -> GConjNP (fg x1) (fg x2) (fg x3)
|
||||
DTr [] (AC (CId "Every")) [x1] -> GEvery (fg x1)
|
||||
DTr [] (AC (CId "Many")) [x1] -> GMany (fg x1)
|
||||
DTr [] (AC (CId "None")) [x1] -> GNone (fg x1)
|
||||
DTr [] (AC (CId "Some")) [x1] -> GSome (fg x1)
|
||||
DTr [] (AC (CId "UseInt")) [x1] -> GUseInt (fg x1)
|
||||
DTr [] (AC (CId "UsePN")) [x1] -> GUsePN (fg x1)
|
||||
_ -> error ("no NP " ++ show t)
|
||||
|
||||
instance Fg GPN where
|
||||
fg t =
|
||||
case t of
|
||||
DTr [] (AC (CId "GCD")) [x1] -> GGCD (fg x1)
|
||||
DTr [] (AC (CId "Product")) [x1] -> GProduct (fg x1)
|
||||
DTr [] (AC (CId "Sum")) [x1] -> GSum (fg x1)
|
||||
DTr [] (AC (CId "UseInt")) [x1] -> GUseInt (fg x1)
|
||||
_ -> error ("no PN " ++ show t)
|
||||
|
||||
instance Fg GQuestion where
|
||||
fg t =
|
||||
case t of
|
||||
DTr [] (AC (CId "QuestS")) [x1] -> GQuestS (fg x1)
|
||||
DTr [] (AC (CId "WhatIs")) [x1] -> GWhatIs (fg x1)
|
||||
DTr [] (AC (CId "WhichAre")) [x1,x2] -> GWhichAre (fg x1) (fg x2)
|
||||
_ -> error ("no Question " ++ show t)
|
||||
|
||||
instance Fg GS where
|
||||
fg t =
|
||||
case t of
|
||||
|
||||
Reference in New Issue
Block a user