... -> pl_sb_prep_dual_compound
This commit is contained in:
parent
c209287abd
commit
8c86b187aa
1 changed files with 631 additions and 11 deletions
642
src/inflect.rs
642
src/inflect.rs
|
|
@ -60,7 +60,7 @@ pub fn make_pl_si_lists(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn pl_sb_irregular_s() -> HashMap<&'static str, &'static str> {
|
fn pl_sb_irregular_s() -> HashMap<String, String> {
|
||||||
return vec![
|
return vec![
|
||||||
("corpus", "corpuses|corpora"),
|
("corpus", "corpuses|corpora"),
|
||||||
("opus", "opuses|opera"),
|
("opus", "opuses|opera"),
|
||||||
|
|
@ -71,12 +71,13 @@ fn pl_sb_irregular_s() -> HashMap<&'static str, &'static str> {
|
||||||
("atlas", "atlases|atlantes"),
|
("atlas", "atlases|atlantes"),
|
||||||
("yes", "yeses")
|
("yes", "yeses")
|
||||||
]
|
]
|
||||||
.into_iter()
|
.iter()
|
||||||
|
.map(|(k, v)| (k.to_string(), v.to_string()))
|
||||||
.collect();
|
.collect();
|
||||||
}
|
}
|
||||||
|
|
||||||
fn pl_sb_irregular() -> HashMap<&'static str, &'static str> {
|
fn pl_sb_irregular() -> HashMap<String, String> {
|
||||||
let mut pl_sb_irregular: HashMap<&str, &str> = vec![
|
let mut pl_sb_irregular: HashMap<String, String> = vec![
|
||||||
("child", "children"),
|
("child", "children"),
|
||||||
("chili", "chilis|chilies"),
|
("chili", "chilis|chilies"),
|
||||||
("brother", "brothers|brethren"),
|
("brother", "brothers|brethren"),
|
||||||
|
|
@ -111,7 +112,8 @@ fn pl_sb_irregular() -> HashMap<&'static str, &'static str> {
|
||||||
("rom", "roma"),
|
("rom", "roma"),
|
||||||
("carmen", "carmina")
|
("carmen", "carmina")
|
||||||
]
|
]
|
||||||
.into_iter()
|
.iter()
|
||||||
|
.map(|(k, v)| (k.to_string(), v.to_string()))
|
||||||
.collect();
|
.collect();
|
||||||
pl_sb_irregular.extend(pl_sb_irregular_s());
|
pl_sb_irregular.extend(pl_sb_irregular_s());
|
||||||
pl_sb_irregular
|
pl_sb_irregular
|
||||||
|
|
@ -127,22 +129,23 @@ fn pl_sb_irregular_compound() -> HashMap<&'static str, &'static str> {
|
||||||
return vec![("prima donna", "prima donnas|prime donne")].into_iter().collect();
|
return vec![("prima donna", "prima donnas|prime donne")].into_iter().collect();
|
||||||
}
|
}
|
||||||
|
|
||||||
fn si_sb_irregular() -> HashMap<&'static str, &'static str> {
|
fn si_sb_irregular() -> HashMap<String, String> {
|
||||||
let mut si_sb_irregular: HashMap<&str, &str> = pl_sb_irregular()
|
let mut si_sb_irregular: HashMap<String, String> = pl_sb_irregular()
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.map(|(k, v)| (v, k))
|
.map(|(k, v)| (v, k))
|
||||||
.collect();
|
.collect();
|
||||||
let mut keys_to_remove = Vec::new();
|
let mut keys_to_remove = Vec::new();
|
||||||
for &k in si_sb_irregular.keys() {
|
let keys: Vec<String> = si_sb_irregular.keys().cloned().collect();
|
||||||
|
for k in keys.iter() {
|
||||||
if k.contains('|') {
|
if k.contains('|') {
|
||||||
keys_to_remove.push(k);
|
keys_to_remove.push(k);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for k in keys_to_remove {
|
for k in keys_to_remove {
|
||||||
si_sb_irregular.remove(&k);
|
si_sb_irregular.remove(k);
|
||||||
let (k1, k2) = k.split_once('|').unwrap();
|
let (k1, k2) = k.split_once('|').unwrap();
|
||||||
si_sb_irregular.insert(k1, k);
|
si_sb_irregular.insert(k1.to_string(), k.clone());
|
||||||
si_sb_irregular.insert(k2, k);
|
si_sb_irregular.insert(k2.to_string(), k.clone());
|
||||||
}
|
}
|
||||||
si_sb_irregular
|
si_sb_irregular
|
||||||
}
|
}
|
||||||
|
|
@ -1386,3 +1389,620 @@ fn pl_sb_singular_s() -> String {
|
||||||
);
|
);
|
||||||
return enclose(&concat.join("|"));
|
return enclose(&concat.join("|"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn si_sb_ois_oi_case() -> Vec<String> {
|
||||||
|
return vec!["Bolshois", "Hanois"]
|
||||||
|
.iter()
|
||||||
|
.map(|s| s.to_string())
|
||||||
|
.collect();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn si_sb_uses_use_case() -> Vec<String> {
|
||||||
|
return vec!["Betelgeuses", "Duses", "Meuses", "Syracuses", "Toulouses"]
|
||||||
|
.iter()
|
||||||
|
.map(|s| s.to_string())
|
||||||
|
.collect();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn si_sb_use_uses() -> Vec<String> {
|
||||||
|
return vec![
|
||||||
|
"abuses",
|
||||||
|
"applauses",
|
||||||
|
"blouses",
|
||||||
|
"carouses",
|
||||||
|
"causes",
|
||||||
|
"chartreuses",
|
||||||
|
"clauses",
|
||||||
|
"contuses",
|
||||||
|
"douses",
|
||||||
|
"excuses",
|
||||||
|
"fuses",
|
||||||
|
"grouses",
|
||||||
|
"hypotenuses",
|
||||||
|
"masseuses",
|
||||||
|
"menopauses",
|
||||||
|
"misuses",
|
||||||
|
"muses",
|
||||||
|
"overuses",
|
||||||
|
"pauses",
|
||||||
|
"peruses",
|
||||||
|
"profuses",
|
||||||
|
"recluses",
|
||||||
|
"reuses",
|
||||||
|
"ruses",
|
||||||
|
"souses",
|
||||||
|
"spouses",
|
||||||
|
"suffuses",
|
||||||
|
"transfuses",
|
||||||
|
"uses"
|
||||||
|
]
|
||||||
|
.iter()
|
||||||
|
.map(|s| s.to_string())
|
||||||
|
.collect();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn si_sb_ies_ie_case() -> Vec<String> {
|
||||||
|
return vec![
|
||||||
|
"Addies",
|
||||||
|
"Aggies",
|
||||||
|
"Allies",
|
||||||
|
"Amies",
|
||||||
|
"Angies",
|
||||||
|
"Annies",
|
||||||
|
"Annmaries",
|
||||||
|
"Archies",
|
||||||
|
"Arties",
|
||||||
|
"Aussies",
|
||||||
|
"Barbies",
|
||||||
|
"Barries",
|
||||||
|
"Basies",
|
||||||
|
"Bennies",
|
||||||
|
"Bernies",
|
||||||
|
"Berties",
|
||||||
|
"Bessies",
|
||||||
|
"Betties",
|
||||||
|
"Billies",
|
||||||
|
"Blondies",
|
||||||
|
"Bobbies",
|
||||||
|
"Bonnies",
|
||||||
|
"Bowies",
|
||||||
|
"Brandies",
|
||||||
|
"Bries",
|
||||||
|
"Brownies",
|
||||||
|
"Callies",
|
||||||
|
"Carnegies",
|
||||||
|
"Carries",
|
||||||
|
"Cassies",
|
||||||
|
"Charlies",
|
||||||
|
"Cheries",
|
||||||
|
"Christies",
|
||||||
|
"Connies",
|
||||||
|
"Curies",
|
||||||
|
"Dannies",
|
||||||
|
"Debbies",
|
||||||
|
"Dixies",
|
||||||
|
"Dollies",
|
||||||
|
"Donnies",
|
||||||
|
"Drambuies",
|
||||||
|
"Eddies",
|
||||||
|
"Effies",
|
||||||
|
"Ellies",
|
||||||
|
"Elsies",
|
||||||
|
"Eries",
|
||||||
|
"Ernies",
|
||||||
|
"Essies",
|
||||||
|
"Eugenies",
|
||||||
|
"Fannies",
|
||||||
|
"Flossies",
|
||||||
|
"Frankies",
|
||||||
|
"Freddies",
|
||||||
|
"Gillespies",
|
||||||
|
"Goldies",
|
||||||
|
"Gracies",
|
||||||
|
"Guthries",
|
||||||
|
"Hallies",
|
||||||
|
"Hatties",
|
||||||
|
"Hetties",
|
||||||
|
"Hollies",
|
||||||
|
"Jackies",
|
||||||
|
"Jamies",
|
||||||
|
"Janies",
|
||||||
|
"Jannies",
|
||||||
|
"Jeanies",
|
||||||
|
"Jeannies",
|
||||||
|
"Jennies",
|
||||||
|
"Jessies",
|
||||||
|
"Jimmies",
|
||||||
|
"Jodies",
|
||||||
|
"Johnies",
|
||||||
|
"Johnnies",
|
||||||
|
"Josies",
|
||||||
|
"Julies",
|
||||||
|
"Kalgoorlies",
|
||||||
|
"Kathies",
|
||||||
|
"Katies",
|
||||||
|
"Kellies",
|
||||||
|
"Kewpies",
|
||||||
|
"Kristies",
|
||||||
|
"Laramies",
|
||||||
|
"Lassies",
|
||||||
|
"Lauries",
|
||||||
|
"Leslies",
|
||||||
|
"Lessies",
|
||||||
|
"Lillies",
|
||||||
|
"Lizzies",
|
||||||
|
"Lonnies",
|
||||||
|
"Lories",
|
||||||
|
"Lorries",
|
||||||
|
"Lotties",
|
||||||
|
"Louies",
|
||||||
|
"Mackenzies",
|
||||||
|
"Maggies",
|
||||||
|
"Maisies",
|
||||||
|
"Mamies",
|
||||||
|
"Marcies",
|
||||||
|
"Margies",
|
||||||
|
"Maries",
|
||||||
|
"Marjories",
|
||||||
|
"Matties",
|
||||||
|
"McKenzies",
|
||||||
|
"Melanies",
|
||||||
|
"Mickies",
|
||||||
|
"Millies",
|
||||||
|
"Minnies",
|
||||||
|
"Mollies",
|
||||||
|
"Mounties",
|
||||||
|
"Nannies",
|
||||||
|
"Natalies",
|
||||||
|
"Nellies",
|
||||||
|
"Netties",
|
||||||
|
"Ollies",
|
||||||
|
"Ozzies",
|
||||||
|
"Pearlies",
|
||||||
|
"Pottawatomies",
|
||||||
|
"Reggies",
|
||||||
|
"Richies",
|
||||||
|
"Rickies",
|
||||||
|
"Robbies",
|
||||||
|
"Ronnies",
|
||||||
|
"Rosalies",
|
||||||
|
"Rosemaries",
|
||||||
|
"Rosies",
|
||||||
|
"Roxies",
|
||||||
|
"Rushdies",
|
||||||
|
"Ruthies",
|
||||||
|
"Sadies",
|
||||||
|
"Sallies",
|
||||||
|
"Sammies",
|
||||||
|
"Scotties",
|
||||||
|
"Selassies",
|
||||||
|
"Sherries",
|
||||||
|
"Sophies",
|
||||||
|
"Stacies",
|
||||||
|
"Stefanies",
|
||||||
|
"Stephanies",
|
||||||
|
"Stevies",
|
||||||
|
"Susies",
|
||||||
|
"Sylvies",
|
||||||
|
"Tammies",
|
||||||
|
"Terries",
|
||||||
|
"Tessies",
|
||||||
|
"Tommies",
|
||||||
|
"Tracies",
|
||||||
|
"Trekkies",
|
||||||
|
"Valaries",
|
||||||
|
"Valeries",
|
||||||
|
"Valkyries",
|
||||||
|
"Vickies",
|
||||||
|
"Virgies",
|
||||||
|
"Willies",
|
||||||
|
"Winnies",
|
||||||
|
"Wylies",
|
||||||
|
"Yorkies"
|
||||||
|
]
|
||||||
|
.iter()
|
||||||
|
.map(|s| s.to_string())
|
||||||
|
.collect();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn si_sb_ies_ie() -> Vec<String> {
|
||||||
|
return vec![
|
||||||
|
"aeries",
|
||||||
|
"baggies",
|
||||||
|
"belies",
|
||||||
|
"biggies",
|
||||||
|
"birdies",
|
||||||
|
"bogies",
|
||||||
|
"bonnies",
|
||||||
|
"boogies",
|
||||||
|
"bookies",
|
||||||
|
"bourgeoisies",
|
||||||
|
"brownies",
|
||||||
|
"budgies",
|
||||||
|
"caddies",
|
||||||
|
"calories",
|
||||||
|
"camaraderies",
|
||||||
|
"cockamamies",
|
||||||
|
"collies",
|
||||||
|
"cookies",
|
||||||
|
"coolies",
|
||||||
|
"cooties",
|
||||||
|
"coteries",
|
||||||
|
"crappies",
|
||||||
|
"curies",
|
||||||
|
"cutesies",
|
||||||
|
"dogies",
|
||||||
|
"eyries",
|
||||||
|
"floozies",
|
||||||
|
"footsies",
|
||||||
|
"freebies",
|
||||||
|
"genies",
|
||||||
|
"goalies",
|
||||||
|
"groupies",
|
||||||
|
"hies",
|
||||||
|
"jalousies",
|
||||||
|
"junkies",
|
||||||
|
"kiddies",
|
||||||
|
"laddies",
|
||||||
|
"lassies",
|
||||||
|
"lies",
|
||||||
|
"lingeries",
|
||||||
|
"magpies",
|
||||||
|
"menageries",
|
||||||
|
"mommies",
|
||||||
|
"movies",
|
||||||
|
"neckties",
|
||||||
|
"newbies",
|
||||||
|
"nighties",
|
||||||
|
"oldies",
|
||||||
|
"organdies",
|
||||||
|
"overlies",
|
||||||
|
"pies",
|
||||||
|
"pinkies",
|
||||||
|
"pixies",
|
||||||
|
"potpies",
|
||||||
|
"prairies",
|
||||||
|
"quickies",
|
||||||
|
"reveries",
|
||||||
|
"rookies",
|
||||||
|
"rotisseries",
|
||||||
|
"softies",
|
||||||
|
"sorties",
|
||||||
|
"species",
|
||||||
|
"stymies",
|
||||||
|
"sweeties",
|
||||||
|
"ties",
|
||||||
|
"underlies",
|
||||||
|
"unties",
|
||||||
|
"veggies",
|
||||||
|
"vies",
|
||||||
|
"yuppies",
|
||||||
|
"zombies"
|
||||||
|
]
|
||||||
|
.iter()
|
||||||
|
.map(|s| s.to_string())
|
||||||
|
.collect();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn si_sb_oes_oe_case() -> Vec<String> {
|
||||||
|
return vec![
|
||||||
|
"Chloes",
|
||||||
|
"Crusoes",
|
||||||
|
"Defoes",
|
||||||
|
"Faeroes",
|
||||||
|
"Ivanhoes",
|
||||||
|
"Joes",
|
||||||
|
"McEnroes",
|
||||||
|
"Moes",
|
||||||
|
"Monroes",
|
||||||
|
"Noes",
|
||||||
|
"Poes",
|
||||||
|
"Roscoes",
|
||||||
|
"Tahoes",
|
||||||
|
"Tippecanoes",
|
||||||
|
"Zoes"
|
||||||
|
]
|
||||||
|
.iter()
|
||||||
|
.map(|s| s.to_string())
|
||||||
|
.collect();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn si_sb_oes_oe() -> Vec<String> {
|
||||||
|
return vec![
|
||||||
|
"aloes",
|
||||||
|
"backhoes",
|
||||||
|
"canoes",
|
||||||
|
"does",
|
||||||
|
"floes",
|
||||||
|
"foes",
|
||||||
|
"hoes",
|
||||||
|
"mistletoes",
|
||||||
|
"oboes",
|
||||||
|
"pekoes",
|
||||||
|
"roes",
|
||||||
|
"sloes",
|
||||||
|
"throes",
|
||||||
|
"tiptoes",
|
||||||
|
"toes",
|
||||||
|
"woes"
|
||||||
|
]
|
||||||
|
.iter()
|
||||||
|
.map(|s| s.to_string())
|
||||||
|
.collect();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn si_sb_z_zes() -> Vec<String> {
|
||||||
|
return vec!["quartzes", "topazes"]
|
||||||
|
.iter()
|
||||||
|
.map(|s| s.to_string())
|
||||||
|
.collect();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn si_sb_zzes_zz() -> Vec<String> {
|
||||||
|
return vec!["buzzes", "fizzes", "frizzes", "razzes"]
|
||||||
|
.iter()
|
||||||
|
.map(|s| s.to_string())
|
||||||
|
.collect();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn si_sb_ches_che_case() -> Vec<String> {
|
||||||
|
return vec![
|
||||||
|
"Andromaches",
|
||||||
|
"Apaches",
|
||||||
|
"Blanches",
|
||||||
|
"Comanches",
|
||||||
|
"Nietzsches",
|
||||||
|
"Porsches",
|
||||||
|
"Roches"
|
||||||
|
]
|
||||||
|
.iter()
|
||||||
|
.map(|s| s.to_string())
|
||||||
|
.collect();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn si_sb_ches_che() -> Vec<String> {
|
||||||
|
return vec![
|
||||||
|
"aches",
|
||||||
|
"avalanches",
|
||||||
|
"backaches",
|
||||||
|
"bellyaches",
|
||||||
|
"caches",
|
||||||
|
"cloches",
|
||||||
|
"creches",
|
||||||
|
"douches",
|
||||||
|
"earaches",
|
||||||
|
"fiches",
|
||||||
|
"headaches",
|
||||||
|
"heartaches",
|
||||||
|
"microfiches",
|
||||||
|
"niches",
|
||||||
|
"pastiches",
|
||||||
|
"psyches",
|
||||||
|
"quiches",
|
||||||
|
"stomachaches",
|
||||||
|
"toothaches",
|
||||||
|
"tranches"
|
||||||
|
]
|
||||||
|
.iter()
|
||||||
|
.map(|s| s.to_string())
|
||||||
|
.collect();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn si_sb_xes_xe() -> Vec<String> {
|
||||||
|
return vec!["annexes", "axes", "deluxes", "pickaxes"]
|
||||||
|
.iter()
|
||||||
|
.map(|s| s.to_string())
|
||||||
|
.collect();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn si_sb_sses_sse_case() -> Vec<String> {
|
||||||
|
return vec!["Hesses", "Jesses", "Larousses", "Matisses"]
|
||||||
|
.iter()
|
||||||
|
.map(|s| s.to_string())
|
||||||
|
.collect();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn si_sb_sses_sse() -> Vec<String> {
|
||||||
|
return vec!["bouillabaisses", "crevasses", "demitasses", "impasses", "mousses", "posses"]
|
||||||
|
.iter()
|
||||||
|
.map(|s| s.to_string())
|
||||||
|
.collect();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn si_sb_ves_ve_case() -> Vec<String> {
|
||||||
|
return vec!["Clives", "Palmolives"]
|
||||||
|
.iter()
|
||||||
|
.map(|s| s.to_string())
|
||||||
|
.collect();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn si_sb_ves_ve() -> Vec<String> {
|
||||||
|
return vec![
|
||||||
|
"interweaves",
|
||||||
|
"weaves",
|
||||||
|
"olives",
|
||||||
|
"bivalves",
|
||||||
|
"dissolves",
|
||||||
|
"resolves",
|
||||||
|
"salves",
|
||||||
|
"twelves",
|
||||||
|
"valves"
|
||||||
|
]
|
||||||
|
.iter()
|
||||||
|
.map(|s| s.to_string())
|
||||||
|
.collect();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn plverb_special_s() -> String {
|
||||||
|
let mut concat: Vec<String> = Vec::new();
|
||||||
|
concat.push(pl_sb_singular_s());
|
||||||
|
concat.extend(pl_sb_uninflected_s());
|
||||||
|
let pl_sb_irregular_s_keys: Vec<String> = pl_sb_irregular_s().keys().cloned().collect();
|
||||||
|
concat.extend(pl_sb_irregular_s_keys);
|
||||||
|
concat.extend(
|
||||||
|
vec!["(.*[csx])is", "(.*)ceps", "[A-Z].*s"]
|
||||||
|
.iter()
|
||||||
|
.map(|s| s.to_string())
|
||||||
|
);
|
||||||
|
return enclose(&concat.join("|"));
|
||||||
|
}
|
||||||
|
|
||||||
|
fn _pl_sb_postfix_adj_defn() -> HashMap<String, String> {
|
||||||
|
let mut m = HashMap::new();
|
||||||
|
m.insert("general".to_string(), enclose(r"(?!major|lieutenant|brigadier|adjutant|.*star)\S+"));
|
||||||
|
m.insert("martial".to_string(), enclose("court"));
|
||||||
|
m.insert("force".to_string(), enclose("pound"));
|
||||||
|
m
|
||||||
|
}
|
||||||
|
|
||||||
|
fn pl_sb_postfix_adj() -> Vec<String> {
|
||||||
|
return _pl_sb_postfix_adj_defn()
|
||||||
|
.iter()
|
||||||
|
.map(|(k, v)| format!("{}(?=(?:-|\\s+){})", v, k))
|
||||||
|
.collect();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn pl_sb_postfix_adj_stems() -> String {
|
||||||
|
return format!("({})(.*)", pl_sb_postfix_adj().join("|"));
|
||||||
|
}
|
||||||
|
|
||||||
|
fn si_sb_es_is() -> Vec<String> {
|
||||||
|
return vec![
|
||||||
|
"amanuenses",
|
||||||
|
"amniocenteses",
|
||||||
|
"analyses",
|
||||||
|
"antitheses",
|
||||||
|
"apotheoses",
|
||||||
|
"arterioscleroses",
|
||||||
|
"atheroscleroses",
|
||||||
|
"axes",
|
||||||
|
"catalyses",
|
||||||
|
"catharses",
|
||||||
|
"chasses",
|
||||||
|
"cirrhoses",
|
||||||
|
"cocces",
|
||||||
|
"crises",
|
||||||
|
"diagnoses",
|
||||||
|
"dialyses",
|
||||||
|
"diereses",
|
||||||
|
"electrolyses",
|
||||||
|
"emphases",
|
||||||
|
"exegeses",
|
||||||
|
"geneses",
|
||||||
|
"halitoses",
|
||||||
|
"hydrolyses",
|
||||||
|
"hypnoses",
|
||||||
|
"hypotheses",
|
||||||
|
"hystereses",
|
||||||
|
"metamorphoses",
|
||||||
|
"metastases",
|
||||||
|
"misdiagnoses",
|
||||||
|
"mitoses",
|
||||||
|
"mononucleoses",
|
||||||
|
"narcoses",
|
||||||
|
"necroses",
|
||||||
|
"nemeses",
|
||||||
|
"neuroses",
|
||||||
|
"oases",
|
||||||
|
"osmoses",
|
||||||
|
"osteoporoses",
|
||||||
|
"paralyses",
|
||||||
|
"parentheses",
|
||||||
|
"parthenogeneses",
|
||||||
|
"periphrases",
|
||||||
|
"photosyntheses",
|
||||||
|
"probosces",
|
||||||
|
"prognoses",
|
||||||
|
"prophylaxes",
|
||||||
|
"prostheses",
|
||||||
|
"preces",
|
||||||
|
"psoriases",
|
||||||
|
"psychoanalyses",
|
||||||
|
"psychokineses",
|
||||||
|
"psychoses",
|
||||||
|
"scleroses",
|
||||||
|
"scolioses",
|
||||||
|
"sepses",
|
||||||
|
"silicoses",
|
||||||
|
"symbioses",
|
||||||
|
"synopses",
|
||||||
|
"syntheses",
|
||||||
|
"taxes",
|
||||||
|
"telekineses",
|
||||||
|
"theses",
|
||||||
|
"thromboses",
|
||||||
|
"tuberculoses",
|
||||||
|
"urinalyses"
|
||||||
|
]
|
||||||
|
.iter()
|
||||||
|
.map(|s| s.to_string())
|
||||||
|
.collect();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn pl_prep_list() -> Vec<String> {
|
||||||
|
return vec![
|
||||||
|
"about",
|
||||||
|
"above",
|
||||||
|
"across",
|
||||||
|
"after",
|
||||||
|
"among",
|
||||||
|
"around",
|
||||||
|
"at",
|
||||||
|
"athwart",
|
||||||
|
"before",
|
||||||
|
"behind",
|
||||||
|
"below",
|
||||||
|
"beneath",
|
||||||
|
"beside",
|
||||||
|
"besides",
|
||||||
|
"between",
|
||||||
|
"betwixt",
|
||||||
|
"beyond",
|
||||||
|
"but",
|
||||||
|
"by",
|
||||||
|
"during",
|
||||||
|
"except",
|
||||||
|
"for",
|
||||||
|
"from",
|
||||||
|
"in",
|
||||||
|
"into",
|
||||||
|
"near",
|
||||||
|
"of",
|
||||||
|
"off",
|
||||||
|
"on",
|
||||||
|
"onto",
|
||||||
|
"out",
|
||||||
|
"over",
|
||||||
|
"since",
|
||||||
|
"till",
|
||||||
|
"to",
|
||||||
|
"under",
|
||||||
|
"until",
|
||||||
|
"unto",
|
||||||
|
"upon",
|
||||||
|
"with"
|
||||||
|
]
|
||||||
|
.iter()
|
||||||
|
.map(|s| s.to_string())
|
||||||
|
.collect();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn pl_prep_list_da() -> Vec<String> {
|
||||||
|
let mut concat = pl_prep_list();
|
||||||
|
concat.push("de".to_string());
|
||||||
|
concat.push("du".to_string());
|
||||||
|
concat.push("da".to_string());
|
||||||
|
return concat;
|
||||||
|
}
|
||||||
|
|
||||||
|
fn pl_prep_bysize() -> HashMap<usize, HashSet<String>> {
|
||||||
|
return bysize(pl_prep_list_da());
|
||||||
|
}
|
||||||
|
|
||||||
|
fn pl_prep() -> String {
|
||||||
|
return enclose(&pl_prep_list_da().join("|"));
|
||||||
|
}
|
||||||
|
|
||||||
|
fn pl_sb_prep_dual_compound() -> String {
|
||||||
|
return format!(r"(.*?)((?:-|\s+)(?:{})(?:-|\s+))a(?:-|\s+)(.*)", pl_prep());
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue