diff options
Diffstat (limited to 'examples/bronzeage/BronzeageI.gf')
| -rw-r--r-- | examples/bronzeage/BronzeageI.gf | 91 |
1 files changed, 39 insertions, 52 deletions
diff --git a/examples/bronzeage/BronzeageI.gf b/examples/bronzeage/BronzeageI.gf index 8e4d7abee..86925f277 100644 --- a/examples/bronzeage/BronzeageI.gf +++ b/examples/bronzeage/BronzeageI.gf @@ -1,59 +1,46 @@ -incomplete concrete BronzeageI of Bronzeage = open Lang in { - - flags - optimize = all_subs ; --optimize = share_subs ; - unlexer = text ; lexer = text ; +incomplete concrete BronzeageI of Bronzeage = open Syntax in { lincat - Sent = {s : SForm => Str} ; MassCN = CN ; + Phr = Syntax.Phr ; + Imp = Syntax.Imp ; + Cl = Syntax.Cl ; + CN = Syntax.CN ; + MassCN = Syntax.CN ; lin - PhrPos sent = {s = sent.s ! SPos ++ "."} ; - PhrNeg sent = {s = sent.s ! SNeg ++ "."} ; - PhrQuest sent = {s = sent.s ! SQuest ++ "?"} ; - PhrImp imp = {s = (PhrUtt NoPConj (UttImpSg PPos imp) NoVoc).s ++ "!"} ; - PhrImpNeg imp = {s = (PhrUtt NoPConj (UttImpSg PNeg imp) NoVoc).s ++ "!"} ; + PhrPos = mkPhr ; + PhrNeg sent = mkPhr (mkS negativePol sent) ; + PhrQuest sent = mkPhr (mkQS sent) ; + PhrIAdv iadv sent = mkPhr (mkQS (mkQCl iadv sent)) ; + PhrImp = mkPhr ; + PhrImpNeg imp = mkPhr (mkUtt negativePol imp) ; - SentV v np = mkSent np (UseV v) ; - - SentV2 v x y = mkSent x (ComplSlash (SlashV2a v) y) ; - SentV2Mass v x y = mkSent x (ComplSlash (SlashV2a v) (massNP y)) ; - SentV3 v x y z = mkSent x (ComplSlash (Slash2V3 v y) z) ; - SentA a x = mkSent x (UseComp (CompAP (PositA a))) ; - SentNP a x = mkSent x (UseComp (CompNP a)) ; - - SentAdvV v np adv = mkSent np (AdvVP (UseV v) adv) ; - SentAdvV2 v x y adv = mkSent x (AdvVP (ComplSlash (SlashV2a v) y) adv) ; - - ImpV v = ImpVP (UseV v) ; - ImpV2 v x = ImpVP (ComplSlash (SlashV2a v) x) ; - - UsePron p = Lang.UsePron p ; - DetCN d n = Lang.DetCN d n ; - NumCN k cn = Lang.DetCN (DetArtCard (IndefArt) k) cn ; - - UseN n = Lang.UseN n ; - ModCN a cn = AdjCN (PositA a) cn ; - - UseMassN mn = Lang.UseN mn ; - ModMass a cn = AdjCN (PositA a) cn ; - - param - SForm = SPos | SNeg | SQuest ; - - oper - mkSent : NP -> VP -> Sent ; - mkSent np vp = - let cl = PredVP np vp - in { - s = table { - SPos => Predef.toStr S (UseCl Lang.TPres ASimul PPos cl) ; - SNeg => Predef.toStr S (UseCl Lang.TPres ASimul PNeg cl) ; - SQuest => Predef.toStr QS (UseQCl Lang.TPres ASimul PPos (QuestCl cl)) - } ; - lock_Sent = <> - } ; - - massNP : CN -> NP = MassNP ; + SentV v x = mkCl x v ; + + SentV2 v x y = mkCl x v y ; + SentV2Mass v x y = mkCl x v (mkNP y) ; + SentV3 v x y z = mkCl x v y z ; + SentA a x = mkCl x a ; + SentNP a x = mkCl x a ; + + SentAdvV v np adv = mkCl np (mkVP (mkVP v) adv) ; + SentAdvV2 v x y adv = mkCl x (mkVP (mkVP v y) adv) ; + + ImpV = mkImp ; + ImpV2 = mkImp ; + + DetCN = mkNP ; + NumCN = mkNP ; + + UseN = mkCN ; + ModCN = mkCN ; + + UseMassN = mkCN ; + ModMass = mkCN ; + + DefCN = mkNP the_Art ; + IndefCN = mkNP a_Art ; + PrepNP = mkAdv ; + on_Prep = Syntax.on_Prep ; } |
