diff options
Diffstat (limited to 'examples/tutorial/syntax/Syntax.gf')
| -rw-r--r-- | examples/tutorial/syntax/Syntax.gf | 86 |
1 files changed, 26 insertions, 60 deletions
diff --git a/examples/tutorial/syntax/Syntax.gf b/examples/tutorial/syntax/Syntax.gf index 59ba7d770..e75f7dd0c 100644 --- a/examples/tutorial/syntax/Syntax.gf +++ b/examples/tutorial/syntax/Syntax.gf @@ -1,60 +1,26 @@ -abstract Syntax = { - - flags startcat=Phr ; - - cat - Phr ; -- any complete sentence e.g. "Is this pizza good?" - S ; -- declarative sentence e.g. "this pizza is good" - QS ; -- question sentence e.g. "is this pizza good" - NP ; -- noun phrase e.g. "this pizza" - IP ; -- interrogative phrase e.g "which pizza" - CN ; -- common noun phrase e.g. "very good pizza" - Det ; -- determiner e.g. "this" - AP ; -- adjectival phrase e.g. "very good" - AdA ; -- adadjective e.g. "very" - VP ; -- verb phrase e.g. "is good" - N ; -- noun e.g. "pizza" - A ; -- adjective e.g. "good" - V ; -- intransitive verb e.g. "boil" - V2 ; -- two-place verb e.g. "eat" - - fun - PhrS : S -> Phr ; - PhrQS : QS -> Phr ; - - PosVP, NegVP : NP -> VP -> S ; - QPosVP, QNegVP : NP -> VP -> QS ; - - IPPosVP, IPNegVP : IP -> VP -> QS ; - IPPosV2, IPNegV2 : IP -> NP -> V2 -> QS ; - - ComplV2 : V2 -> NP -> VP ; - ComplAP : AP -> VP ; - - DetCN : Det -> CN -> NP ; - - ModCN : AP -> CN -> CN ; - - AdAP : AdA -> AP -> AP ; - - WhichCN : CN -> IP ; - - UseN : N -> CN ; - UseA : A -> AP ; - UseV : V -> VP ; - - -- entries of the closed lexicon - - this_Det : Det ; - that_Det : Det ; - these_Det : Det ; - those_Det : Det ; - every_Det : Det ; - theSg_Det : Det ; - thePl_Det : Det ; - indef_Det : Det ; - plur_Det : Det ; - two_Det : Det ; - - very_AdA : AdA ; -} +interface Syntax = open Prelude, Grammar in { + +oper + mkPhr = overload { + mkPhr : S -> Phr + = PhrS ; + mkPhr : QS -> Phr + = PhrQS ; + } ; + + mkS = overload { + mkS : Pol -> NP -> VP -> S + = PredVP ; + mkS : NP -> VP -> S + = PredVP PPos ; + mkS : Pol -> NP -> V2 -> NP -> S + = \p,np,v,o -> PredVP p np (ComplV2 v o) ; + mkS : NP -> V2 -> NP -> S + = \np,v,o -> PredVP PPos np (ComplV2 v o) ; + mkS : Pol -> NP -> AP -> S + = \p,np,ap -> PredVP p np (ComplAP ap) ; + mkS : NP -> AP -> S + = \np,ap -> PredVP PPos np (ComplAP ap) ; + } ; + +}
\ No newline at end of file |
