summaryrefslogtreecommitdiff
path: root/examples/phrasebook/WordsEng.gf
diff options
context:
space:
mode:
authoraarne <aarne@chalmers.se>2010-04-07 14:59:55 +0000
committeraarne <aarne@chalmers.se>2010-04-07 14:59:55 +0000
commitaeb0a5b7e073bec56365185beed3311cf65c65aa (patch)
tree4571bed3ec0c6248372cefe1583fb269687d08b2 /examples/phrasebook/WordsEng.gf
parent1f4f43748a681324b4335c43b4ca905bd025ef54 (diff)
a script for cloning (Phrasebook) grammars
Diffstat (limited to 'examples/phrasebook/WordsEng.gf')
-rw-r--r--examples/phrasebook/WordsEng.gf98
1 files changed, 63 insertions, 35 deletions
diff --git a/examples/phrasebook/WordsEng.gf b/examples/phrasebook/WordsEng.gf
index ab0d6ce99..8bc647264 100644
--- a/examples/phrasebook/WordsEng.gf
+++ b/examples/phrasebook/WordsEng.gf
@@ -2,72 +2,92 @@
concrete WordsEng of Words = SentencesEng **
open
- SyntaxEng, ParadigmsEng, (P = ParadigmsEng),
+ SyntaxEng, ParadigmsEng, (L = LexiconEng), (P = ParadigmsEng),
IrregEng, Prelude in {
lin
- Wine = mkCN (mkN "wine") ;
- Beer = mkCN (mkN "beer") ;
- Water = mkCN (mkN "water") ;
+ Apple = mkCN L.apple_N ;
+ Beer = mkCN L.beer_N ;
+ Bread = mkCN L.bread_N ;
+ Milk = mkCN L.milk_N ;
+ Salt = mkCN L.salt_N ;
+ Water = mkCN L.water_N ;
+ Wine = mkCN L.wine_N ;
Coffee = mkCN (mkN "coffee") ;
Tea = mkCN (mkN "tea") ;
-
Pizza = mkCN (mkN "pizza") ;
Cheese = mkCN (mkN "cheese") ;
- Fish = mkCN (mkN "fish" "fish") ;
+ Chicken = mkCN (mkN "chicken") ;
+ Meat = mkCN (mkN "meat") ;
+ Fish = mkCN L.fish_N ;
+
Fresh = mkA "fresh" ;
- Warm = mkA "warm" ;
+ Warm = L.warm_A ;
Expensive = mkA "expensive" ;
Delicious = mkA "delicious" ;
Boring = mkA "boring" ;
- Good = mkA "good" "better" "best" "well" ;
+ Good = L.good_A ;
+ Bad = L.bad_A ;
+ Cold = L.cold_A ;
+ Cheap = mkA "cheap" ;
+ Suspect = mkA "suspect" ;
- Restaurant = mkPlace "restaurant" "in" ;
+ Fresh = mkA "fresh" ;
+ Warm = L.warm_A ;
+ Expensive = mkA "expensive" ;
+ Delicious = mkA "delicious" ;
+ Boring = mkA "boring" ;
+ Good = L.good_A ;
+ Bad = L.bad_A ;
+ Cold = L.cold_A ;
+ Cheap = mkA "cheap" ;
+ Suspect = mkA "suspect" ;
+
+ Airport = mkPlace "airport" "at" ;
Bar = mkPlace "bar" "in" ;
- Toilet = mkPlace "toilet" "in" ;
+ Church = mkPlace "church" "in" ;
+ Cinema = mkPlace "cinema" "at" ;
+ Hospital = mkPlace "hospital" "in" ;
+ Hotel = mkPlace "hotel" "in" ;
Museum = mkPlace "museum" "in" ;
- Airport = mkPlace "airport" "at" ;
+ Park = mkPlace "park" "in" ;
+ Restaurant = mkPlace "restaurant" "in" ;
+ School = mkPlace "school" "at" ;
+ Shop = mkPlace "shop" "in" ;
Station = mkPlace "station" "at" ;
- Hospital = mkPlace "hospital" "in" ;
- Church = mkPlace "church" "in" ;
+ Theatre = mkPlace "theatre" "at" ;
+ Toilet = mkPlace "toilet" "in" ;
+ University = mkPlace "university" "at" ;
- Euro = mkCN (mkN "euro" "euros") ; -- to prevent euroes
+ DanishCrown = mkCN (mkA "Danish") (mkN "crown") ;
Dollar = mkCN (mkN "dollar") ;
+ Euro = mkCN (mkN "euro" "euros") ; -- to prevent euroes
Lei = mkCN (mkN "leu" "lei") ;
+ SwedishCrown = mkCN (mkA "Swedish") (mkN "crown") ;
+ Belgian = mkA "Belgian" ;
+ Belgium = mkNP (mkPN "Belgium") ;
English = mkNat "English" "England" ;
Finnish = mkNat "Finnish" "Finland" ;
+ Flemish = mkNP (mkPN "Flemish") ;
French = mkNat "French" "France" ;
Italian = mkNat "Italian" "Italy" ;
Romanian = mkNat "Romanian" "Romania" ;
Swedish = mkNat "Swedish" "Sweden" ;
- Belgian = mkA "Belgian" ;
- Flemish = mkNP (mkPN "Flemish") ;
- Belgium = mkNP (mkPN "Belgium") ;
-
- Monday = mkDay "Monday" ;
- Tuesday = mkDay "Tuesday" ;
- Wednesday = mkDay "Wednesday" ;
- Thursday = mkDay "Thursday" ;
- Friday = mkDay "Friday" ;
- Saturday = mkDay "Saturday" ;
- Sunday = mkDay "Sunday" ;
-
- AWant p obj = mkCl p.name (mkV2 (mkV "want")) obj ;
+ AHasName p name = mkCl (nameOf p) name ;
+ AHungry p = mkCl p.name (mkA "hungry") ;
+ AIll p = mkCl p.name (mkA "ill") ;
+ AKnow p = mkCl p.name IrregEng.know_V ;
ALike p item = mkCl p.name (mkV2 (mkV "like")) item ;
- ASpeak p lang = mkCl p.name (mkV2 IrregEng.speak_V) lang ;
+ ALive p co = mkCl p.name (mkVP (mkVP (mkV "live")) (SyntaxEng.mkAdv in_Prep co)) ;
ALove p q = mkCl p.name (mkV2 (mkV "love")) q.name ;
- AHungry p = mkCl p.name (mkA "hungry") ;
+ AScared p = mkCl p.name (mkA "scared") ;
+ ASpeak p lang = mkCl p.name (mkV2 IrregEng.speak_V) lang ;
AThirsty p = mkCl p.name (mkA "thirsty") ;
ATired p = mkCl p.name (mkA "tired") ;
- AScared p = mkCl p.name (mkA "scared") ;
- AIll p = mkCl p.name (mkA "ill") ;
AUnderstand p = mkCl p.name IrregEng.understand_V ;
- AKnow p = mkCl p.name IrregEng.know_V ;
+ AWant p obj = mkCl p.name (mkV2 (mkV "want")) obj ;
AWantGo p place = mkCl p.name want_VV (mkVP (mkVP IrregEng.go_V) place.to) ;
- AHasName p name = mkCl (nameOf p) name ;
- ALive p co =
- mkCl p.name (mkVP (mkVP (mkV "live")) (SyntaxEng.mkAdv in_Prep co)) ;
QWhatName p = mkQS (mkQCl whatSg_IP (mkVP (nameOf p))) ;
@@ -80,6 +100,14 @@ concrete WordsEng of Words = SentencesEng **
HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item IrregEng.cost_V)) ;
ItCost item price = mkCl item (mkV2 IrregEng.cost_V) price ;
+
+ Monday = mkDay "Monday" ;
+ Tuesday = mkDay "Tuesday" ;
+ Wednesday = mkDay "Wednesday" ;
+ Thursday = mkDay "Thursday" ;
+ Friday = mkDay "Friday" ;
+ Saturday = mkDay "Saturday" ;
+ Sunday = mkDay "Sunday" ;
oper
mkNat : Str -> Str -> {lang : NP ; prop : A ; country : NP} = \nat,co ->