summaryrefslogtreecommitdiff
path: root/examples/bronzeage/BronzeageI.gf
diff options
context:
space:
mode:
Diffstat (limited to 'examples/bronzeage/BronzeageI.gf')
-rw-r--r--examples/bronzeage/BronzeageI.gf91
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 ;
}