Remove Gla and Gle from Gf test samples

This commit is contained in:
John J. Camilleri
2013-09-03 08:51:39 +02:00
parent 200473ba27
commit d6e3bcc875
6 changed files with 0 additions and 294 deletions

View File

@@ -1,12 +0,0 @@
resource CharactersGla = {
--Character classes
oper
vowel : pattern Str = #("a"|"e"|"i"|"o"|"u"|"<22>"|"<22>"|"<22>"|"<22>"|"<22>") ;
vowelCap : pattern Str = #("A"|"E"|"I"|"O"|"U"|"<22>"|"<22>"|"<22>"|"<22>"|"<22>") ;
consonant : pattern Str = #("b"|"c"|"d"|"f"|"g"|"h"|"j"|"k"|"l"|"m"|"n"|"p"|"q"|"r"|"s"|"t"|"v"|"w"|"x"|"z") ;
consonantCap : pattern Str = #("B"|"C"|"D"|"F"|"G"|"H"|"J"|"K"|"L"|"M"|"N"|"P"|"Q"|"R"|"S"|"T"|"V"|"W"|"X"|"Z") ;
broadVowel : pattern Str = #("a"|"o"|"u"|"<22>"|"<22>"|"<22>") ;
slenderVowel : pattern Str = #("e"|"i"|"<22>"|"<22>") ;
}

View File

@@ -1,12 +0,0 @@
resource CharactersGle = {
--Character classes
oper
vowel : pattern Str = #("a"|"e"|"i"|"o"|"u"|"<22>"|"<22>"|"<22>"|"<22>"|"<22>") ;
vowelCap : pattern Str = #("A"|"E"|"I"|"O"|"U"|"<22>"|"<22>"|"<22>"|"<22>"|"<22>") ;
consonant : pattern Str = #("b"|"c"|"d"|"f"|"g"|"h"|"j"|"k"|"l"|"m"|"n"|"p"|"q"|"r"|"s"|"t"|"v"|"w"|"x"|"z") ;
consonantCap : pattern Str = #("B"|"C"|"D"|"F"|"G"|"H"|"J"|"K"|"L"|"M"|"N"|"P"|"Q"|"R"|"S"|"T"|"V"|"W"|"X"|"Z") ;
broadVowel : pattern Str = #("a"|"o"|"u"|"<22>"|"<22>"|"<22>") ;
slenderVowel : pattern Str = #("e"|"i"|"<22>"|"<22>") ;
}

View File

