module ACE.Types.Syntax where
import Data.Text (Text)
import Prelude hiding (String)
data Specification =
Specification !SentenceCoord !(Maybe Specification)
deriving (Show,Eq)
data SentenceCoord =
SentenceCoord !SentenceCoord_1 !(Maybe SentenceCoord)
deriving (Show,Eq)
data SentenceCoord_1 =
SentenceCoord_1 !SentenceCoord_2 !(Maybe SentenceCoord_1)
deriving (Show,Eq)
data SentenceCoord_2 =
SentenceCoord_2 !SentenceCoord_3 !(Maybe SentenceCoord_2)
deriving (Show,Eq)
data SentenceCoord_3 =
SentenceCoord_3 !TopicalizedSentence !(Maybe SentenceCoord_3)
deriving (Show,Eq)
data TopicalizedSentence
= TopicalizedSentenceExistential !ExistentialTopic !(Maybe SentenceCoord)
| TopicalizedSentenceUniversal !UniversalTopic !SentenceCoord
| TopicalizedSentenceComposite !CompositeSentence
deriving (Show,Eq)
data UniversalTopic =
UniversalTopic !UniversalGlobalQuantor !N'
deriving (Show,Eq)
data CompositeSentence
= CompositeSentenceCond !ConditionalSentence
| CompositeSentenceNeg !NegatedSentence
| CompositeSentence !Sentence
deriving (Show,Eq)
data ConditionalSentence =
ConditionalSentence !SentenceCoord
!SentenceCoord
deriving (Show,Eq)
data NegatedSentence =
NegatedSentence !SentenceCoord
deriving (Show,Eq)
data Sentence =
Sentence !NPCoord !VPCoord
deriving (Show,Eq)
data ExistentialTopic =
ExistentialTopic !ExistentialGlobalQuantor
!NPCoord
deriving (Show,Eq)
data NPCoord
= NPCoordDistributed !DistributiveMarker !UnmarkedNPCoord
| NPCoordUnmarked !UnmarkedNPCoord
deriving (Show,Eq)
data UnmarkedNPCoord =
UnmarkedNPCoord !NP !(Maybe UnmarkedNPCoord)
deriving (Show,Eq)
data N' =
N' !(Maybe AdjectiveCoord)
!N
!(Maybe ApposCoord)
!(Maybe NPCoord)
!(Maybe RelativeClauseCoord)
deriving (Show,Eq)
data NP =
NP !Specifier !N'
deriving (Show,Eq)
data N =
N !Text
deriving (Show,Eq)
data PP =
PP !Preposition !NPCoord
deriving (Show,Eq)
data Preposition =
Preposition !Text
deriving (Show,Eq)
data ApposCoord =
ApposCoord !Apposition !(Maybe ApposCoord)
deriving (Show,Eq)
data Apposition
= AppositionVar !Variable
| AppositionQuote !Quotation
deriving (Show,Eq)
data Quotation =
Quotation !Text
deriving (Show,Eq)
data Variable =
Variable !Text
deriving (Show,Eq)
data RelativeClauseCoord =
RelativeClauseCoord !RelativeClause !(Maybe (Coord,RelativeClauseCoord))
deriving (Show,Eq)
data PossessiveNPCoord
= PossessiveNPCoordGen !GenitiveNPCoord
| PossessiveNPCoordPronoun !PossessivePronounCoord
deriving (Show,Eq)
data GenitiveNPCoord
= GenitiveNPCoord !GenitiveSpecifier !GenitiveN' !GenitiveTail
| GenitiveNPCoordName !ProperName !GenitiveTail
deriving (Show,Eq)
data ProperName =
ProperName !Text
deriving (Show,Eq)
data PossessivePronounCoord =
PossessivePronounCoord !PossessivePronoun
!(Maybe PossessivePronounCoord)
deriving (Show,Eq)
data GenitiveTail
= GenitiveTailSaxonTail !SaxonGenitiveTail
| GenitiveTailCoordtail !GenitiveCoordTail
deriving (Show,Eq)
data GenitiveCoordTail =
GenitiveCoordTail !GenitiveNPCoord
deriving (Show,Eq)
data SaxonGenitiveTail =
SaxonGenitiveTail !SaxonGenitiveMarker !(Maybe (GenitiveN',SaxonGenitiveTail))
deriving (Show,Eq)
data RelativeClause
= RelativeClauseThat !VPCoord
| RelativeClauseNP !NPCoord !VPCoord
| RelativeClauseThatNPVP !NPCoord !VPCoord
| RelativeClauseNPVP !NPCoord !NPCoord !VPCoord
| RelativeClausePP !PP !NPCoord !VPCoord
deriving (Show,Eq)
data VPCoord
= VPCoord' !VP !Coord !VPCoord
| VPCoordVP !VP
deriving (Show,Eq)
data GenitiveSpecifier
= GenitiveSpecifierD !Determiner
| GenitiveSpecifierPPC !PossessivePronounCoord
| GenitiveSpecifierN !Integer
deriving (Show,Eq)
data GenitiveN' =
GenitiveN' !(Maybe AdjectiveCoord)
!N
!(Maybe ApposCoord)
deriving (Show,Eq)
data VP
= VP !V'
| VPNeg !Copula !V'
deriving (Show,Eq)
data V' =
V' !(Maybe AdverbCoord) !ComplV ![VModifier]
deriving (Show,Eq)
data AdverbCoord =
AdverbCoord !Adverb !(Maybe AdverbCoord)
deriving (Show,Eq)
data ComplV
= ComplVIV !IntransitiveV
| ComplVPI !PhrasalIntransitiveV !PhrasalParticle
| ComplVTV !TransitiveV !Compl
| ComplVPV !PhrasalTransitiveV !PhrasalParticle !Compl
| ComplVPV' !PhrasalTransitiveV !Compl !PhrasalParticle
| ComplVDisV !DistransitiveV !Compl !Compl
| ComplVPDV !PhrasalDistransitiveV !Compl !PhrasalParticle !Compl
| ComplVCopula !Copula !CopulaCompl
deriving (Show,Eq)
data PhrasalTransitiveV =
PhrasalTransitiveV !Text
deriving (Show,Eq)
data PhrasalDistransitiveV =
PhrasalDistransitiveV !Text
deriving (Show,Eq)
data CopulaCompl
= CopulaComplAPC !APCoord
| CopulaComplNPC !NPCoord
| CopulaComplPP !PP
deriving (Show,Eq)
data APCoord
= APCoordAnd !APgrad !APCoord
| APCoord !APgrad
deriving (Show,Eq)
data APgrad
= APgradAPThan !AP !NPCoord
| APgradAP !AP
deriving (Show,Eq)
data AP
= APIntrans !IntransitiveAdjective
| APTrans !TransitiveAdjective !PP
deriving (Show,Eq)
data TransitiveAdjective =
TransitiveAdjective !Text
deriving (Show,Eq)
data Compl
= ComplNP !NPCoord
| ComplPP !PP
deriving (Show,Eq)
data PhrasalIntransitiveV =
PhrasalIntransitiveV !Text
deriving (Show,Eq)
data PhrasalParticle =
PhrasalParticle !Text
deriving (Show,Eq)
data IntransitiveV =
IntransitiveV !Text
deriving (Show,Eq)
data TransitiveV =
TransitiveV !Text
deriving (Show,Eq)
data DistransitiveV =
DistransitiveV !Text
deriving (Show,Eq)
data IntransitiveAdjective =
IntransitiveAdjective !Text
deriving (Show,Eq)
data VModifier
= VModifierVC !AdverbCoord
| VModifierPP !PP
| VModifierAVPP !AdverbialPP
deriving (Show,Eq)
data AdverbialPP =
AdverbialPP !Preposition !AdverbCoord
deriving (Show,Eq)
data Adverb =
Adverb !Text
deriving (Show,Eq)
data Specifier
= SpecifyDeterminer !Determiner
| SpecifyPossessive !PossessiveNPCoord
| SpecifyNumberP !NumberP
deriving (Show,Eq)
data AdjectiveCoord =
AdjectiveCoord !IntransitiveAdjective
!(Maybe AdjectiveCoord)
deriving (Show,Eq)
data NumberP =
NumberP !(Maybe GeneralizedQuantor) !Integer
deriving (Show,Eq)
data ExistentialGlobalQuantor =
ExistentialGlobalQuantor !Copula
deriving (Show,Eq)
data ExistentialGlobalQuestionQuantor =
ExistentialGlobalQuestionQuantor !Copula
deriving (Show,Eq)
data Aux
= Do
| Does
deriving (Show,Eq)
data Coord
= And
| Or
deriving (Show,Eq)
data Copula
= Is
| Are
deriving (Show,Eq)
data Determiner
= The
| A
| An
| Some
| No
| EveryEach
| All
| NotEvery
| NotEach
| NotAll
| Which
deriving (Show,Eq)
data DistributiveGlobalQuantor =
ForEachOf
deriving (Show,Eq)
data DistributiveMarker =
EachOf
deriving (Show,Eq)
data GeneralizedQuantor
= AtMost
| AtLeast
| MoreThan
| LessThan
| NotMoreThan
| NotLessThan
deriving (Show,Eq)
data PossessivePronoun
= His
| Her
| HisHer
| Its
| Their
| HisHerOwn
| ItsOwn
| TheirOwn
| Whose
deriving (Show,Eq)
data Pronoun
= It
| HeShe
| Himher
| They
| Them
| Itself
| HimHerSelf
| Themselves
| SomeoneSomebody
| Something
| NoOneNobody
| NoThing
| EveryoneEverybody
| Everything
| NotEveryoneEverybody
| NotEverything
| WhatWho
| Whom
| WhichWho
deriving (Show,Eq)
data SaxonGenitiveMarker
= Apostrophe
| ApostropheS
deriving (Show,Eq)
data UniversalGlobalQuantor
= ForEvery
| ForEach
| ForAll
deriving (Show,Eq)