a script for cloning (Phrasebook) grammars

This commit is contained in:
aarne
2010-04-07 14:59:55 +00:00
parent 1f4f43748a
commit aeb0a5b7e0
7 changed files with 212 additions and 69 deletions

View File

@@ -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" ;
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" ;
Restaurant = mkPlace "restaurant" "in" ;
Bar = mkPlace "bar" "in" ;
Toilet = mkPlace "toilet" "in" ;
Museum = mkPlace "museum" "in" ;
Airport = mkPlace "airport" "at" ;
Station = mkPlace "station" "at" ;
Hospital = mkPlace "hospital" "in" ;
Bar = mkPlace "bar" "in" ;
Church = mkPlace "church" "in" ;
Cinema = mkPlace "cinema" "at" ;
Hospital = mkPlace "hospital" "in" ;
Hotel = mkPlace "hotel" "in" ;
Museum = mkPlace "museum" "in" ;
Park = mkPlace "park" "in" ;
Restaurant = mkPlace "restaurant" "in" ;
School = mkPlace "school" "at" ;
Shop = mkPlace "shop" "in" ;
Station = mkPlace "station" "at" ;
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 ;
ALike p item = mkCl p.name (mkV2 (mkV "like")) item ;
ASpeak p lang = mkCl p.name (mkV2 IrregEng.speak_V) lang ;
ALove p q = mkCl p.name (mkV2 (mkV "love")) q.name ;
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 ;
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 ;
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 ->