@@ -1,66 +0,0 @@
concrete FoodsGla of Foods = open MutationsGla, CharactersGla, Prelude in {
param Gender = Masc|Fem ;
param Number = Sg|Pl ;
param Breadth = Broad|Slender|NoBreadth ;
param Beginning = Bcgmp|Other ;
lincat Comment = Str;
lin Pred item quality = "tha" ++ item ++ quality.s!Sg!Unmutated ;
lincat Item = Str;
lin
This kind = (addArticleSg kind) ++ "seo" ;
That kind = (addArticleSg kind) ++ "sin";
These kind = (addArticlePl kind) ++ "seo" ;
Those kind = (addArticlePl kind) ++ "sin" ;
oper addArticleSg : {s : Number => Mutation => Str; g : Gender} -> Str =
\kind -> case kind.g of { Masc => "an" ++ kind.s!Sg!PrefixT; Fem => "a'" ++ kind.s!Sg!Lenition1DNTLS } ;
oper addArticlePl : {s : Number => Mutation => Str; g : Gender} -> Str =
\kind -> "na" ++ kind.s!Pl!PrefixH ;
oper Noun : Type = {s : Number => Mutation => Str; g : Gender; pe : Breadth; beginning: Beginning; };
lincat Kind = Noun;
lin
Mod quality kind = {
s = table{
Sg => table{mutation => kind.s!Sg!mutation ++ case kind.g of {Masc => quality.s!Sg!Unmutated; Fem => quality.s!Sg!Lenition1} };
Pl => table{mutation => kind.s!Pl!mutation ++ case kind.pe of {Slender => quality.s!Pl!Lenition1; _ => quality.s!Pl!Unmutated} }
};
g = kind.g;
pe = kind.pe;
beginning = kind.beginning
} ;
Wine = makeNoun "f<>on" "f<>ontan" Masc ;
Cheese = makeNoun "c<>ise" "c<>isean" Masc ;
Fish = makeNoun "iasg" "<22>isg" Masc ;
Pizza = makeNoun "pizza" "pizzathan" Masc ;
oper makeNoun : Str -> Str -> Gender -> Noun = \sg,pl,g -> {
s = table{Sg => (mutate sg); Pl => (mutate pl)};
g = g;
pe = pe;
beginning = Bcgmp
}
where {
pe : Breadth = case pl of {
_ + v@(#broadVowel) + c@(#consonant*) + #consonant => Broad;
_ + v@(#slenderVowel) + c@(#consonant*) + #consonant => Slender;
_ => NoBreadth
}
};
oper Adjective : Type = {s : Number => Mutation => Str; sVery : Number => Str};
lincat Quality = Adjective;
lin
Very quality = {s=table{number => table{_ => quality.sVery!number}}; sVery=quality.sVery } ;
Fresh = makeAdjective "<22>r" "<22>ra" ;
Warm = makeAdjective "bl<62>th" "bl<62>tha" ;
Italian = makeAdjective "Eadailteach" "Eadailteach" ;
Expensive = makeAdjective "daor" "daora" ;
Delicious = makeAdjective "blasta" "blasta" ;
Boring = makeAdjective "leamh" "leamha" ;
oper makeAdjective : Str -> Str -> Adjective =
\sg,pl -> {
s=table{Sg => (mutate sg); Pl => (mutate pl)};
sVery=table{Sg => "gl<67>"++(lenition1dntls sg); Pl => "gl<67>"++(lenition1dntls pl)}
} ;
}

View File

@@ -1,59 +0,0 @@
concrete FoodsGle of Foods = open MutationsGle, CharactersGle in {
param Gender = Masc|Fem ;
param Number = Sg|Pl ;
param Breadth = Broad|Slender|NoBreadth ;
lincat Comment = Str;
lin Pred item quality = "t<>" ++ item ++ quality.s!Sg!Unmutated ;
lincat Item = Str;
lin
This kind = (addArticleSg kind) ++ "seo" ;
That kind = (addArticleSg kind) ++ "sin";
These kind = (addArticlePl kind) ++ "seo" ;
Those kind = (addArticlePl kind) ++ "sin" ;
oper addArticleSg : {s : Number => Mutation => Str; g : Gender} -> Str =
\kind -> "an" ++ case kind.g of { Masc => kind.s!Sg!PrefixT; Fem => kind.s!Sg!Lenition1DNTLS } ;
oper addArticlePl : {s : Number => Mutation => Str; g : Gender} -> Str =
\kind -> "na" ++ kind.s!Pl!PrefixH ;
lincat Kind = {s : Number => Mutation => Str; g : Gender; pe : Breadth} ;
lin
Mod quality kind = {
s = table{
Sg => table{mutation => kind.s!Sg!mutation ++ case kind.g of {Masc => quality.s!Sg!Unmutated; Fem => quality.s!Sg!Lenition1} };
Pl => table{mutation => kind.s!Pl!mutation ++ case kind.pe of {Slender => quality.s!Pl!Lenition1; _ => quality.s!Pl!Unmutated} }
};
g = kind.g;
pe = kind.pe
} ;
Wine = makeNoun "f<>on" "f<>onta" Masc ;
Cheese = makeNoun "c<>is" "c<>iseanna" Fem ;
Fish = makeNoun "iasc" "<22>isc" Masc ;
Pizza = makeNoun "p<>otsa" "p<>otsa<73>" Masc ;
oper makeNoun : Str -> Str -> Gender -> {s : Number => Mutation => Str; g : Gender; pe : Breadth} =
\sg,pl,g -> {
s = table{Sg => (mutate sg); Pl => (mutate pl)};
g = g;
pe = case pl of {
_ + v@(#broadVowel) + c@(#consonant*) + #consonant => Broad;
_ + v@(#slenderVowel) + c@(#consonant*) + #consonant => Slender;
_ => NoBreadth
}
} ;
lincat Quality = {s : Number => Mutation => Str; sVery : Number => Str} ;
lin
Very quality = {s=table{number => table{_ => quality.sVery!number}}; sVery=quality.sVery } ;
Fresh = makeAdjective "<22>r" "<22>ra" ;
Warm = makeAdjective "te" "te" ;
Italian = makeAdjective "Iod<6F>lach" "Iod<6F>lacha" ;
Expensive = makeAdjective "daor" "daora" ;
Delicious = makeAdjective "blasta" "blasta" ;
Boring = makeAdjective "leamh" "leamha" ;
oper makeAdjective : Str -> Str -> {s : Number => Mutation => Str; sVery : Number => Str} =
\sg,pl -> {
s=table{Sg => (mutate sg); Pl => (mutate pl)};
sVery=table{Sg => "an-"+(lenition1dntls sg); Pl => "an-"+(lenition1dntls pl)}
} ;
}

View File

@@ -1,53 +0,0 @@
resource MutationsGla = open CharactersGla in {
param Mutation = Unmutated|Lenition1|Lenition1DNTLS|Lenition2|PrefixT|PrefixH;
--Turns a string into a mutation table
oper mutate : (_ : Str) -> (Mutation => Str) = \str -> table {
Unmutated => str ;
Lenition1 => lenition1 str ;
Lenition1DNTLS => lenition1dntls str ;
Lenition2 => lenition2 str ;
PrefixT => prefixT str ;
PrefixH => prefixH str
};
--Performs lenition 1: inserts "h" if the word begins with a lenitable character
oper lenition1 : Str -> Str = \str -> case str of {
start@("p"|"b"|"m"|"f"|"t"|"d"|"c"|"g") + rest => start + "h" + rest ;
start@("P"|"B"|"M"|"F"|"T"|"D"|"C"|"G") + rest => start + "h" + rest ;
("s"|"S") + ("p"|"t"|"c") + _ => str ; --the sequences "sp", "st", "sc" are never mutated
start@("s"|"S") + rest => start + "h" + rest ;
_ => str
};
--Performs lenition 1 with dentals: same as lenition 1 but leaves "d", "t" and "s" unmutated
oper lenition1dntls : Str -> Str = \str -> case str of {
start@("p"|"b"|"m"|"f"|"c"|"g") + rest => start + "h" + rest ;
start@("P"|"B"|"M"|"F"|"C"|"G") + rest => start + "h" + rest ;
_ => str
};
--Performs lenition 2: same as lenition 1 with dentals but also changes "s" into "ts"
oper lenition2 : Str -> Str = \str -> case str of {
start@("p"|"b"|"m"|"f"|"c"|"g") + rest => start + "h" + rest ;
start@("P"|"B"|"M"|"F"|"C"|"G") + rest => start + "h" + rest ;
("s"|"S") + ("p"|"t"|"c") + _ => str ; --the sequences "sp", "st", "sc" are never mutated
start@("s"|"S") + rest => "t-" + start + rest ;
_ => str
};
--Prefixes a "t" to words beginning with a vowel
oper prefixT : Str -> Str = \str -> case str of {
start@(#vowel) + rest => "t-" + start + rest ;
start@(#vowelCap) + rest => "t-" + start + rest ;
_ => str
};
--Prefixes a "h" to words beginning with a vowel
oper prefixH : Str -> Str = \str -> case str of {
start@(#vowel) + rest => "h-" + start + rest ;
start@(#vowelCap) + rest => "h-" + start + rest ;
_ => str
};
}

View File

@@ -1,92 +0,0 @@
resource MutationsGle = open CharactersGle in {
param Mutation = Unmutated|Lenition1|Lenition1DNTLS|Lenition2|Eclipsis1|Eclipsis2|Eclipsis3|PrefixT|PrefixH;
--Turns a string into a mutation table
oper mutate : (_ : Str) -> (Mutation => Str) = \str -> table {
Unmutated => str ;
Lenition1 => lenition1 str ;
Lenition1DNTLS => lenition1dntls str ;
Lenition2 => lenition2 str ;
Eclipsis1 => eclipsis1 str ;
Eclipsis2 => eclipsis2 str ;
Eclipsis3 => eclipsis3 str ;
PrefixT => prefixT str ;
PrefixH => prefixH str
};
--Performs lenition 1: inserts "h" if the word begins with a lenitable character
oper lenition1 : Str -> Str = \str -> case str of {
start@("p"|"b"|"m"|"f"|"t"|"d"|"c"|"g") + rest => start + "h" + rest ;
start@("P"|"B"|"M"|"F"|"T"|"D"|"C"|"G") + rest => start + "h" + rest ;
("s"|"S") + ("p"|"t"|"c") + _ => str ; --the sequences "sp", "st", "sc" are never mutated
start@("s"|"S") + rest => start + "h" + rest ;
_ => str
};
--Performs lenition 1 with dentals: same as lenition 1 but leaves "d", "t" and "s" unmutated
oper lenition1dntls : Str -> Str = \str -> case str of {
start@("p"|"b"|"m"|"f"|"c"|"g") + rest => start + "h" + rest ;
start@("P"|"B"|"M"|"F"|"C"|"G") + rest => start + "h" + rest ;
_ => str
};
--Performs lenition 2: same as lenition 1 with dentals but also changes "s" into "ts"
oper lenition2 : Str -> Str = \str -> case str of {
start@("p"|"b"|"m"|"f"|"c"|"g") + rest => start + "h" + rest ;
start@("P"|"B"|"M"|"F"|"C"|"G") + rest => start + "h" + rest ;
("s"|"S") + ("p"|"t"|"c") + _ => str ; --the sequences "sp", "st", "sc" are never mutated
start@("s"|"S") + rest => "t" + start + rest ;
_ => str
};
--Performs eclisis 1: prefixes something to every word that begins with an ecliptable character
oper eclipsis1 : Str -> Str = \str -> case str of {
start@("p"|"P") + rest => "b" + start + rest ;
start@("b"|"B") + rest => "m" + start + rest ;
start@("f"|"F") + rest => "bh" + start + rest ;
start@("c"|"C") + rest => "g" + start + rest ;
start@("g"|"G") + rest => "n" + start + rest ;
start@("t"|"T") + rest => "d" + start + rest ;
start@("d"|"D") + rest => "n" + start + rest ;
start@(#vowel) + rest => "n-" + start + rest ;
start@(#vowelCap) + rest => "n" + start + rest ;
_ => str
};
--Performs eclipsis 2: same as eclipsis 1 but leaves "t", "d" and vowels unchanges
oper eclipsis2 : Str -> Str = \str -> case str of {
start@("p"|"P") + rest => "b" + start + rest ;
start@("b"|"B") + rest => "m" + start + rest ;
start@("f"|"F") + rest => "bh" + start + rest ;
start@("c"|"C") + rest => "g" + start + rest ;
start@("g"|"G") + rest => "n" + start + rest ;
_ => str
};
--Performs eclipsis 3: same as eclipsis 2 but also changes "s" to "ts"
eclipsis3 : Str -> Str = \str -> case str of {
start@("p"|"P") + rest => "b" + start + rest ;
start@("b"|"B") + rest => "m" + start + rest ;
start@("f"|"F") + rest => "bh" + start + rest ;
start@("c"|"C") + rest => "g" + start + rest ;
start@("g"|"G") + rest => "n" + start + rest ;
("s"|"S") + ("p"|"t"|"c") + _ => str ; --the sequences "sp", "st", "sc" are never mutated
start@("s"|"S") + rest => "t" + start + rest ;
_ => str
};
--Prefixes a "t" to words beginning with a vowel
oper prefixT : Str -> Str = \str -> case str of {
start@(#vowel) + rest => "t-" + start + rest ;
start@(#vowelCap) + rest => "t" + start + rest ;
_ => str
};
--Prefixes a "h" to words beginning with a vowel
oper prefixH : Str -> Str = \str -> case str of {
start@(#vowel) + rest => "h" + start + rest ;
start@(#vowelCap) + rest => "h" + start + rest ;
_ => str
};
}