diff options
| author | krasimir <krasimir@chalmers.se> | 2010-07-07 10:12:08 +0000 |
|---|---|---|
| committer | krasimir <krasimir@chalmers.se> | 2010-07-07 10:12:08 +0000 |
| commit | c066721dd1b200eb7e22c8c242bf48a83e5fcc69 (patch) | |
| tree | f0eda3a37c33b2ea0f8d1524eb70328b36184322 /examples/tutorial/smart/SmartFre.gf | |
| parent | 2cd3523d0466f87bc50306ae27b5afb9040f5c87 (diff) | |
fix in example/tutorial/smart/SmartFre.gf to make the dependent types work nicely
Diffstat (limited to 'examples/tutorial/smart/SmartFre.gf')
| -rw-r--r-- | examples/tutorial/smart/SmartFre.gf | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/examples/tutorial/smart/SmartFre.gf b/examples/tutorial/smart/SmartFre.gf index 95b219b60..e756c07bd 100644 --- a/examples/tutorial/smart/SmartFre.gf +++ b/examples/tutorial/smart/SmartFre.gf @@ -19,6 +19,9 @@ lincat Action = {s : VForm => Str} ; Device = {s : Str ; g : Gender ; n : Number} ; Location = {s : Number => Str ; g : Gender} ; + Switchable = SS ; + Dimmable = SS ; + Statelike = SS ; lin UCommand c = c ; @@ -47,10 +50,10 @@ lin light = mkNoun "lampe" Fem ; fan = mkNoun "ventilateur" Masc ; - switchOn _ _ = mkVerb "allumer" "allumé" ; - switchOff _ _ = mkVerb "éteindre" "éteint" ; + switchOn _ proof = mkVerb proof.s "allumer" "allumé" ; + switchOff _ proof = mkVerb proof.s "éteindre" "éteint" ; - dim _ _ = mkVerb "baisser" "baissé" ; + dim _ proof = mkVerb proof.s "baisser" "baissé" ; kitchen = mkNoun "cuisine" Fem ; livingRoom = mkNoun "salon" Masc ; @@ -64,13 +67,13 @@ oper g = g } ; - mkVerb : (_,_ : Str) -> {s : VForm => Str} = \venir,venu -> { + mkVerb : (_,_,_ : Str) -> {s : VForm => Str} = \proof,venir,venu -> { s = table { - VInf => venir ; - VPart Masc Sg => venu ; - VPart Masc Pl => venu + "s" ; - VPart Fem Sg => venu + "e" ; - VPart Fem Pl => venu + "es" + VInf => proof++venir ; + VPart Masc Sg => proof++venu ; + VPart Masc Pl => proof++venu + "s" ; + VPart Fem Sg => proof++venu + "e" ; + VPart Fem Pl => proof++venu + "es" } } ; |
