#![deny(clippy::no_effect_replace)]
#![warn(clippy::nursery, clippy::pedantic)]
#![allow(clippy::similar_names, clippy::too_many_lines, clippy::unicode_not_nfc)]
#![allow(clippy::string_lit_as_bytes)]
use std::fs::OpenOptions;
use std::io::Write;
fn spapncbeg(lowercase: &str) -> String {
let pncbeg = &lowercase
.replace([';', '!', '?', '¡', '¿'], ".")
.replace(").", ".")
.replace("),", ",")
.replace(" «", ", ")
.replace(".«", "")
.replace("».", ".")
.replace([')', ':', '»'], ",")
.replace("--", " – ")
.replace('(', "∣ .")
.replace(' ', "# #")
.replace('.', "#.#")
.replace(',', "#,#");
pncbeg.to_string()
}
fn spapncend(strmod: &str) -> String {
let result = &strmod
.replace("# #", " ")
.replace("#.#", ".")
.replace("#,#", ",")
.replace(',', " ∣")
.replace(". ", " ∥ ")
.replace('.', "")
.replace(" - ", " ∣ ")
.replace(" – ", " ∣ ")
.replace("∣ ∣", "∣")
.replace("∣ ∥", "∥")
.replace("$%&", ".");
result.to_string()
}
fn spasyllabes(spaacc_u: &str) -> String {
let spasyl = &spaacc_u.replace("éa", "é$%&a").replace("éo", "é$%&o").replace("ía", "í$%&a").replace("íe", "í$%&e").replace("ío", "í$%&o").replace("úa", "ú$%&a").replace("úe", "ú$%&e").replace("úo", "ú$%&o");
spasyl.to_string()
}
fn spapalesp(pncbeg: &str) -> String {
let palesp = &pncbeg.replace("mexic", "mejic").replace("méxic", "méjic").replace("ximena", "jimena").replace("ximénez", "jiménez");
palesp.to_string()
}
fn spaaccent_a(palesp: &str) -> String {
let spaacc_a = &palesp
.replace("ar#", "ár#")
.replace("ares#", "áres#")
.replace("arme#", "árme#")
.replace("arte#", "árte#")
.replace("arse#", "árse#")
.replace("arnos#", "árnos#")
.replace("arla#", "árla#")
.replace("arlo#", "árlo#")
.replace("arle#", "árle#")
.replace("arlas#", "árlas#")
.replace("arlos#", "árlos#")
.replace("arles#", "árles#")
.replace("ando#", "ándo#")
.replace("aba#", "ába#")
.replace("aban#", "ában#")
.replace("abas#", "ábas#")
.replace("acha#", "ácha#")
.replace("acho#", "ácho#")
.replace("achos#", "áchos#")
.replace("ada#", "áda#")
.replace("adas", "ádas")
.replace("ado#", "ádo#")
.replace("ados", "ádos")
.replace("ago#", "ágo#")
.replace("aga#", "ága#")
.replace("agas#", "ágas#")
.replace("agan", "ágan")
.replace("adre#", "ádre#")
.replace("adres#", "ádres#")
.replace("ante#", "ánte#")
.replace("antes", "ántes")
.replace("aste#", "áste#")
.replace("ad#", "ád#")
.replace("ades#", "ádes#")
.replace("az#", "áz#")
.replace("ace#", "áce#")
.replace("aces#", "áces#")
.replace("al#", "ál#")
.replace("#ál#", "#al#")
.replace("#tál#", "#tal#")
.replace("ales", "áles")
.replace("ambre", "ámbre")
.replace("ano#", "áno#")
.replace("anos#", "ános#")
.replace("éáno", "éano")
.replace("átáno", "átano")
.replace("ana#", "ána#")
.replace("anas#", "ánas#")
.replace("ábána", "ábana")
.replace("año#", "áño#")
.replace("años#", "áños#")
.replace("aña#", "áña#")
.replace("añas#", "áñas#")
.replace("ama#", "áma#")
.replace("amas#", "ámas#")
.replace("amo#", "ámo#")
.replace("amos#", "ámos#")
.replace("ágámos#", "agámos#")
.replace("íámos", "íamos")
.replace("álsámo", "álsamo")
.replace("éstámo", "éstamo")
.replace("árámo", "áramo")
.replace("aque#", "áque#")
.replace("aques#", "áques#")
.replace("ara#", "ára#")
.replace("aras#", "áras#")
.replace("aro#", "áro#")
.replace("aros#", "áros#")
.replace("arra#", "árra#")
.replace("arras#", "árras#")
.replace("arro#", "árro#")
.replace("arros#", "árros#")
.replace("ántáro", "ántaro")
.replace("aria#", "ária#")
.replace("arias#", "árias#")
.replace("ario#", "ário#")
.replace("arios#", "ários#")
.replace("aron#", "áron#")
.replace("argo#", "árgo#")
.replace("argos#", "árgos#")
.replace("arga#", "árga#")
.replace("argas#", "árgas#")
.replace("asa#", "ása#")
.replace("ata#", "áta#")
.replace("atas#", "átas#")
.replace("atro#", "átro#")
.replace("ato#", "áto#")
.replace("atos#", "átos#")
.replace("alma#", "álma#")
.replace("almas#", "álmas#")
.replace("anja#", "ánja#")
.replace("alda#", "álda#")
.replace("aldas#", "áldas#")
.replace("abio#", "ábio#")
.replace("abios#", "ábios#")
.replace("anco#", "ánco#")
.replace("ancos#", "áncos#")
.replace("anca#", "ánca#")
.replace("ancas#", "áncas#")
.replace("ande#", "ánde#")
.replace("andes#", "ándes#")
.replace("aje#", "áje#")
.replace("ajes#", "ájes#")
.replace("aya#", "áya#")
.replace("ayas#", "áyas#")
.replace("ayan#", "áyan#")
.replace("aris#", "áris#")
.replace("ambio#", "ámbio#")
.replace("ambios#", "ámbios#")
.replace("aja#", "ája#")
.replace("ajas#", "ájas#")
.replace("ajo#", "ájo#")
.replace("ajos#", "ájos#")
.replace("acia#", "ácia#")
.replace("acias#", "ácias#")
.replace("acio#", "ácio#")
.replace("acios#", "ácios#")
.replace("arde#", "árde#")
.replace("ardes#", "árdes#")
.replace("iana#", "iána#")
.replace("ianas#", "iánas#")
.replace("asta#", "ásta#")
.replace("adie#", "ádie#")
.replace("ansa#", "ánsa#")
.replace("ansas#", "ánsas#")
.replace("ansan#", "ánsan#")
.replace("anta#", "ánta#")
.replace("antas#", "ántas#")
.replace("anto#", "ánto#")
.replace("antos#", "ántos#")
.replace("asi#", "ási#")
.replace("agua#", "água#")
.replace("aguas#", "águas#")
.replace("algo#", "álgo#")
.replace("algos#", "álgos#")
.replace("alguien#", "álguien#")
.replace("ayo#", "áyo#")
.replace("ayos#", "áyos#")
.replace("azo#", "ázo#")
.replace("azos#", "ázos#")
.replace("ate#", "áte#")
.replace("ates#", "átes#")
.replace("ancia#", "áncia#")
.replace("ancias#", "áncias#")
.replace("arta#", "árta#")
.replace("artas#", "ártas#")
.replace("artes#", "ártes#")
.replace("arten#", "árten#")
.replace("abla#", "ábla#")
.replace("ablan#", "áblan#")
.replace("ablas#", "áblas#")
.replace("abra#", "ábra#")
.replace("abran#", "ábran#")
.replace("abras#", "ábras#")
.replace("alta#", "álta#")
.replace("altas#", "áltas#")
.replace("alto#", "álto#")
.replace("altos#", "áltos#")
.replace("asgo#", "ásgo#")
.replace("asgos#", "ásgos#")
.replace("azgo#", "ázgo#")
.replace("azgos#", "ázgos#");
spaacc_a.to_string()
}
fn spaaccent_e(spaacc_a: &str) -> String {
let spaacc_e = &spaacc_a
.replace("er#", "ér#")
.replace("étér", "éter")
.replace("erme#", "érme#")
.replace("erte#", "érte#")
.replace("erse#", "érse#")
.replace("ernos#", "érnos#")
.replace("erla#", "érla#")
.replace("erlo#", "érlo#")
.replace("erle#", "érle#")
.replace("erlas#", "érlas#")
.replace("erlos#", "érlos#")
.replace("erles#", "érles#")
.replace("iendo", "iéndo")
.replace("ecto#", "écto#")
.replace("ectos#", "éctos#")
.replace("ecta#", "écta#")
.replace("ectas#", "éctas#")
.replace("encio#", "éncio#")
.replace("encia#", "éncia#")
.replace("encias#", "éncias#")
.replace("ejo#", "éjo#")
.replace("ejos#", "éjos#")
.replace("eja#", "éja#")
.replace("ejas#", "éjas#")
.replace("ente#", "énte#")
.replace("entes", "éntes")
.replace("enso#", "énso#")
.replace("ensos", "énsos")
.replace("ento#", "énto#")
.replace("entos#", "éntos#")
.replace("enta#", "énta#")
.replace("entas#", "éntas#")
.replace("ero#", "éro#")
.replace("eros#", "éros#")
.replace("eron", "éron")
.replace("era#", "éra#")
.replace("eras#", "éras#")
.replace("eran#", "éran#")
.replace("íscér", "íscer")
.replace("íspér", "ísper")
.replace("erca#", "érca#")
.replace("ercas#", "ércas#")
.replace("esca#", "ésca#")
.replace("escas#", "éscas#")
.replace("esco#", "ésco#")
.replace("escos#", "éscos#")
.replace("ezco#", "ézco#")
.replace("ezca#", "ézca#")
.replace("ezcas#", "ézcas#")
.replace("ezcan#", "ézcan#")
.replace("esta#", "ésta#")
.replace("estas#", "éstas#")
.replace("este#", "éste#")
.replace("estes#", "éstes#")
.replace("esto#", "ésto#")
.replace("estos#", "éstos#")
.replace("#el#", "#e^l#")
.replace("el#", "él#")
.replace("#e^l#", "#el#")
.replace("#dél#", "#del#")
.replace("ella", "élla")
.replace("ello", "éllo")
.replace("uela", "uéla")
.replace("uelo", "uélo")
.replace("eña#", "éña#")
.replace("eñas#", "éñas#")
.replace("eño#", "éño#")
.replace("eños#", "éños#")
.replace("ensa#", "énsa#")
.replace("ensas#", "énsas#")
.replace("enso#", "énso#")
.replace("ensos#", "énsos#")
.replace("eno#", "éno#")
.replace("enos#", "énos#")
.replace("desde#", "désde#")
.replace("iempo", "iémpo")
.replace("ece#", "éce#")
.replace("ecen#", "écen#")
.replace("eces#", "éces#")
.replace("ea#", "éa#")
.replace("eas#", "éas#")
.replace("áréa", "área")
.replace("ídéa", "ídea")
.replace("ínéa", "ínea")
.replace("ed#", "éd#")
.replace("edes#", "édes#")
.replace("eo#", "éo#")
.replace("eos#", "éos#")
.replace("ánéo", "áneo")
.replace("ópéo", "ópeo")
.replace("eza#", "éza#")
.replace("ezas#", "ézas#")
.replace("iet", "iét")
.replace("iétád", "ietád")
.replace("que", "qu^e")
.replace("gue", "gu^e")
.replace("ue", "ué")
.replace("qu^e", "que")
.replace("gu^e", "gue")
.replace("úedá", "uedá")
.replace("úedó", "uedó")
.replace("uérí", "uerí")
.replace("elio", "élio")
.replace("echo#", "écho#")
.replace("echos#", "échos#")
.replace("iedra#", "iédra#")
.replace("iedras#", "iédras#")
.replace("eria#", "éria#")
.replace("erias#", "érias#")
.replace("erio#", "ério#")
.replace("erios#", "érios#")
.replace("erra#", "érra#")
.replace("erras#", "érras#")
.replace("erro#", "érro#")
.replace("erros#", "érros#")
.replace("esa#", "ésa#")
.replace("esas#", "ésas#")
.replace("eso#", "éso#")
.replace("esos#", "ésos#")
.replace("ese#", "ése#")
.replace("eses#", "éses#")
.replace("ere#", "ére#")
.replace("eren#", "éren#")
.replace("eres#", "éres#")
.replace("ena#", "éna#")
.replace("enas#", "énas#")
.replace("ígená", "ígena")
.replace("entro#", "éntro#")
.replace("entros#", "éntros#")
.replace("eta#", "éta#")
.replace("etas#", "étas#")
.replace("elo#", "élo#")
.replace("elos#", "élos#")
.replace("ármélo", "ármelo")
.replace("ársélo", "árselo")
.replace("ártélo", "ártelo")
.replace("érmélo", "érmelo")
.replace("érsélo", "érselo")
.replace("értélo", "értelo")
.replace("írmélo", "írmelo")
.replace("írsélo", "írselo")
.replace("írtélo", "írtelo")
.replace("ámélo", "ámelo")
.replace("ímélo", "ímelo")
.replace("erma#", "érma#")
.replace("ermas#", "érmas#")
.replace("ermo#", "érmo#")
.replace("ermos#", "érmos#")
.replace("empre#", "émpre#")
.replace("entra#", "éntra#")
.replace("entras#", "éntras#")
.replace("entre#", "éntre#")
.replace("ene#", "éne#")
.replace("enes#", "énes#")
.replace("enen#", "énen#")
.replace("ágénes", "ágenes")
.replace("ígénes", "ígenes")
.replace("órdénes", "órdenes")
.replace("áménes", "támenes")
.replace("óvénes", "óvenes")
.replace("úménes", "úmenes")
.replace("ela#", "éla#")
.replace("elas#", "élas#")
.replace("árméla", "ármela")
.replace("ártéla", "ártela")
.replace("árséla", "ársela")
.replace("érméla", "érmela")
.replace("értéla", "értela")
.replace("érséla", "érsela")
.replace("írméla", "írmela")
.replace("írtéla", "írtela")
.replace("írséla", "írsela")
.replace("edo#", "édo#")
.replace("edos#", "édos#")
.replace("eda#", "éda#")
.replace("edas#", "édas#")
.replace("úméd", "úmed")
.replace("óvéd", "óved")
.replace("úsquéda", "úsqueda")
.replace("egra#", "égra#")
.replace("egras#", "égras#")
.replace("egro#", "égro#")
.replace("egros#", "égros#")
.replace("egla#", "égla#")
.replace("eglas#", "églas#")
.replace("engua#", "éngua#")
.replace("enguas#", "énguas#")
.replace("emia#", "émia#")
.replace("emias#", "émias#")
.replace("emio#", "émio#")
.replace("emios#", "émios#")
.replace("ersa#", "érsa#")
.replace("ersas#", "érsas#")
.replace("erso#", "érso#")
.replace("ersos#", "érsos#")
.replace("ende#", "énde#")
.replace("enden#", "énden#")
.replace("endes#", "éndes#")
.replace("emplo#", "émplo#")
.replace("emplos#", "émplos#")
.replace("een#", "éen#")
.replace("ees#", "ées#")
.replace("edio#", "édio#")
.replace("edios#", "édios#")
.replace("emo#", "émo#")
.replace("emos#", "émos#");
spaacc_e.to_string()
}
fn spaaccent_o(spaacc_e: &str) -> String {
let spaacc_o = &spaacc_e
.replace("ol#", "ól#")
.replace("oles#", "óles#")
.replace("odo#", "ódo#")
.replace("odos#", "ódos#")
.replace("oda#", "óda#")
.replace("odas#", "ódas#")
.replace("ómódo", "ómodo")
.replace("ómóda", "ómoda")
.replace("ojo#", "ójo#")
.replace("ojos#", "ójos#")
.replace("oja#", "ója#")
.replace("ojas#", "ójas#")
.replace("oma#", "óma#")
.replace("omas#", "ómas#")
.replace("oman#", "óman#")
.replace("omo#", "ómo#")
.replace("omos#", "ómos#")
.replace("one#", "óne#")
.replace("onen#", "ónen#")
.replace("ones#", "ónes#")
.replace("or#", "ór#")
.replace("#pór#", "#por#")
.replace("ores#", "óres#")
.replace("onda#", "ónda#")
.replace("ondas#", "óndas#")
.replace("ondo#", "óndo#")
.replace("ondos#", "óndos#")
.replace("onces#", "ónces#")
.replace("ola#", "óla#")
.replace("olas#", "ólas#")
.replace("ora#", "óra#")
.replace("oras#", "óras#")
.replace("oro#", "óro#")
.replace("oros#", "óros#")
.replace("oria#", "ória#")
.replace("orias#", "órias#")
.replace("orio#", "ório#")
.replace("orios#", "órios#")
.replace("orda#", "órda#")
.replace("ordas#", "órdas#")
.replace("ordo#", "órdo#")
.replace("ordos#", "órdos#")
.replace("orta#", "órta#")
.replace("ortas#", "órtas#")
.replace("ortan#", "órtan#")
.replace("orso#", "órso#")
.replace("orsos#", "órsos#")
.replace("oso#", "óso#")
.replace("osos#", "ósos#")
.replace("osa#", "ósa#")
.replace("osas#", "ósas#")
.replace("ozo#", "ózo#")
.replace("ozos#", "ózos#")
.replace("oza#", "óza#")
.replace("ozas#", "ózas#")
.replace("ota#", "óta#")
.replace("otas#", "ótas#")
.replace("oto#", "óto#")
.replace("otos#", "ótos#")
.replace("otro#", "ótro#")
.replace("otros#", "ótros#")
.replace("otra#", "ótra#")
.replace("otras#", "ótras#")
.replace("opa#", "ópa#")
.replace("porque#", "pórque#")
.replace("solo#", "sólo#")
.replace("solos#", "sólos#")
.replace("sola#", "sóla#")
.replace("solas#", "sólas#")
.replace("oble#", "óble#")
.replace("obles#", "óble#")
.replace("obre#", "óbre#")
.replace("ozc", "ózc")
.replace("osco#", "ósco#")
.replace("oscos#", "óscos#")
.replace("osca#", "ósca#")
.replace("oscas#", "óscas#")
.replace("ombre#", "ómbre#")
.replace("ombres#", "ómbres#")
.replace("orme#", "órme#")
.replace("ormes#", "órmes#")
.replace("orma#", "órma#")
.replace("ormas#", "órmas#")
.replace("orman#", "órman#")
.replace("onia#", "ónia#")
.replace("onias#", "ónias#")
.replace("ombia#", "ómbia#")
.replace("oña#", "óña#")
.replace("oñas#", "óñas#")
.replace("oño#", "óño#")
.replace("oños#", "óños#")
.replace("odia#", "ódia#")
.replace("odias#", "ódias#")
.replace("odio#", "ódio#")
.replace("odios#", "ódios#")
.replace("onde#", "ónde#")
.replace("onco#", "ónco#")
.replace("oncos#", "óncos#")
.replace("osta#", "ósta#")
.replace("ostas#", "óstas#")
.replace("olsa#", "ólsa#")
.replace("olsas#", "ólsas#")
.replace("obio#", "óbio#")
.replace("oche#", "óche#")
.replace("oches#", "óches#")
.replace("oco#", "óco#")
.replace("ocos#", "ócos#")
.replace("onto#", "ónto#")
.replace("ontos#", "óntos#")
.replace("ona#", "óna#")
.replace("onas#", "ónas#")
.replace("ono#", "óno#")
.replace("onos#", "ónos#")
.replace("ámónos", "ámonos")
.replace("ándónos", "ándonos")
.replace("éndónos", "éndonos")
.replace("óctón", "ócton")
.replace("ontra#", "óntra#")
.replace("orna#", "órna#")
.replace("ornan#", "órnan#")
.replace("orno#", "órno#")
.replace("ornos#", "órnos#")
.replace("obra#", "óbra#")
.replace("obras#", "óbras#")
.replace("opia#", "ópia#")
.replace("opias#", "ópias#")
.replace("opio#", "ópio#")
.replace("opios#", "ópios#")
.replace("orte#", "órte#")
.replace("orten#", "órten#")
.replace("ortes#", "órtes#");
spaacc_o.to_string()
}
fn spaaccent_i(spaacc_o: &str) -> String {
let spaacc_i = &spaacc_o
.replace("ir#", "ír#")
.replace("irme#", "írme#")
.replace("irte#", "írte#")
.replace("irse#", "írse#")
.replace("irnos#", "írnos#")
.replace("irla#", "írla#")
.replace("irlo#", "írlo#")
.replace("irle#", "írle#")
.replace("irlas#", "írlas#")
.replace("irlos#", "írlos#")
.replace("irles#", "írles#")
.replace("iz#", "íz#")
.replace("ices#", "íces#")
.replace("icio#", "ício#")
.replace("icios#", "ícios#")
.replace("ífíces", "ífices")
.replace("álíces", "álices")
.replace("ápíces", "ápices")
.replace("ómplíces", "ómplices")
.replace("id#", "íd#")
.replace("ido#", "ído#")
.replace("idos#", "ídos#")
.replace("ida#", "ída#")
.replace("idas#", "ídas#")
.replace("álíd", "álid")
.replace("ándíd", "ándid")
.replace("ápíd", "ápid")
.replace("éndíd", "éndid")
.replace("érfíd", "érfid")
.replace("ígíd", "ígid")
.replace("ítíd", "ítid")
.replace("útríd", "útrid")
.replace("igo#", "ígo#")
.replace("igos#", "ígos#")
.replace("átígo", "átigo")
.replace("ódígo", "ódigo")
.replace("ipo#", "ípo#")
.replace("ipos#", "ípos#")
.replace("ipa#", "ípa#")
.replace("ipas#", "ípas#")
.replace("ito#", "íto#")
.replace("itos#", "ítos#")
.replace("ita#", "íta#")
.replace("itas#", "ítas#")
.replace("ámbíto", "ámbito")
.replace("énít", "énit")
.replace("érrít", "érrit")
.replace("ácít", "ácit")
.replace("ícít", "ícit")
.replace("álpít", "álpit")
.replace("ólít", "ólit")
.replace("óndít", "óndit")
.replace("ónít", "ónit")
.replace("ósít", "ósit")
.replace("ijo#", "íjo#")
.replace("ijos#", "íjos#")
.replace("ija#", "íja#")
.replace("ijas#", "íjas#")
.replace("ilia#", "ília#")
.replace("ilias#", "ílias#")
.replace("illo#", "íllo#")
.replace("illos#", "íllos#")
.replace("illa#", "ílla#")
.replace("illas#", "íllas#")
.replace("iño#", "íño#")
.replace("iños#", "íños#")
.replace("iña#", "íña#")
.replace("iñas#", "íñas#")
.replace("ino#", "íno#")
.replace("inos#", "ínos#")
.replace("ina#", "ína#")
.replace("inas#", "ínas#")
.replace("érmín", "érmin")
.replace("ágína", "ágina")
.replace("into#", "ínto#")
.replace("intos#", "íntos#")
.replace("inta#", "ínta#")
.replace("intas#", "íntas#")
.replace("ismo#", "ísmo#")
.replace("ismos#", "ísmos#")
.replace("isma#", "ísma#")
.replace("ismas#", "ísmas#")
.replace("iso#", "íso#")
.replace("isos#", "ísos#")
.replace("isa#", "ísa#")
.replace("isas#", "ísas#")
.replace("izo#", "ízo#")
.replace("izos#", "ízos#")
.replace("iza#", "íza#")
.replace("izas#", "ízas#")
.replace("isto#", "ísto#")
.replace("istos#", "ístos#")
.replace("ista#", "ísta#")
.replace("istas#", "ístas#")
.replace("imos", "ímos")
.replace("ánímos", "ánimos")
.replace("íntímos", "íntimos")
.replace("ísímos", "ísimos")
.replace("ójímos", "ójimos")
.replace("últímos", "últimos")
.replace("einte#", "eínte#")
.replace("iba#", "íba#")
.replace("iste#", "íste#")
.replace("istes#", "ístes#")
.replace("ije#", "íje#")
.replace("ice#", "íce#")
.replace("ífíce", "ífice")
.replace("índíce", "índice")
.replace("ódíce", "ódice")
.replace("éndíce", "éndice")
.replace("igro#", "ígro#")
.replace("isco#", "ísco#")
.replace("iscos#", "íscos#")
.replace("inio#", "ínio#")
.replace("inios#", "ínios#")
.replace("iva#", "íva#")
.replace("ivas#", "ívas#")
.replace("ivo#", "ívo#")
.replace("ivos#", "ívos#")
.replace("iglo#", "íglo#")
.replace("iglos#", "íglos#")
.replace("ibe#", "íbe#")
.replace("ibes#", "íbes#")
.replace("iben#", "íben#")
.replace("igno#", "ígno#")
.replace("ignos#", "ígnos#")
.replace("ible#", "íble#")
.replace("ibles#", "íbles#")
.replace("ingüe#", "íngüe#")
.replace("ingües#", "íngües#")
.replace("icho#", "ícho#")
.replace("ichos#", "íchos#")
.replace("ines#", "ínes#")
.replace("itio#", "ítio#")
.replace("itios#", "ítios#");
spaacc_i.to_string()
}
fn spaaccent_u(spaacc_i: &str) -> String {
let spaacc_u = &spaacc_i
.replace("ude#", "úde#")
.replace("udo#", "údo#")
.replace("udos#", "údos#")
.replace("uda#", "úda#")
.replace("udas#", "údas#")
.replace("uno#", "úno#")
.replace("unos#", "únos#")
.replace("una#", "úna#")
.replace("unas#", "únas#")
.replace("undo#", "úndo#")
.replace("undos#", "úndos#")
.replace("unda#", "únda#")
.replace("undas#", "úndas#")
.replace("unto#", "únto#")
.replace("untos#", "úntos#")
.replace("uso#", "úso#")
.replace("usos#", "úsos#")
.replace("usa#", "úsa#")
.replace("usas#", "úsas#")
.replace("usto#", "ústo#")
.replace("ustos#", "ústos#")
.replace("usta#", "ústa#")
.replace("ustas#", "ústas#")
.replace("uto#", "úto#")
.replace("utos#", "útos#")
.replace("uta#", "úta#")
.replace("utas#", "útas#")
.replace("ulto#", "últo#")
.replace("ultos#", "últos#")
.replace("ulta#", "últa#")
.replace("ultas#", "últas#")
.replace("uro#", "úro#")
.replace("uros#", "úros#")
.replace("ura#", "úra#")
.replace("uras#", "úras#")
.replace("uyo#", "úyo#")
.replace("uyos#", "úyos#")
.replace("uya#", "úya#")
.replace("uyas#", "úyas#")
.replace("ucho#", "úcho#")
.replace("uchos#", "úchos#")
.replace("ucha#", "úcha#")
.replace("uchas#", "úchas#")
.replace("unca#", "únca#")
.replace("unque#", "únque#")
.replace("uria#", "úria#")
.replace("urias#", "úrias#")
.replace("uye#", "úye#")
.replace("uyen#", "úyen#")
.replace("ula#", "úla#")
.replace("ulas#", "úlas#")
.replace("ulan#", "úlan#")
.replace("ulo#", "úlo#")
.replace("ulos#", "úlos#")
.replace("íbúl", "íbul")
.replace("ínsúl", "ínsul")
.replace("órmúl", "órmul")
.replace("úpúl", "úpul")
.replace("ábúl", "ábul")
.replace("trémúl", "trémul")
.replace("ándúl", "ándul")
.replace("dícúl", "dícul")
.replace("újúl", "újul")
.replace("édúl", "édul")
.replace("ámúl", "ámul")
.replace("ébúl", "ébul")
.replace("ácúl", "ácul")
.replace("ángúl", "ángul")
.replace("ácúl", "ácul")
.replace("úscúl", "úscul")
.replace("írcúl", "írcul")
.replace("álcúl", "álcul")
.replace("ítúl", "ítul")
.replace("úmúl", "úmul")
.replace("ícúl", "ícul")
.replace("íncúl", "íncul")
.replace("ípúl", "ípul")
.replace("ímúl", "ímul")
.replace("éndúl", "éndul")
.replace("áusúl", "áusul")
.replace("ópúl", "ópul")
.replace("úncúl", "úncul")
.replace("újúl", "újul")
.replace("ápsúl", "ápsul")
.replace("ústúl", "ústul")
.replace("ístúl", "ístul")
.replace("urso#", "úrso#")
.replace("ursos#", "úrsos#")
.replace("upo#", "úpo#")
.replace("upos#", "úpos#")
.replace("unes#", "únes#")
.replace("usco#", "úsco#")
.replace("usca#", "úsca#")
.replace("uscas#", "úscas#")
.replace("uscan#", "úscan#")
.replace("usque#", "úsque#")
.replace("usques#", "úsques#")
.replace("usquen#", "úsquen#");
spaacc_u.to_string()
}
pub fn spacoarauca(original_text: &str, usefile: &str, outputfile: &str, reset: &str, red: &str, cyan: &str, yellow: &str) {
let dotend = original_text.to_owned() + ".";
let dotbeg = ".".to_owned() + &dotend;
let lowercase = &dotbeg.to_lowercase();
let pncbeg = spapncbeg(lowercase);
let palesp = spapalesp(&pncbeg);
let spaacc_a = spaaccent_a(&palesp);
let spaacc_e = spaaccent_e(&spaacc_a);
let spaacc_o = spaaccent_o(&spaacc_e);
let spaacc_i = spaaccent_i(&spaacc_o);
let spaacc_u = spaaccent_u(&spaacc_i);
let spasyl = spasyllabes(&spaacc_u);
let strmod = &spasyl
.replace("ch", "ʈ͡ʂʲ")
.replace("ce", "se")
.replace("cé", "sé")
.replace("ci", "si")
.replace("cí", "sí")
.replace('c', "k")
.replace("que", "ke")
.replace("qué", "ké")
.replace("qui", "ki")
.replace('q', "k")
.replace("ké", "kʰɛ̝")
.replace("ke", "kʰɛ̝")
.replace("kó", "kɔ̝")
.replace("ko", "kɔ̝")
.replace("ksi", "k̥si")
.replace("ksí", "k̥sí")
.replace('x', "ks")
.replace("aha", "aʔa")
.replace("aho", "aʔo")
.replace("ahe", "aʔe")
.replace("ahi", "aʔi")
.replace("ahu", "aʔu")
.replace("ahá", "aʔá")
.replace("ahó", "aʔó")
.replace("ahé", "aʔé")
.replace("ahí", "aʔí")
.replace("ahú", "aʔú")
.replace("oha", "oʔa")
.replace("oho", "oʔo")
.replace("óho", "óʔo")
.replace("ohe", "oʔe")
.replace("ohi", "oʔi")
.replace("ohu", "oʔu")
.replace("ohá", "oʔá")
.replace("ohó", "oʔó")
.replace("ohé", "oʔé")
.replace("ohí", "oʔí")
.replace("ohú", "oʔú")
.replace("eha", "eʔa")
.replace("eho", "eʔo")
.replace("ehe", "eʔe")
.replace("ehi", "eʔi")
.replace("ehu", "eʔu")
.replace("ehá", "eʔá")
.replace("ehó", "eʔó")
.replace("ehé", "eʔé")
.replace("ehí", "eʔí")
.replace("ehú", "eʔú")
.replace("iho", "iʔo")
.replace("ihó", "iʔó")
.replace("ihu", "iʔu")
.replace("ihú", "iʔú")
.replace("uha", "uʔa")
.replace("uhá", "uʔá")
.replace("uho", "uʔo")
.replace("úho", "úʔo")
.replace('h', "")
.replace('j', "h")
.replace("ge", "he")
.replace("gé", "hé")
.replace("gi", "hi")
.replace("gí", "hí")
.replace('r', "ɾ")
.replace("subɾ", "subr")
.replace("nɾ", "nr")
.replace("lɾ", "lr")
.replace("sɾ", "sr")
.replace("áɾ#", "á#")
.replace("éɾ#", "éɾ̥#")
.replace("íɾ#", "íɾ̥#")
.replace("#ɾ", "#r")
.replace("ɾɾ", "r")
.replace("oɾ", "ɔ̽ɹ")
.replace("óɾ", "ɔ̈ɹ")
.replace("ɔɾ", "ɔ̝ɹ")
.replace("y#", "i#")
.replace('y', "ɟ͡ʝ")
.replace("ll", "ɟ͡ʝ")
.replace("lt͡ʃ", "lʲt͡ʃ")
.replace("lt", "l̪t")
.replace('b', "β")
.replace("#β", "#b")
.replace("mβ", "mb")
.replace("lβ", "lb")
.replace('v', "β̞")
.replace("fg", "vg")
.replace("fn", "vn")
.replace("gue", "ge")
.replace("gué", "gé")
.replace("gui", "gi")
.replace("guí", "gí")
.replace('ü', "u")
.replace('g', "ɣ")
.replace("ɣl", "ɡl")
.replace("ɣɾ", "ɡɾ")
.replace("lɣ", "lɡ")
.replace("nɣ", "nɡ")
.replace("ád#", "á#")
.replace("íd#", "í#")
.replace('d', "ð̞")
.replace("nð̞", "nd")
.replace("n# #ð̞", "n# #d")
.replace("#ð̞", "#ð")
.replace("lð̞", "ld")
.replace("ɾð̞", "ɾd")
.replace("aβ̞a", "aʔa")
.replace("aβ̞o", "aʔo")
.replace("aβ̞e", "aʔe")
.replace("aβ̞i", "avi")
.replace("aβ̞u", "aʔu")
.replace("oβ̞a", "oʔa")
.replace("oβ̞o", "oʔo")
.replace("oβ̞e", "oʔe")
.replace("oβ̞i", "oʔi")
.replace("oβ̞u", "oʔu")
.replace("eβ̞a", "eʔa")
.replace("eβ̞o", "eʔo")
.replace("eβ̞e", "eʔe")
.replace("eβ̞i", "eʔi")
.replace("eβ̞u", "eʔu")
.replace("iβ̞a", "iʔa")
.replace("iβ̞o", "iʔo")
.replace("iβ̞e", "iʔe")
.replace("iβ̞i", "iʔi")
.replace("iβ̞u", "iʔu")
.replace("uβ̞a", "uʔa")
.replace("uβ̞o", "uʔo")
.replace("uβ̞e", "uʔe")
.replace("uβ̞i", "uʔi")
.replace("uβ̞u", "uʔu")
.replace("að̞a", "aʔa")
.replace("að̞o", "aʔo")
.replace("að̞e", "aʔe")
.replace("að̞i", "avi")
.replace("að̞u", "aʔu")
.replace("oð̞a", "oʔa")
.replace("oð̞o", "oʔo")
.replace("oð̞e", "oʔe")
.replace("oð̞i", "oʔi")
.replace("oð̞u", "oʔu")
.replace("eð̞a", "eʔa")
.replace("eð̞o", "eʔo")
.replace("eð̞e", "eʔe")
.replace("eð̞i", "eʔi")
.replace("eð̞u", "eʔu")
.replace("ið̞a", "iʔa")
.replace("ið̞o", "iʔo")
.replace("ið̞e", "iʔe")
.replace("ið̞i", "iʔi")
.replace("ið̞u", "iʔu")
.replace("uð̞a", "uʔa")
.replace("uð̞o", "uʔo")
.replace("uð̞e", "uʔe")
.replace("uð̞i", "uʔi")
.replace("uð̞u", "uʔu")
.replace("aɣa", "aʔa")
.replace("aɣo", "aʔo")
.replace("aɣe", "aʔe")
.replace("aɣi", "avi")
.replace("aɣu", "aʔu")
.replace("oɣa", "oʔa")
.replace("oɣo", "oʔo")
.replace("oɣe", "oʔe")
.replace("oɣi", "oʔi")
.replace("oɣu", "oʔu")
.replace("eɣa", "eʔa")
.replace("eɣo", "eʔo")
.replace("eɣe", "eʔe")
.replace("eɣi", "eʔi")
.replace("eɣu", "eʔu")
.replace("iɣa", "iʔa")
.replace("iɣo", "iʔo")
.replace("iɣe", "iʔe")
.replace("iɣi", "iʔi")
.replace("iɣu", "iʔu")
.replace("uɣa", "uʔa")
.replace("uɣo", "uʔo")
.replace("uɣe", "uʔe")
.replace("uɣi", "uʔi")
.replace("uɣu", "uʔu")
.replace("áð̞a", "áʔa")
.replace("áð̞o", "áʔo")
.replace("óð̞a", "óʔa")
.replace("óð̞o", "óʔo")
.replace("#las#", "#lah#")
.replace("#los#", "#loh#")
.replace("#nos#", "#noh#")
.replace("#más#", "#máh#")
.replace('z', "s")
.replace('s', "ɬ")
.replace("ɬ#", "ɬ̬#")
.replace("eɬ̬#", "el͡ʒ#")
.replace("éɬ̬#", "él͡ʒ#")
.replace("ɬɣ", "ɬ̬ɣ")
.replace("ɬk", "ɬ̬k")
.replace("ɬð̞", "ɬ̬ð̞")
.replace("ɬm", "m")
.replace("ɬv", "ɬ̬v")
.replace("aɬá", "aɬ̬á")
.replace("aɬó", "aɬ̬ó")
.replace("aɬé", "aɬ̬é")
.replace("aɬí", "aɬ̬í")
.replace("aɬú", "aɬ̬ú")
.replace("áɬa", "áɬ̬a")
.replace("áɬo", "áɬ̬o")
.replace("áɬe", "áɬ̬e")
.replace("áɬi", "áɬ̬i")
.replace("áɬu", "áɬ̬u")
.replace("oɬá", "oɬ̬á")
.replace("oɬó", "oɬ̬ó")
.replace("oɬé", "oɬ̬é")
.replace("oɬí", "oɬ̬í")
.replace("oɬú", "oɬ̬ú")
.replace("óɬa", "óɬ̬a")
.replace("óɬo", "óɬ̬o")
.replace("óɬe", "óɬ̬e")
.replace("óɬi", "óɬ̬i")
.replace("óɬu", "óɬ̬u")
.replace("eɬá", "eɬ̬á")
.replace("eɬó", "eɬ̬ó")
.replace("eɬé", "eɬ̬é")
.replace("eɬí", "eɬ̬í")
.replace("eɬú", "eɬ̬ú")
.replace("éɬa", "éɬ̬a")
.replace("éɬo", "éɬ̬o")
.replace("éɬe", "éɬ̬e")
.replace("éɬi", "éɬ̬i")
.replace("éɬu", "éɬ̬u")
.replace("iɬá", "iɬ̬á")
.replace("iɬó", "iɬ̬ó")
.replace("iɬé", "iɬ̬é")
.replace("iɬí", "iɬ̬í")
.replace("iɬú", "iɬ̬ú")
.replace("íɬa", "íɬ̬a")
.replace("íɬo", "íɬ̬o")
.replace("íɬe", "íɬ̬e")
.replace("íɬi", "íɬ̬i")
.replace("íɬu", "íɬ̬u")
.replace("uɬá", "uɬ̬á")
.replace("uɬó", "uɬ̬ó")
.replace("uɬé", "uɬ̬é")
.replace("uɬí", "uɬ̬í")
.replace("uɬú", "uɬ̬ú")
.replace("úɬa", "úɬ̬a")
.replace("úɬo", "úɬ̬o")
.replace("úɬe", "úɬ̬e")
.replace("úɬi", "úɬ̬i")
.replace("úɬu", "úɬ̬u")
.replace("kɬɬe", "kɬe")
.replace("kɬɬi", "kɬi")
.replace('ɬ', "ɬ̻")
.replace("ɬ̻̬", "ɬ̬")
.replace("nt͡ʃ", "nʲt͡ʃ")
.replace('t', "t̪")
.replace("nt̪", "n̪t̪")
.replace("nk", "ŋk")
.replace("nɡ", "ŋɡ")
.replace("n#", "ŋ#")
.replace("nm", "ɱ̥m")
.replace("ŋ# #m", "ɱ# #m")
.replace("ŋ# #n", "ɱ# #n")
.replace("nβ", "mβ")
.replace("ŋ# #b", "ɱ# #b")
.replace("np", "mp")
.replace("ŋ# #p", "ɱ# #p")
.replace("nf", "mf")
.replace("ŋ# #f", "ɱ# #f")
.replace('ñ', "ɲ")
.replace("ia", "ʲa")
.replace("ie", "ʲe")
.replace("io", "ʲo")
.replace("iu", "ʲu")
.replace("iá", "ʲá")
.replace("ié", "ʲé")
.replace("ió", "ʲó")
.replace("iú", "ʲú")
.replace("ea", "ia")
.replace("eá", "iá")
.replace('á', "ɐ̞")
.replace('a', "ɐ")
.replace('ó', "ɔ̝")
.replace("o#", "ɵ̠#")
.replace("oɬ̬#", "ɵ̠ɬ̬#")
.replace("lɵ̠#", "lo̞#")
.replace("lɵ̠ɬ̬#", "lo̞ɬ̬#")
.replace("ɾɵ̠#", "ɾo̞#")
.replace("ɾɵ̠ɬ̬#", "ɾo̞ɬ̬#")
.replace("rɵ̠#", "ro̞#")
.replace("rɵ̠ɬ̬#", "ro̞ɬ̬#")
.replace("ɡɵ̠#", "ɡə̠#")
.replace("ɡɵ̠ɬ̬#", "ɡə̠ɬ̬#")
.replace("ɣɵ̠#", "ɣə̠#")
.replace("ɣɵ̠s̬#", "ɣə̠s̬#")
.replace("mɵ̠#", "mo̞#")
.replace("mɵ̠ɬ̬#", "mo̞ɬ̬#")
.replace("nɵ̠#", "no̞#")
.replace("nɵ̠ɬ̬#", "no̞ɬ̬#")
.replace("ɲɵ̠#", "ɲo̞#")
.replace("ɲɵ̠ɬ̬#", "ɲo̞ɬ̬#")
.replace('o', "o̞")
.replace("o̞̞", "o̞")
.replace('é', "ɛ̝")
.replace('e', "e̞")
.replace('í', "i")
.replace('i', "i̞")
.replace('ú', "u")
.replace('u', "u̞")
.replace("mu̞", "mũ̞")
.replace("ɔ̝ɱ̥m", "ɔ̝̃ɱ̥m")
.replace("e̞ɱ̥m", "ẽ̞ɱ̥m")
.replace("i̞ɱ̥m", "ĩ̞ɱ̥m")
.replace("u̞ɱ̥m", "ũ̞ɱ̥m")
.replace("ɐnn", "ɐ̃nn")
.replace("o̞nn", "õ̞nn")
.replace("e̞nn", "ẽ̞nn")
.replace("i̞nn", "ĩ̞nn")
.replace("u̞nn", "ũ̞nn")
.replace("ɐ̞ɱ", "ɐ̞̃ɱ")
.replace("o̞ɱ", "õ̞ɱ")
.replace("e̞ɱ", "ẽɱ")
.replace("ɐɱ", "ɐ̃ɱ")
.replace("ɔ̝ɱ", "ɔ̝̃ɱ")
.replace("ɛ̝ɱ", "ɛ̝̃ɱ")
.replace("i̞ɱ", "ĩ̞ɱ")
.replace("u̞ɱ", "ũ̞ɱ")
.replace("ɐ̞ŋ", "ɐ̞̃ŋ")
.replace("o̞ŋ", "õ̞ŋ")
.replace("e̞ŋ", "ẽ̞ŋ")
.replace("ɐŋ", "ɐ̃ŋ")
.replace("ɔ̝ŋ", "ɔ̝̃ŋ")
.replace("ɛ̝ŋ", "ɛ̝̃ŋ")
.replace("i̞ŋ", "ĩ̞ŋ")
.replace("u̞ŋ", "ũ̞ŋ")
.replace("ɐ̞n̪", "ɐ̞̃n̪")
.replace("o̞n̪", "õ̞n̪")
.replace("e̞n̪", "ẽ̞n̪")
.replace("ɐn̪", "ɐ̃n̪")
.replace("ɔ̝n̪", "ɔ̝̃n̪")
.replace("ɔn̪", "ɔ̃n̪")
.replace("ɛ̝n̪", "ɛ̝̃n̪")
.replace("i̞n̪", "ĩ̞n̪")
.replace("u̞n̪", "ũ̞n̪")
.replace("ɐnʲ", "ɐ̃nʲ")
.replace("ɐ̞nʲ", "ɐ̞̃nʲ")
.replace("o̞nʲ", "õ̞nʲ")
.replace("ɔ̝nʲ", "ɔ̝̃nʲ")
.replace("e̞nʲ", "ẽ̞nʲ")
.replace("ɛ̝nʲ", "ɛ̝̃nʲ")
.replace("i̞nʲ", "ĩ̞nʲ")
.replace("u̞nʲ", "ũ̞nʲ");
let result = spapncend(strmod);
if usefile == "new" {
let mut file = std::fs::File::create(outputfile).expect(&(red.to_owned() + "The output file could not be created!" + reset));
file.write_all("ARAUCA, CO:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "old" {
let mut file = OpenOptions::new().append(true).open(outputfile).expect(&(red.to_owned() + "cannot open file" + reset));
file.write_all("ARAUCA, CO:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "terminal" {
println!();
println!("{}", cyan.to_owned() + "Arauca" + reset + ", " + cyan + "CO" + reset + ":");
println!();
print!("{yellow}");
println!("{result}");
print!("{reset}");
}
}
pub fn spacobogota(original_text: &str, usefile: &str, outputfile: &str, reset: &str, red: &str, cyan: &str, yellow: &str) {
let dotend = original_text.to_owned() + ".";
let dotbeg = ".".to_owned() + &dotend;
let lowercase = &dotbeg.to_lowercase();
let pncbeg = spapncbeg(lowercase);
let palesp = spapalesp(&pncbeg);
let spaacc_a = spaaccent_a(&palesp);
let spaacc_e = spaaccent_e(&spaacc_a);
let spaacc_o = spaaccent_o(&spaacc_e);
let spaacc_i = spaaccent_i(&spaacc_o);
let spaacc_u = spaaccent_u(&spaacc_i);
let spasyl = spasyllabes(&spaacc_u);
let strmod = &spasyl
.replace("ch", "t͡ʃ")
.replace("ce", "se")
.replace("cé", "sé")
.replace("ci", "si")
.replace("cí", "sí")
.replace('c', "k")
.replace("que", "ke")
.replace("qué", "ké")
.replace("qui", "ki")
.replace('q', "k")
.replace("ké", "kɛ")
.replace("ke", "kɛ")
.replace("kó", "kɔ")
.replace("ko", "kɔ")
.replace('x', "ks")
.replace("aha", "aʔa")
.replace("aho", "aʔo")
.replace("ahe", "aʔe")
.replace("ahi", "aʔi")
.replace("ahu", "aʔu")
.replace("ahá", "aʔá")
.replace("ahó", "aʔó")
.replace("ahé", "aʔé")
.replace("ahí", "aʔí")
.replace("ahú", "aʔú")
.replace("oha", "oʔa")
.replace("oho", "oʔo")
.replace("óho", "óʔo")
.replace("ohe", "oʔe")
.replace("ohi", "oʔi")
.replace("ohu", "oʔu")
.replace("ohá", "oʔá")
.replace("ohó", "oʔó")
.replace("ohé", "oʔé")
.replace("ohí", "oʔí")
.replace("ohú", "oʔú")
.replace("eha", "eʔa")
.replace("eho", "eʔo")
.replace("ehe", "eʔe")
.replace("ehi", "eʔi")
.replace("ehu", "eʔu")
.replace("ehá", "eʔá")
.replace("ehó", "eʔó")
.replace("ehé", "eʔé")
.replace("ehí", "eʔí")
.replace("ehú", "eʔú")
.replace("iho", "iʔo")
.replace("ihó", "iʔó")
.replace("ihu", "iʔu")
.replace("ihú", "iʔú")
.replace("uha", "uʔa")
.replace("uhá", "uʔá")
.replace("uho", "uʔo")
.replace("úho", "úʔo")
.replace('h', "")
.replace('j', "h")
.replace("ge", "he")
.replace("gé", "hé")
.replace("gi", "hi")
.replace("gí", "hí")
.replace('r', "ɾ")
.replace("subɾ", "subr")
.replace("nɾ", "nr")
.replace("lɾ", "lr")
.replace("sɾ", "sr")
.replace("#ɾ", "#r")
.replace("ɾɾ", "r")
.replace("oɾ", "oɹ")
.replace("óɾ", "óɹ")
.replace("ɔɾ", "ɔɹ")
.replace("y#", "i#")
.replace('y', "ɟ͡ʝ")
.replace("ll", "ɟ͡ʝ")
.replace("lt͡ʃ", "lʲt͡ʃ")
.replace("lt", "l̪t")
.replace('b', "β")
.replace("#β", "#b")
.replace("mβ", "mb")
.replace("lβ", "lb")
.replace('v', "β̞")
.replace("fg", "vg")
.replace("fn", "vn")
.replace("gue", "ge")
.replace("gué", "gé")
.replace("gui", "gi")
.replace("guí", "gí")
.replace('ü', "u")
.replace('g', "ɣ")
.replace("ɣl", "ɡl")
.replace("ɣɾ", "ɡɾ")
.replace("lɣ", "lɡ")
.replace("ɾɣ", "ɾɡ")
.replace("nɣ", "nɡ")
.replace("ád#", "á#")
.replace("íd#", "í#")
.replace('d', "ð̞")
.replace("nð̞", "nd")
.replace("n# #ð̞", "n# #d")
.replace("#ð̞", "#ð")
.replace("lð̞", "ld")
.replace("ɾð̞", "ɾd")
.replace("áð̞a", "áʔa")
.replace("áð̞o", "áʔo")
.replace("óð̞a", "óʔa")
.replace("óð̞o", "óʔo")
.replace('z', "s")
.replace('s', "ɬ")
.replace("ɬ#", "ɬ̬#")
.replace("eɬ̬#", "el͡ʒ#")
.replace("éɬ̬#", "él͡ʒ#")
.replace("ɬɣ", "ɬ̬ɣ")
.replace("ɬk", "ɬ̬k")
.replace("ɬð̞", "ɬ̬ð̞")
.replace("ɬm", "ɬ̬m")
.replace("ɬv", "ɬ̬v")
.replace("aɬá", "aɬ̬á")
.replace("aɬó", "aɬ̬ó")
.replace("aɬé", "aɬ̬é")
.replace("aɬí", "aɬ̬í")
.replace("aɬú", "aɬ̬ú")
.replace("áɬa", "áɬ̬a")
.replace("áɬo", "áɬ̬o")
.replace("áɬe", "áɬ̬e")
.replace("áɬi", "áɬ̬i")
.replace("áɬu", "áɬ̬u")
.replace("oɬá", "oɬ̬á")
.replace("oɬó", "oɬ̬ó")
.replace("oɬé", "oɬ̬é")
.replace("oɬí", "oɬ̬í")
.replace("oɬú", "oɬ̬ú")
.replace("óɬa", "óɬ̬a")
.replace("óɬo", "óɬ̬o")
.replace("óɬe", "óɬ̬e")
.replace("óɬi", "óɬ̬i")
.replace("óɬu", "óɬ̬u")
.replace("eɬá", "eɬ̬á")
.replace("eɬó", "eɬ̬ó")
.replace("eɬé", "eɬ̬é")
.replace("eɬí", "eɬ̬í")
.replace("eɬú", "eɬ̬ú")
.replace("éɬa", "éɬ̬a")
.replace("éɬo", "éɬ̬o")
.replace("éɬe", "éɬ̬e")
.replace("éɬi", "éɬ̬i")
.replace("éɬu", "éɬ̬u")
.replace("iɬá", "iɬ̬á")
.replace("iɬó", "iɬ̬ó")
.replace("iɬé", "iɬ̬é")
.replace("iɬí", "iɬ̬í")
.replace("iɬú", "iɬ̬ú")
.replace("íɬa", "íɬ̬a")
.replace("íɬo", "íɬ̬o")
.replace("íɬe", "íɬ̬e")
.replace("íɬi", "íɬ̬i")
.replace("íɬu", "íɬ̬u")
.replace("uɬá", "uɬ̬á")
.replace("uɬó", "uɬ̬ó")
.replace("uɬé", "uɬ̬é")
.replace("uɬí", "uɬ̬í")
.replace("uɬú", "uɬ̬ú")
.replace("úɬa", "úɬ̬a")
.replace("úɬo", "úɬ̬o")
.replace("úɬe", "úɬ̬e")
.replace("úɬi", "úɬ̬i")
.replace("úɬu", "úɬ̬u")
.replace("kɬɬe", "kɬe")
.replace("kɬɬi", "kɬi")
.replace('ɬ', "ɬ̻")
.replace("ɬ̻̬", "ɬ̬")
.replace("nt͡ʃ", "nʲt͡ʃ")
.replace('t', "t̪")
.replace("t̪͡ʃ", "t̠͡ʃ")
.replace("nt̪", "n̪t̪")
.replace("nk", "ŋk")
.replace("nɡ", "ŋɡ")
.replace("nm", "ɱ̥m")
.replace("n# #m", "m# #m")
.replace("n# #n", "ɱ# #n")
.replace("nβ", "mβ")
.replace("n# #β", "m# #β")
.replace("n# #b", "m# #b")
.replace("np", "mp")
.replace("n# #p", "m# #p")
.replace("nf", "ɱf")
.replace("n# #f", "ɱ# #f")
.replace('ñ', "ɲ")
.replace("ia", "ja")
.replace("ie", "je")
.replace("io", "jo")
.replace("iu", "ju")
.replace("iá", "já")
.replace("ié", "jé")
.replace("ió", "jó")
.replace("iú", "jú")
.replace("ea", "ia")
.replace("eá", "iá")
.replace("ká", "kɑ̈")
.replace("ka", "kɑ̈")
.replace('á', "ɐ̞")
.replace('a', "ɐ")
.replace('ó', "ɔ̝")
.replace("o#", "ʊ#")
.replace("oɬ̬#", "ʊɬ̬#")
.replace('o', "o̞")
.replace("t̪ʊ#", "t̪ö#")
.replace("t̪ʊɬ̬#", "t̪öɬ̬#")
.replace("t̪͡ʃʊ#", "t̪͡ʃö#")
.replace("t̪͡ʃʊɬ̬#", "t̪͡ʃöɬ̬#")
.replace("ɬ̻ʊ#", "ɬ̻ö#")
.replace("ɬ̻ʊɬ̬#", "ɬ̻öɬ̬#")
.replace("ɬ̬ʊ#", "ɬ̬ö#")
.replace("ɬ̬ʊɬ̬#", "ɬ̬öɬ̬#")
.replace("ɟ͡ʝʊ#", "ɟ͡ʝö#")
.replace("ɡʊ#", "ɡə̠#")
.replace("ɡʊɬ̬#", "ɡə̠ɬ̬#")
.replace("ɣʊ#", "ɣə̠#")
.replace("ɣʊɬ̬#", "ɣə̠ɬ̬#")
.replace("hʊ#", "hə̠#")
.replace("hʊɬ̬#", "hə̠ɬ̬#")
.replace("lʊ#", "lo̞#")
.replace("lʊɬ̬#", "lo̞ɬ̬#")
.replace("ɾʊ#", "ɾo̞#")
.replace("ɾʊɬ̬#", "ɾo̞ɬ̬#")
.replace("rʊ#", "ro̞#")
.replace("rʊɬ̬#", "ro̞ɬ̬#")
.replace("mʊ#", "mo̞#")
.replace("mʊɬ̬#", "mo̞ɬ̬#")
.replace("nʊ#", "no̞#")
.replace("nʊɬ̬#", "no̞ɬ̬#")
.replace("ɲʊ#", "ɲo̞#")
.replace("ɲʊɬ̬#", "ɲo̞ɬ̬#")
.replace('é', "ɛ̝")
.replace('e', "e̞")
.replace('í', "i")
.replace('i', "i̞")
.replace('ú', "u")
.replace('u', "u̞")
.replace("mu̞", "mũ̞")
.replace("ɔɱ̥m", "ɔ̃ɱ̥m")
.replace("e̞ɱ̥m", "ẽ̞ɱ̥m")
.replace("i̞ɱ̥m", "ĩ̞ɱ̥m")
.replace("u̞ɱ̥m", "ũ̞ɱ̥m")
.replace("ɐnn", "ɐ̃nn")
.replace("o̞nn", "õ̞nn")
.replace("e̞nn", "ẽ̞nn")
.replace("i̞nn", "ĩ̞nn")
.replace("u̞nn", "ũ̞nn")
.replace("ɐ̞ɱ", "ɐ̞̃ɱ")
.replace("o̞ɱ", "õ̞ɱ")
.replace("e̞ɱ", "ẽɱ")
.replace("ɐɱ", "ɐ̃ɱ")
.replace("ɑ̈ɱ", "ɑ̟̃ɱ")
.replace("ɔ̝ɱ", "ɔ̝̃ɱ")
.replace("ɔɱ", "ɔ̃ɱ")
.replace("ɛ̝ɱ", "ɛ̝̃ɱ")
.replace("i̞ɱ", "ĩ̞ɱ")
.replace("u̞ɱ", "ũ̞ɱ")
.replace("ɐ̞ŋ", "ɐ̞̃ŋ")
.replace("o̞ŋ", "õ̞ŋ")
.replace("e̞ŋ", "ẽ̞ŋ")
.replace("ɐŋ", "ɐ̃ŋ")
.replace("ɑ̈ŋ", "ɑ̟̃ŋ")
.replace("ɔ̝ŋ", "ɔ̝̃ŋ")
.replace("ɔŋ", "ɔ̃ŋ")
.replace("ɛ̝ŋ", "ɛ̝̃ŋ")
.replace("i̞ŋ", "ĩ̞ŋ")
.replace("u̞ŋ", "ũ̞ŋ")
.replace("ɐ̞n̪", "ɐ̞̃n̪")
.replace("ɑ̈n̪", "ɑ̟̃n̪")
.replace("o̞n̪", "õ̞n̪")
.replace("e̞n̪", "ẽ̞n̪")
.replace("ɐn̪", "ɐ̃n̪")
.replace("ɔ̝n̪", "ɔ̝̃n̪")
.replace("ɔn̪", "ɔ̃n̪")
.replace("ɛ̝n̪", "ɛ̝̃n̪")
.replace("i̞n̪", "ĩ̞n̪")
.replace("u̞n̪", "ũ̞n̪")
.replace("ɐnʲ", "ɐ̃nʲ")
.replace("ɐ̞nʲ", "ɐ̞̃nʲ")
.replace("ɑ̈nʲ", "ɑ̟̃nʲ")
.replace("o̞nʲ", "õ̞nʲ")
.replace("ɔ̝nʲ", "ɔ̝̃nʲ")
.replace("ɔnʲ", "ɔ̃nʲ")
.replace("e̞nʲ", "ẽ̞nʲ")
.replace("ɛ̝nʲ", "ɛ̝̃nʲ")
.replace("i̞nʲ", "ĩ̞nʲ")
.replace("u̞nʲ", "ũ̞nʲ");
let result = spapncend(strmod);
if usefile == "new" {
let mut file = std::fs::File::create(outputfile).expect(&(red.to_owned() + "The output file could not be created!" + reset));
file.write_all("BOGOTÁ, CO:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "old" {
let mut file = OpenOptions::new().append(true).open(outputfile).expect(&(red.to_owned() + "cannot open file" + reset));
file.write_all("BOGOTÁ, CO:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "terminal" {
println!();
println!("{}", cyan.to_owned() + "Bogotá" + reset + ", " + cyan + "CO" + reset + ":");
println!();
print!("{yellow}");
println!("{result}");
print!("{reset}");
}
}
pub fn spacobucaramanga(original_text: &str, usefile: &str, outputfile: &str, reset: &str, red: &str, cyan: &str, yellow: &str) {
let dotend = original_text.to_owned() + ".";
let dotbeg = ".".to_owned() + &dotend;
let lowercase = &dotbeg.to_lowercase();
let pncbeg = spapncbeg(lowercase);
let palesp = spapalesp(&pncbeg);
let spaacc_a = spaaccent_a(&palesp);
let spaacc_e = spaaccent_e(&spaacc_a);
let spaacc_o = spaaccent_o(&spaacc_e);
let spaacc_i = spaaccent_i(&spaacc_o);
let spaacc_u = spaaccent_u(&spaacc_i);
let spasyl = spasyllabes(&spaacc_u);
let strmod = &spasyl
.replace("ch", "t͡ʃ")
.replace("ce", "se")
.replace("cé", "sé")
.replace("ci", "si")
.replace("cí", "sí")
.replace('c', "k")
.replace("que", "ke")
.replace("qué", "ké")
.replace("qui", "ki")
.replace('q', "k")
.replace("ké", "kʰɛ̝")
.replace("ke", "kʰɛ̝")
.replace("kó", "kɔ̝")
.replace("ko", "kɔ̝")
.replace('x', "ks")
.replace("aha", "aʔa")
.replace("aho", "aʔo")
.replace("ahe", "aʔe")
.replace("ahi", "aʔi")
.replace("ahu", "aʔu")
.replace("ahá", "aʔá")
.replace("ahó", "aʔó")
.replace("ahé", "aʔé")
.replace("ahí", "aʔí")
.replace("ahú", "aʔú")
.replace("oha", "oʔa")
.replace("oho", "oʔo")
.replace("óho", "óʔo")
.replace("ohe", "oʔe")
.replace("ohi", "oʔi")
.replace("ohu", "oʔu")
.replace("ohá", "oʔá")
.replace("ohó", "oʔó")
.replace("ohé", "oʔé")
.replace("ohí", "oʔí")
.replace("ohú", "oʔú")
.replace("eha", "eʔa")
.replace("eho", "eʔo")
.replace("ehe", "eʔe")
.replace("ehi", "eʔi")
.replace("ehu", "eʔu")
.replace("ehá", "eʔá")
.replace("ehó", "eʔó")
.replace("ehé", "eʔé")
.replace("ehí", "eʔí")
.replace("ehú", "eʔú")
.replace("iho", "iʔo")
.replace("ihó", "iʔó")
.replace("ihu", "iʔu")
.replace("ihú", "iʔú")
.replace("uha", "uʔa")
.replace("uhá", "uʔá")
.replace("uho", "uʔo")
.replace("úho", "úʔo")
.replace('h', "")
.replace('j', "h")
.replace("ge", "he")
.replace("gé", "hé")
.replace("gi", "hi")
.replace("gí", "hí")
.replace('r', "ɾ")
.replace("subɾ", "subr")
.replace("nɾ", "nr")
.replace("lɾ", "lr")
.replace("sɾ", "sr")
.replace("#ɾ", "#r")
.replace("ɾɾ", "r")
.replace("oɾ", "ɔ̽ɹ")
.replace("óɾ", "ɔ̈ɹ")
.replace("ɔɾ", "ɔ̝ɹ")
.replace("y#", "i#")
.replace('y', "ɟ͡ʝ")
.replace("ll", "ɟ͡ʝ")
.replace("lt͡ʃ", "lʲt͡ʃ")
.replace("lt", "l̪t")
.replace('b', "β")
.replace("#β", "#b")
.replace("mβ", "mb")
.replace("lβ", "lb")
.replace('v', "β̞")
.replace("fg", "vg")
.replace("fn", "vn")
.replace("gue", "ge")
.replace("gué", "gé")
.replace("gui", "gi")
.replace("guí", "gí")
.replace('ü', "u")
.replace('g', "ɣ")
.replace("ɣl", "ɡl")
.replace("ɣɾ", "ɡɾ")
.replace("lɣ", "lɡ")
.replace("ɾɣ", "ɾɡ")
.replace("nɣ", "nɡ")
.replace("ád#", "á#")
.replace("íd#", "í#")
.replace('d', "ð̞")
.replace("nð̞", "nd")
.replace("n# #ð̞", "n# #d")
.replace("#ð̞", "#ð")
.replace("lð̞", "ld")
.replace("ɾð̞", "ɾd")
.replace("áð̞a", "áʔa")
.replace("áð̞o", "áʔo")
.replace("óð̞a", "óʔa")
.replace("óð̞o", "óʔo")
.replace('z', "s")
.replace('s', "ɬ")
.replace("ɬ#", "ɬ̬#")
.replace("eɬ̬#", "el͡ʒ#")
.replace("éɬ̬#", "él͡ʒ#")
.replace("ɬɣ", "ɬ̬ɣ")
.replace("ɬk", "ɬ̬k")
.replace("ɬð̞", "ɬ̬ð̞")
.replace("ɬm", "ɬ̬m")
.replace("ɬv", "ɬ̬v")
.replace("aɬá", "aɬ̬á")
.replace("aɬó", "aɬ̬ó")
.replace("aɬé", "aɬ̬é")
.replace("aɬí", "aɬ̬í")
.replace("aɬú", "aɬ̬ú")
.replace("áɬa", "áɬ̬a")
.replace("áɬo", "áɬ̬o")
.replace("áɬe", "áɬ̬e")
.replace("áɬi", "áɬ̬i")
.replace("áɬu", "áɬ̬u")
.replace("oɬá", "oɬ̬á")
.replace("oɬó", "oɬ̬ó")
.replace("oɬé", "oɬ̬é")
.replace("oɬí", "oɬ̬í")
.replace("oɬú", "oɬ̬ú")
.replace("óɬa", "óɬ̬a")
.replace("óɬo", "óɬ̬o")
.replace("óɬe", "óɬ̬e")
.replace("óɬi", "óɬ̬i")
.replace("óɬu", "óɬ̬u")
.replace("eɬá", "eɬ̬á")
.replace("eɬó", "eɬ̬ó")
.replace("eɬé", "eɬ̬é")
.replace("eɬí", "eɬ̬í")
.replace("eɬú", "eɬ̬ú")
.replace("éɬa", "éɬ̬a")
.replace("éɬo", "éɬ̬o")
.replace("éɬe", "éɬ̬e")
.replace("éɬi", "éɬ̬i")
.replace("éɬu", "éɬ̬u")
.replace("iɬá", "iɬ̬á")
.replace("iɬó", "iɬ̬ó")
.replace("iɬé", "iɬ̬é")
.replace("iɬí", "iɬ̬í")
.replace("iɬú", "iɬ̬ú")
.replace("íɬa", "íɬ̬a")
.replace("íɬo", "íɬ̬o")
.replace("íɬe", "íɬ̬e")
.replace("íɬi", "íɬ̬i")
.replace("íɬu", "íɬ̬u")
.replace("uɬá", "uɬ̬á")
.replace("uɬó", "uɬ̬ó")
.replace("uɬé", "uɬ̬é")
.replace("uɬí", "uɬ̬í")
.replace("uɬú", "uɬ̬ú")
.replace("úɬa", "úɬ̬a")
.replace("úɬo", "úɬ̬o")
.replace("úɬe", "úɬ̬e")
.replace("úɬi", "úɬ̬i")
.replace("úɬu", "úɬ̬u")
.replace("kɬɬe", "kɬe")
.replace("kɬɬi", "kɬi")
.replace('ɬ', "ɬ̻")
.replace("ɬ̻̬", "ɬ̬")
.replace("nt͡ʃ", "nʲt͡ʃ")
.replace('t', "t̪")
.replace("t̪͡ʃ", "t̠͡ʃ")
.replace("nt̪", "n̪t̪")
.replace("nk", "ŋk")
.replace("nɡ", "ŋɡ")
.replace("nm", "ɱ̥m")
.replace("n# #m", "m# #m")
.replace("n# #n", "ɱ# #n")
.replace("nβ", "mβ")
.replace("n# #β", "m# #β")
.replace("n# #b", "m# #b")
.replace("np", "mp")
.replace("n# #p", "m# #p")
.replace("nf", "ɱf")
.replace("n# #f", "ɱ# #f")
.replace('ñ', "ɲ")
.replace("ia", "ja")
.replace("ie", "je")
.replace("io", "jo")
.replace("iu", "ju")
.replace("iá", "já")
.replace("ié", "jé")
.replace("ió", "jó")
.replace("iú", "jú")
.replace("ea", "ia")
.replace("eá", "iá")
.replace("ká", "kɑ̈")
.replace("ka", "kɑ̈")
.replace('á', "ɐ̞")
.replace('a', "ɐ")
.replace('ó', "ɔ̝")
.replace("o#", "ö#")
.replace("oɬ̬#", "öɬ̬#")
.replace("lö#", "lo̞#")
.replace("löɬ̬#", "lo̞ɬ̬#")
.replace("ɾö#", "ɾo̞#")
.replace("ɾöɬ̬#", "ɾo̞ɬ̬#")
.replace("rö#", "ro̞#")
.replace("röɬ̬#", "ro̞ɬ̬#")
.replace("ɡö#", "ɡə̠#")
.replace("ɡöɬ̬#", "ɡə̠ɬ̬#")
.replace("ɣö#", "ɣə̠#")
.replace("ɣöɬ̬#", "ɣə̠ɬ̬#")
.replace("hö#", "hə̠#")
.replace("höɬ̬#", "hə̠ɬ̬#")
.replace("mö#", "mo̞#")
.replace("möɬ̬#", "mo̞ɬ̬#")
.replace("nö#", "no̞#")
.replace("nöɬ̬#", "no̞ɬ̬#")
.replace("ɲö#", "ɲo̞#")
.replace("ɲöɬ̬#", "ɲo̞ɬ̬#")
.replace('o', "o̞")
.replace("o̞̞", "o̞")
.replace("ö̞", "ö")
.replace('é', "ɛ̝")
.replace('e', "e̞")
.replace('í', "i")
.replace('i', "i̞")
.replace('ú', "u")
.replace('u', "u̞")
.replace("mu̞", "mũ̞")
.replace("ɔ̝ɱ̥m", "ɔ̝̃ɱ̥m")
.replace("e̞ɱ̥m", "ẽ̞ɱ̥m")
.replace("i̞ɱ̥m", "ĩ̞ɱ̥m")
.replace("u̞ɱ̥m", "ũ̞ɱ̥m")
.replace("ɐnn", "ɐ̃nn")
.replace("o̞nn", "õ̞nn")
.replace("e̞nn", "ẽ̞nn")
.replace("i̞nn", "ĩ̞nn")
.replace("u̞nn", "ũ̞nn")
.replace("ɐ̞ɱ", "ɐ̞̃ɱ")
.replace("o̞ɱ", "õ̞ɱ")
.replace("e̞ɱ", "ẽɱ")
.replace("ɐɱ", "ɐ̃ɱ")
.replace("ɑ̈ɱ", "ɑ̟̃ɱ")
.replace("ɔ̝ɱ", "ɔ̝̃ɱ")
.replace("ɛ̝ɱ", "ɛ̝̃ɱ")
.replace("i̞ɱ", "ĩ̞ɱ")
.replace("u̞ɱ", "ũ̞ɱ")
.replace("ɐ̞ŋ", "ɐ̞̃ŋ")
.replace("o̞ŋ", "õ̞ŋ")
.replace("e̞ŋ", "ẽ̞ŋ")
.replace("ɐŋ", "ɐ̃ŋ")
.replace("ɑ̈ŋ", "ɑ̟̃ŋ")
.replace("ɔ̝ŋ", "ɔ̝̃ŋ")
.replace("ɛ̝ŋ", "ɛ̝̃ŋ")
.replace("i̞ŋ", "ĩ̞ŋ")
.replace("u̞ŋ", "ũ̞ŋ")
.replace("ɐ̞n̪", "ɐ̞̃n̪")
.replace("ɑ̈n̪", "ɑ̟̃n̪")
.replace("o̞n̪", "õ̞n̪")
.replace("e̞n̪", "ẽ̞n̪")
.replace("ɐn̪", "ɐ̃n̪")
.replace("ɔ̝n̪", "ɔ̝̃n̪")
.replace("ɔn̪", "ɔ̃n̪")
.replace("ɛ̝n̪", "ɛ̝̃n̪")
.replace("i̞n̪", "ĩ̞n̪")
.replace("u̞n̪", "ũ̞n̪")
.replace("ɐnʲ", "ɐ̃nʲ")
.replace("ɐ̞nʲ", "ɐ̞̃nʲ")
.replace("ɑ̈nʲ", "ɑ̟̃nʲ")
.replace("o̞nʲ", "õ̞nʲ")
.replace("ɔ̝nʲ", "ɔ̝̃nʲ")
.replace("e̞nʲ", "ẽ̞nʲ")
.replace("ɛ̝nʲ", "ɛ̝̃nʲ")
.replace("i̞nʲ", "ĩ̞nʲ")
.replace("u̞nʲ", "ũ̞nʲ");
let result = spapncend(strmod);
if usefile == "new" {
let mut file = std::fs::File::create(outputfile).expect(&(red.to_owned() + "The output file could not be created!" + reset));
file.write_all("BUCARAMANGA, CO:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "old" {
let mut file = OpenOptions::new().append(true).open(outputfile).expect(&(red.to_owned() + "cannot open file" + reset));
file.write_all("BUCARAMANGA, CO:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "terminal" {
println!();
println!("{}", cyan.to_owned() + "Bucaramanga" + reset + ", " + cyan + "CO" + reset + ":");
println!();
print!("{yellow}");
println!("{result}");
print!("{reset}");
}
}
pub fn spacocali(original_text: &str, usefile: &str, outputfile: &str, reset: &str, red: &str, cyan: &str, yellow: &str) {
let dotend = original_text.to_owned() + ".";
let dotbeg = ".".to_owned() + &dotend;
let lowercase = &dotbeg.to_lowercase();
let pncbeg = spapncbeg(lowercase);
let palesp = spapalesp(&pncbeg);
let spaacc_a = spaaccent_a(&palesp);
let spaacc_e = spaaccent_e(&spaacc_a);
let spaacc_o = spaaccent_o(&spaacc_e);
let spaacc_i = spaaccent_i(&spaacc_o);
let spaacc_u = spaaccent_u(&spaacc_i);
let spasyl = spasyllabes(&spaacc_u);
let strmod = &spasyl
.replace("ch", "t͡ʃ")
.replace("ce", "se")
.replace("cé", "sé")
.replace("ci", "si")
.replace("cí", "sí")
.replace('c', "k")
.replace("que", "ke")
.replace("qué", "ké")
.replace("qui", "ki")
.replace('q', "k")
.replace("ké", "kɛ̈ˑ")
.replace("ke", "kɛ̈")
.replace("kó", "kɔ̈ˑ")
.replace("ko", "kɔ̈")
.replace('x', "ks")
.replace("aha", "aʔa")
.replace("aho", "aʔo")
.replace("ahe", "aʔe")
.replace("ahi", "aʔi")
.replace("ahu", "aʔu")
.replace("ahá", "aʔá")
.replace("ahó", "aʔó")
.replace("ahé", "aʔé")
.replace("ahí", "aʔí")
.replace("ahú", "aʔú")
.replace("oha", "oʔa")
.replace("oho", "oʔo")
.replace("óho", "óʔo")
.replace("ohe", "oʔe")
.replace("ohi", "oʔi")
.replace("ohu", "oʔu")
.replace("ohá", "oʔá")
.replace("ohó", "oʔó")
.replace("ohé", "oʔé")
.replace("ohí", "oʔí")
.replace("ohú", "oʔú")
.replace("eha", "eʔa")
.replace("eho", "eʔo")
.replace("ehe", "eʔe")
.replace("ehi", "eʔi")
.replace("ehu", "eʔu")
.replace("ehá", "eʔá")
.replace("ehó", "eʔó")
.replace("ehé", "eʔé")
.replace("ehí", "eʔí")
.replace("ehú", "eʔú")
.replace("iho", "iʔo")
.replace("ihó", "iʔó")
.replace("ihu", "iʔu")
.replace("ihú", "iʔú")
.replace("uha", "uʔa")
.replace("uhá", "uʔá")
.replace("uho", "uʔo")
.replace("úho", "úʔo")
.replace('h', "")
.replace('j', "h")
.replace("ge", "he")
.replace("gé", "hé")
.replace("gi", "hi")
.replace("gí", "hí")
.replace('r', "ɾ")
.replace("subɾ", "subr")
.replace("nɾ", "nr")
.replace("lɾ", "lr")
.replace("sɾ", "sr")
.replace("#ɾ", "#r")
.replace("ɾɾ", "r")
.replace("oɾ", "oɹ")
.replace("óɾ", "óɹ")
.replace("ɔ̈ɾ", "ɔ̈ɹ")
.replace("ɔ̈ˑɾ", "ɔ̈ˑɹ")
.replace("y#", "i#")
.replace('y', "ɟ͡ʝ")
.replace("ll", "ɟ͡ʝ")
.replace("lt͡ʃ", "lʲt͡ʃ")
.replace("lt", "l̪t")
.replace('b', "β")
.replace("#β", "#b")
.replace("mβ", "ɱb̪")
.replace("lβ", "lb̪")
.replace("l# #b", "l# #b̪")
.replace('v', "β̞")
.replace("fg", "vg")
.replace("fn", "vn")
.replace("gue", "ge")
.replace("gué", "gé")
.replace("gui", "gi")
.replace("guí", "gí")
.replace('ü', "u")
.replace('g', "ɣ")
.replace("ɣl", "ɡl")
.replace("ɣɾ", "ɡɾ")
.replace("lɣ", "lɡ")
.replace("nɣ", "nɡ")
.replace("ád#", "á#")
.replace("íd#", "í#")
.replace('d', "ð̞")
.replace("nð̞", "nd")
.replace("n# #ð̞", "n# #d")
.replace("#ð̞", "#ð")
.replace("lð̞", "ld")
.replace("ɾð̞", "ɾd")
.replace("áð̞a", "áʔa")
.replace("áð̞o", "áʔo")
.replace("óð̞a", "óʔa")
.replace("óð̞o", "óʔo")
.replace('z', "s")
.replace("s#", "s̬#")
.replace("es̬#", "ez̻#")
.replace("és̬#", "éz̻#")
.replace("sɣ", "s̬ɣ")
.replace("sk", "s̬k")
.replace("sð̞", "s̬ð̞")
.replace("sm", "s̬m")
.replace("sv", "s̬v")
.replace("asá", "as̬á")
.replace("asó", "as̬ó")
.replace("asé", "as̬é")
.replace("así", "as̬í")
.replace("asú", "as̬ú")
.replace("ása", "ás̬a")
.replace("áso", "ás̬o")
.replace("áse", "ás̬e")
.replace("ási", "ás̬i")
.replace("ásu", "ás̬u")
.replace("osá", "os̬á")
.replace("osó", "os̬ó")
.replace("osé", "os̬é")
.replace("osí", "os̬í")
.replace("osú", "os̬ú")
.replace("ósa", "ós̬a")
.replace("óso", "ós̬o")
.replace("óse", "ós̬e")
.replace("ósi", "ós̬i")
.replace("ósu", "ós̬u")
.replace("esá", "es̬á")
.replace("esó", "es̬ó")
.replace("esé", "es̬é")
.replace("esí", "es̬í")
.replace("esú", "es̬ú")
.replace("ésa", "és̬a")
.replace("éso", "és̬o")
.replace("ése", "és̬e")
.replace("ési", "és̬i")
.replace("ésu", "és̬u")
.replace("isá", "is̬á")
.replace("isó", "is̬ó")
.replace("isé", "is̬é")
.replace("isí", "is̬í")
.replace("isú", "is̬ú")
.replace("ísa", "ís̬a")
.replace("íso", "ís̬o")
.replace("íse", "ís̬e")
.replace("ísi", "ís̬i")
.replace("ísu", "ís̬u")
.replace("usá", "us̬á")
.replace("usó", "us̬ó")
.replace("usé", "us̬é")
.replace("usí", "us̬í")
.replace("usú", "us̬ú")
.replace("úsa", "ús̬a")
.replace("úso", "ús̬o")
.replace("úse", "ús̬e")
.replace("úsi", "ús̬i")
.replace("úsu", "ús̬u")
.replace("ksse", "kse")
.replace("kssi", "ksi")
.replace('s', "s̻")
.replace("s̻̬", "s̬")
.replace("nt͡ʃ", "nʲt͡ʃ")
.replace('t', "t̪")
.replace("t̪͡ʃ", "t̠͡ʃ")
.replace("nt̪", "n̪t̪")
.replace("nk", "ŋk")
.replace("nɡ", "ŋɡ")
.replace("n#", "ŋ#")
.replace("nm", "ɱ̥m")
.replace("ŋ# #m", "ɱ# #m")
.replace("ŋ# #n", "ɱ# #n")
.replace("nβ", "mβ")
.replace("ŋ# #b", "ɱ# #b")
.replace("np", "mp")
.replace("ŋ# #p", "ɱ# #p")
.replace("nf", "mf")
.replace("ŋ# #f", "ɱ# #f")
.replace('ñ', "ɲ")
.replace("ia", "ja")
.replace("ie", "je")
.replace("io", "jo")
.replace("iu", "ju")
.replace("iá", "já")
.replace("ié", "jé")
.replace("ió", "jó")
.replace("iú", "jú")
.replace("ea", "ia")
.replace("eá", "iá")
.replace('á', "æ̞̈ˑ")
.replace('a', "æ̈")
.replace('ó', "ɔ̈ˑ")
.replace('o', "ɞ")
.replace("lɞ#", "lɔ#")
.replace("lɞs̬#", "lɔs̬#")
.replace("ɾɞ#", "ɾɔ#")
.replace("ɾɞs̬#", "ɾɔs̬#")
.replace("rɞ#", "rɔ#")
.replace("rɞs̬#", "rɔs̬#")
.replace("mɞ#", "mɔ̽#")
.replace("mɞs̬#", "mɔ̽s̬#")
.replace("nɞ#", "nɔ̽#")
.replace("nɞs̬#", "nɔ̽s̬#")
.replace("ɲɞ#", "ɲɔ̽#")
.replace("ɲɞs̬#", "ɲɔ̽s̬#")
.replace('é', "ɛ̈ˑ")
.replace('e', "ɜ")
.replace('í', "iˑ")
.replace('i', "e")
.replace('ú', "uˑ")
.replace('u', "ö")
.replace("mö", "mɵ̠̃")
.replace("ɔ̈ɱ̥m", "ɔ̟̃ɱ̥m")
.replace("ɜɱ̥m", "ɜ̃ɱ̥m")
.replace("eɱ̥m", "ẽɱ̥m")
.replace("öɱ̥m", "ɵ̠̃ɱ̥m")
.replace("æ̈nn", "æ̠̃nn")
.replace("ɞnn", "ɞ̃nn")
.replace("ɜnn", "ɜ̃nn")
.replace("enn", "ẽnn")
.replace("eˑnn", "ẽˑnn")
.replace("önn", "ɵ̠̃nn")
.replace("öˑnn", "ɵ̠̃ˑnn")
.replace("æ̞̈ˑɱ", "æ̞̃ˑɱ")
.replace("ɞɱ", "ɞ̃ɱ")
.replace("ɜɱ", "ɜ̃ɱ")
.replace("æ̈ɱ", "æ̠̃ɱ")
.replace("ɔ̈ɱ", "ɔ̟̃ɱ")
.replace("ɔ̈ˑɱ", "ɔ̟̃ˑɱ")
.replace("ɛ̈ɱ", "ɛ̠̃ɱ")
.replace("ɛ̈ˑɱ", "ɛ̠̃ˑɱ")
.replace("eɱ", "ẽɱ")
.replace("eˑɱ", "ẽˑɱ")
.replace("öɱ", "ɵ̠̃ɱ")
.replace("öˑɱ", "ɵ̠̃ˑɱ")
.replace("æ̞̈ˑŋ", "æ̞̃ˑŋ")
.replace("ɞŋ", "ɞ̃ŋ")
.replace("ɜŋ", "ɜ̃ŋ")
.replace("æ̈ŋ", "æ̠̃ŋ")
.replace("ɔ̈ŋ", "ɔ̟̃ŋ")
.replace("ɔ̈ˑŋ", "ɔ̟̃ˑŋ")
.replace("ɛ̈ŋ", "ɛ̠̃ŋ")
.replace("ɛ̈ˑŋ", "ɛ̠̃ˑŋ")
.replace("eŋ", "ẽŋ")
.replace("eˑŋ", "ẽˑŋ")
.replace("öŋ", "ɵ̠̃ŋ")
.replace("öˑŋ", "ɵ̠̃ˑŋ")
.replace("æ̞̈ˑn̪", "æ̞̃ˑn̪")
.replace("ɞn̪", "ɞ̃n̪")
.replace("ɜn̪", "ɜ̃n̪")
.replace("æ̈n̪", "æ̠̃n̪")
.replace("ɔ̈n̪", "ɔ̟̃n̪")
.replace("ɔ̈ˑn̪", "ɔ̟̃ˑn̪")
.replace("ɛ̈n̪", "ɛ̠̃n̪")
.replace("ɛ̈ˑn̪", "ɛ̠̃ˑn̪")
.replace("en̪", "ẽn̪")
.replace("eˑn̪", "ẽˑn̪")
.replace("ön̪", "ɵ̠̃n̪")
.replace("öˑn̪", "ɵ̠̃ˑn̪")
.replace("æ̈nʲ", "æ̠̃nʲ")
.replace("æ̞̈ˑnʲ", "æ̞̃ˑnʲ")
.replace("ɞnʲ", "ɞ̃nʲ")
.replace("ɔ̈nʲ", "ɔ̟̃nʲ")
.replace("ɔ̈ˑnʲ", "ɔ̟̃ˑnʲ")
.replace("ɜnʲ", "ɜ̃nʲ")
.replace("ɛ̈nʲ", "ɛ̠̃nʲ")
.replace("ɛ̈ˑnʲ", "ɛ̠̃ˑnʲ")
.replace("enʲ", "ẽnʲ")
.replace("eˑnʲ", "ẽˑnʲ")
.replace("önʲ", "ɵ̠̃nʲ")
.replace("öˑnʲ", "ɵ̠̃ˑnʲ");
let result = spapncend(strmod);
if usefile == "new" {
let mut file = std::fs::File::create(outputfile).expect(&(red.to_owned() + "The output file could not be created!" + reset));
file.write_all("CALI, CO:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "old" {
let mut file = OpenOptions::new().append(true).open(outputfile).expect(&(red.to_owned() + "cannot open file" + reset));
file.write_all("CALI, CO:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "terminal" {
println!();
println!("{}", cyan.to_owned() + "Cali" + reset + ", " + cyan + "CO" + reset + ":");
println!();
print!("{yellow}");
println!("{result}");
print!("{reset}");
}
}
pub fn spacoleticia(original_text: &str, usefile: &str, outputfile: &str, reset: &str, red: &str, cyan: &str, yellow: &str) {
let dotend = original_text.to_owned() + ".";
let dotbeg = ".".to_owned() + &dotend;
let lowercase = &dotbeg.to_lowercase();
let pncbeg = spapncbeg(lowercase);
let palesp = spapalesp(&pncbeg);
let spaacc_a = spaaccent_a(&palesp);
let spaacc_e = spaaccent_e(&spaacc_a);
let spaacc_o = spaaccent_o(&spaacc_e);
let spaacc_i = spaaccent_i(&spaacc_o);
let spaacc_u = spaaccent_u(&spaacc_i);
let spasyl = spasyllabes(&spaacc_u);
let strmod = &spasyl
.replace("ch", "t͡ʃ")
.replace("ce", "se")
.replace("cé", "sé")
.replace("ci", "si")
.replace("cí", "sí")
.replace('c', "k")
.replace("que", "ke")
.replace("qué", "ké")
.replace("qui", "ki")
.replace('q', "k")
.replace("ké", "kɛ̝ˑ")
.replace("ke", "kɛ̝")
.replace("kó", "kɔ̝ˑ")
.replace("ko", "kɔ̝")
.replace('x', "ks")
.replace("aha", "aʔa")
.replace("aho", "aʔo")
.replace("ahe", "aʔe")
.replace("ahi", "aʔi")
.replace("ahu", "aʔu")
.replace("ahá", "aʔá")
.replace("ahó", "aʔó")
.replace("ahé", "aʔé")
.replace("ahí", "aʔí")
.replace("ahú", "aʔú")
.replace("oha", "oʔa")
.replace("oho", "oʔo")
.replace("óho", "óʔo")
.replace("ohe", "oʔe")
.replace("ohi", "oʔi")
.replace("ohu", "oʔu")
.replace("ohá", "oʔá")
.replace("ohó", "oʔó")
.replace("ohé", "oʔé")
.replace("ohí", "oʔí")
.replace("ohú", "oʔú")
.replace("eha", "eʔa")
.replace("eho", "eʔo")
.replace("ehe", "eʔe")
.replace("ehi", "eʔi")
.replace("ehu", "eʔu")
.replace("ehá", "eʔá")
.replace("ehó", "eʔó")
.replace("ehé", "eʔé")
.replace("ehí", "eʔí")
.replace("ehú", "eʔú")
.replace("iho", "iʔo")
.replace("ihó", "iʔó")
.replace("ihu", "iʔu")
.replace("ihú", "iʔú")
.replace("uha", "uʔa")
.replace("uhá", "uʔá")
.replace("uho", "uʔo")
.replace("úho", "úʔo")
.replace('h', "")
.replace('j', "x")
.replace("ge", "xe")
.replace("gé", "xé")
.replace("gi", "xi")
.replace("gí", "xí")
.replace('r', "ɾ")
.replace("subɾ", "subr")
.replace("nɾ", "nr")
.replace("lɾ", "lr")
.replace("sɾ", "sr")
.replace("#ɾ", "#r")
.replace("ɾɾ", "r")
.replace("oɾ", "oɹ")
.replace("óɾ", "óɹ")
.replace("ɔ̝ɾ", "ɔ̝ɹ")
.replace("y#", "i#")
.replace('y', "ɟ͡ʝ")
.replace("ll", "ɟ͡ʝ")
.replace("lt͡ʃ", "lʲt͡ʃ")
.replace("lt", "l̪t")
.replace('b', "β")
.replace("#β", "#b")
.replace("mβ", "mb")
.replace("lβ", "lb")
.replace("ɾβ", "ɾb")
.replace('v', "β̞")
.replace("fg", "vg")
.replace("fn", "vn")
.replace("gue", "ge")
.replace("gué", "gé")
.replace("gui", "gi")
.replace("guí", "gí")
.replace('ü', "u")
.replace('g', "ɡ")
.replace("ád#", "á#")
.replace("íd#", "í#")
.replace("áda", "áʔa")
.replace("ádo", "áʔo")
.replace("óda", "óʔa")
.replace("ódo", "óʔo")
.replace('z', "s")
.replace('s', "ɬ")
.replace("ɬ#", "ɬ̬#")
.replace("eɬ̬#", "el͡ʒ#")
.replace("éɬ̬#", "él͡ʒ#")
.replace("ɬɣ", "ɬ̬ɣ")
.replace("ɬk", "ɬ̬k")
.replace("ɬd", "ɬ̬d")
.replace("ɬm", "ɬ̬m")
.replace("ɬv", "ɬ̬v")
.replace("aɬá", "aɬ̬á")
.replace("aɬó", "aɬ̬ó")
.replace("aɬé", "aɬ̬é")
.replace("aɬí", "aɬ̬í")
.replace("aɬú", "aɬ̬ú")
.replace("áɬa", "áɬ̬a")
.replace("áɬo", "áɬ̬o")
.replace("áɬe", "áɬ̬e")
.replace("áɬi", "áɬ̬i")
.replace("áɬu", "áɬ̬u")
.replace("oɬá", "oɬ̬á")
.replace("oɬó", "oɬ̬ó")
.replace("oɬé", "oɬ̬é")
.replace("oɬí", "oɬ̬í")
.replace("oɬú", "oɬ̬ú")
.replace("óɬa", "óɬ̬a")
.replace("óɬo", "óɬ̬o")
.replace("óɬe", "óɬ̬e")
.replace("óɬi", "óɬ̬i")
.replace("óɬu", "óɬ̬u")
.replace("eɬá", "eɬ̬á")
.replace("eɬó", "eɬ̬ó")
.replace("eɬé", "eɬ̬é")
.replace("eɬí", "eɬ̬í")
.replace("eɬú", "eɬ̬ú")
.replace("éɬa", "éɬ̬a")
.replace("éɬo", "éɬ̬o")
.replace("éɬe", "éɬ̬e")
.replace("éɬi", "éɬ̬i")
.replace("éɬu", "éɬ̬u")
.replace("iɬá", "iɬ̬á")
.replace("iɬó", "iɬ̬ó")
.replace("iɬé", "iɬ̬é")
.replace("iɬí", "iɬ̬í")
.replace("iɬú", "iɬ̬ú")
.replace("íɬa", "íɬ̬a")
.replace("íɬo", "íɬ̬o")
.replace("íɬe", "íɬ̬e")
.replace("íɬi", "íɬ̬i")
.replace("íɬu", "íɬ̬u")
.replace("uɬá", "uɬ̬á")
.replace("uɬó", "uɬ̬ó")
.replace("uɬé", "uɬ̬é")
.replace("uɬí", "uɬ̬í")
.replace("uɬú", "uɬ̬ú")
.replace("úɬa", "úɬ̬a")
.replace("úɬo", "úɬ̬o")
.replace("úɬe", "úɬ̬e")
.replace("úɬi", "úɬ̬i")
.replace("úɬu", "úɬ̬u")
.replace("kɬɬe", "kɬe")
.replace("kɬɬi", "kɬi")
.replace('ɬ', "ɬ̻")
.replace("ɬ̻̬", "ɬ̬")
.replace("nt͡ʃ", "nʲt͡ʃ")
.replace('t', "t̪")
.replace("t̪͡ʃ", "t̠͡ʃ")
.replace("nt̪", "n̪t̪")
.replace("nk", "ŋk")
.replace("nɡ", "ŋɡ")
.replace("nx", "ŋx")
.replace("n#", "ŋ#")
.replace("nm", "ɱ̥m")
.replace("ŋ# #m", "ɱ# #m")
.replace("ŋ# #n", "ɱ# #n")
.replace("nβ", "mβ")
.replace("ŋ# #β", "ɱ# #β")
.replace("ŋ# #b", "ɱ# #b")
.replace("np", "mp")
.replace("ŋ# #p", "ɱ# #p")
.replace('f', "ɸ")
.replace("nɸ", "mɸ")
.replace("ŋ# #ɸ", "ɱ# #f̟")
.replace('ñ', "ɲ")
.replace("ia", "ja")
.replace("ie", "je")
.replace("io", "jo")
.replace("iu", "ju")
.replace("iá", "já")
.replace("ié", "jé")
.replace("ió", "jó")
.replace("iú", "jú")
.replace("ea", "ia")
.replace("eá", "iá")
.replace('á', "æ̞̈ˑ")
.replace('a', "æ̈")
.replace('ó', "ə̠ˑ")
.replace("o#", "ʊ̈#")
.replace("oɬ̬#", "ʊ̈ɬ̬#")
.replace('o', "o̽")
.replace("ɬ̻ʊ̈#", "ɬ̻ɵ̠#")
.replace("ɬ̻ʊ̈ɬ̬#", "ɬ̻ɵ̠ɬ̬#")
.replace("ɬ̬ʊ̈#", "ɬ̬ɵ̠#")
.replace("ɬ̬ʊ̈ɬ̬#", "ɬ̬ɵ̠ɬ̬#")
.replace("t̪ʊ̈#", "t̪ɵ̠#")
.replace("t̪ʊ̈ɬ̬#", "t̪ɵ̠ɬ̬#")
.replace("lʊ̈#", "lo̞#")
.replace("lʊ̈ɬ̬#", "lo̞ɬ̬#")
.replace("ɾʊ̈#", "ɾo̞#")
.replace("ɾʊ̈ɬ̬#", "ɾo̞ɬ̬#")
.replace("rʊ̈#", "ro̞#")
.replace("rʊ̈ɬ̬#", "ro̞ɬ̬#")
.replace("ɡʊ̈#", "ɡə̠#")
.replace("ɡʊ̈ɬ̬#", "ɡə̠ɬ̬#")
.replace("ɣʊ̈#", "ɣə̠#")
.replace("ɣʊ̈ɬ̬#", "ɣə̠ɬ̬#")
.replace("xʊ̈#", "xə̠#")
.replace("xʊ̈ɬ̬#", "xə̠ɬ̬#")
.replace("t̪͡ʃʊ̈#", "t̪͡ʃö#")
.replace("t̪͡ʃʊ̈ɬ̬#", "t̪͡ʃöɬ̬#")
.replace("mʊ̈#", "mö#")
.replace("mʊ̈ɬ̬#", "möɬ̬#")
.replace("nʊ̈#", "nö#")
.replace("nʊ̈ɬ̬#", "nöɬ̬#")
.replace("ɲʊ̈#", "ɲö#")
.replace("ɲʊ̈ɬ̬#", "ɲöɬ̬#")
.replace('é', "ə̟ˑ")
.replace('e', "e̽")
.replace('í', "iˑ")
.replace('i', "ɪ")
.replace('ú', "uˑ")
.replace('u', "ʊ")
.replace("mʊ", "mʊ̃")
.replace("ɔ̝ɱ̥m", "ɔ̝̃ɱ̥m")
.replace("e̽ɱ̥m", "ẽ̞ɱ̥m")
.replace("ɪɱ̥m", "ɪ̃ɱ̥m")
.replace("ʊɱ̥m", "ʊ̃ɱ̥m")
.replace("æ̈nn", "æ̠̃nn")
.replace("o̽nn", "õ̞nn")
.replace("e̽nn", "ẽ̞nn")
.replace("ɪnn", "ɪ̃nn")
.replace("ɪˑnn", "ɪ̃ˑnn")
.replace("ʊnn", "ʊ̃nn")
.replace("ʊˑnn", "ʊ̃ˑnn")
.replace("æ̞̈ˑɱ", "æ̞̃ˑɱ")
.replace("o̽ɱ", "õ̞ɱ")
.replace("e̽ɱ", "ẽɱ")
.replace("æ̈ɱ", "æ̠̃ɱ")
.replace("ə̠ˑɱ", "ə̠̃ˑɱ")
.replace("ɔ̝ɱ", "ɔ̝̃ɱ")
.replace("ɔ̝ˑɱ", "ɔ̝̃ˑɱ")
.replace("ə̟ˑɱ", "ə̟̃ˑɱ")
.replace("ɪɱ", "ɪ̃ɱ")
.replace("ɪˑɱ", "ɪ̃ˑɱ")
.replace("ʊɱ", "ʊ̃ɱ")
.replace("ʊˑɱ", "ʊ̃ˑɱ")
.replace("æ̞̈ˑŋ", "æ̞̃ˑŋ")
.replace("o̽ŋ", "õ̞ŋ")
.replace("e̽ŋ", "ẽ̞ŋ")
.replace("æ̈ŋ", "æ̠̃ŋ")
.replace("ə̠ˑŋ", "ə̠̃ˑŋ")
.replace("ɔ̝ŋ", "ɔ̝̃ŋ")
.replace("ɔ̝ˑŋ", "ɔ̝̃ˑŋ")
.replace("ə̟ˑŋ", "ə̟̃ˑŋ")
.replace("ɪŋ", "ɪ̃ŋ")
.replace("ɪˑŋ", "ɪ̃ˑŋ")
.replace("ʊŋ", "ʊ̃ŋ")
.replace("ʊˑŋ", "ʊ̃ˑŋ")
.replace("æ̞̈ˑn̪", "æ̞̃ˑn̪")
.replace("o̽n̪", "õ̞n̪")
.replace("e̽n̪", "ẽ̞n̪")
.replace("æ̈n̪", "æ̠̃n̪")
.replace("ə̠ˑn̪", "ə̠̃ˑn̪")
.replace("ɔ̝n̪", "ɔ̝̃n̪")
.replace("ɔ̝ˑn̪", "ɔ̝̃ˑn̪")
.replace("ə̟ˑn̪", "ə̟̃ˑn̪")
.replace("ɪn̪", "ɪ̃n̪")
.replace("ɪˑn̪", "ɪ̃ˑn̪")
.replace("ʊn̪", "ʊ̃n̪")
.replace("ʊˑn̪", "ʊ̃ˑn̪")
.replace("æ̈nʲ", "æ̠̃nʲ")
.replace("æ̞̈ˑnʲ", "æ̞̃ˑnʲ")
.replace("o̽nʲ", "õ̞nʲ")
.replace("ə̠ˑnʲ", "ə̠̃ˑnʲ")
.replace("ɔ̝nʲ", "ɔ̝̃nʲ")
.replace("ɔ̝ˑnʲ", "ɔ̝̃ˑnʲ")
.replace("e̽nʲ", "ẽ̞nʲ")
.replace("ə̟ˑnʲ", "ə̟̃ˑnʲ")
.replace("ɪnʲ", "ɪ̃nʲ")
.replace("ɪˑnʲ", "ɪ̃ˑnʲ")
.replace("ʊnʲ", "ʊ̃nʲ")
.replace("ʊˑnʲ", "ʊ̃ˑnʲ");
let result = spapncend(strmod);
if usefile == "new" {
let mut file = std::fs::File::create(outputfile).expect(&(red.to_owned() + "The output file could not be created!" + reset));
file.write_all("LETICIA, CO:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "old" {
let mut file = OpenOptions::new().append(true).open(outputfile).expect(&(red.to_owned() + "cannot open file" + reset));
file.write_all("LETICIA, CO:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "terminal" {
println!();
println!("{}", cyan.to_owned() + "Leticia" + reset + ", " + cyan + "CO" + reset + ":");
println!();
print!("{yellow}");
println!("{result}");
print!("{reset}");
}
}
pub fn spacomedellin(original_text: &str, usefile: &str, outputfile: &str, reset: &str, red: &str, cyan: &str, yellow: &str) {
let dotend = original_text.to_owned() + ".";
let dotbeg = ".".to_owned() + &dotend;
let lowercase = &dotbeg.to_lowercase();
let pncbeg = spapncbeg(lowercase);
let palesp = spapalesp(&pncbeg);
let spaacc_a = spaaccent_a(&palesp);
let spaacc_e = spaaccent_e(&spaacc_a);
let spaacc_o = spaaccent_o(&spaacc_e);
let spaacc_i = spaaccent_i(&spaacc_o);
let spaacc_u = spaaccent_u(&spaacc_i);
let spasyl = spasyllabes(&spaacc_u);
let strmod = &spasyl
.replace("ch", "ʈ͡ʂʲ")
.replace("ce", "se")
.replace("cé", "sé")
.replace("ci", "ʒi")
.replace("cí", "ʒí")
.replace('c', "k")
.replace("que", "ke")
.replace("qué", "ké")
.replace("qui", "ki")
.replace('q', "k")
.replace("ké", "kʰe̞ˑ")
.replace("ke", "kʰe̞")
.replace("kó", "kʰɔ̝ˑ")
.replace("ko", "kʰɔ̝")
.replace('x', "ks")
.replace("aha", "aʔa")
.replace("aho", "aʔo")
.replace("ahe", "aʔe")
.replace("ahi", "aʔi")
.replace("ahu", "aʔu")
.replace("ahá", "aʔá")
.replace("ahó", "aʔó")
.replace("ahé", "aʔé")
.replace("ahí", "aʔí")
.replace("ahú", "aʔú")
.replace("oha", "oʔa")
.replace("oho", "oʔo")
.replace("óho", "óʔo")
.replace("ohe", "oʔe")
.replace("ohi", "oʔi")
.replace("ohu", "oʔu")
.replace("ohá", "oʔá")
.replace("ohó", "oʔó")
.replace("ohé", "oʔé")
.replace("ohí", "oʔí")
.replace("ohú", "oʔú")
.replace("eha", "eʔa")
.replace("eho", "eʔo")
.replace("ehe", "eʔe")
.replace("ehi", "eʔi")
.replace("ehu", "eʔu")
.replace("ehá", "eʔá")
.replace("ehó", "eʔó")
.replace("ehé", "eʔé")
.replace("ehí", "eʔí")
.replace("ehú", "eʔú")
.replace("iho", "iʔo")
.replace("ihó", "iʔó")
.replace("ihu", "iʔu")
.replace("ihú", "iʔú")
.replace("uha", "uʔa")
.replace("uhá", "uʔá")
.replace("uho", "uʔo")
.replace("úho", "úʔo")
.replace('h', "")
.replace('j', "h")
.replace("ge", "he")
.replace("gé", "hé")
.replace("gi", "hi")
.replace("gí", "hí")
.replace('r', "ɾ")
.replace("subɾ", "subr")
.replace("nɾ", "nr")
.replace("lɾ", "lr")
.replace("sɾ", "sr")
.replace("#ɾ", "#r")
.replace("ɾɾ", "r")
.replace("oɾ", "oɹ")
.replace("óɾ", "óɹ")
.replace("ɔ̝ɾ", "ɔ̝ɹ")
.replace("ɔ̝ˑɾ", "ɔ̝ˑɹ")
.replace("y#", "i#")
.replace('y', "ɟ͡ʝ")
.replace("lle", "d͡ʑe")
.replace("ll", "ɟ͡ʝ")
.replace("lʈ͡ʂʲ", "lʲʈ͡ʂʲ")
.replace("lt", "l̪t")
.replace('b', "β")
.replace("#β", "#b")
.replace("mβ", "ɱb̪")
.replace("lβ", "lb̪")
.replace("l# #b", "l# #b̪")
.replace('v', "β̞")
.replace("fg", "vg")
.replace("fn", "vn")
.replace("gue", "ge")
.replace("gué", "gé")
.replace("gui", "gi")
.replace("guí", "gí")
.replace('ü', "u")
.replace('g', "ɣ")
.replace("ɣl", "ɡl")
.replace("ɣɾ", "ɡɾ")
.replace("lɣ", "lɡ")
.replace("ɾɣ", "ɾɡ")
.replace("nɣ", "nɡ")
.replace("ád#", "á#")
.replace("íd#", "í#")
.replace('d', "ð̞")
.replace("nð̞", "nd")
.replace("n# #ð̞", "n# #d")
.replace("#ð̞", "#ð")
.replace("lð̞", "ld")
.replace("ɾð̞", "ɾd")
.replace("áð̞a", "áʔa")
.replace("áð̞o", "áʔo")
.replace("óð̞a", "óʔa")
.replace("óð̞o", "óʔo")
.replace('z', "s")
.replace('s', "s̺")
.replace("s̺#", "s̬#")
.replace("es̬#", "ez̺#")
.replace("és̬#", "éz̺#")
.replace("s̺ɣ", "s̬ɣ")
.replace("s̺k", "s̬k")
.replace("s̺ð̞", "s̬ð̞")
.replace("s̺m", "s̬m")
.replace("s̺v", "s̬v")
.replace("as̺a", "az̺a")
.replace("as̺o", "az̺o")
.replace("as̺e", "az̺e")
.replace("as̺i", "az̺i")
.replace("as̺u", "az̺u")
.replace("as̺á", "az̺á")
.replace("as̺ó", "az̺ó")
.replace("as̺é", "az̺é")
.replace("as̺í", "az̺í")
.replace("as̺ú", "az̺ú")
.replace("ás̺a", "áz̺a")
.replace("ás̺o", "áz̺o")
.replace("ás̺e", "áz̺e")
.replace("ás̺i", "áz̺i")
.replace("ás̺u", "áz̺u")
.replace("os̺a", "oz̺a")
.replace("os̺o", "oz̺o")
.replace("os̺e", "oz̺e")
.replace("os̺i", "oz̺i")
.replace("os̺u", "oz̺u")
.replace("os̺á", "oz̺á")
.replace("os̺ó", "oz̺ó")
.replace("os̺é", "oz̺é")
.replace("os̺í", "oz̺í")
.replace("os̺ú", "oz̺ú")
.replace("ós̺a", "óz̺a")
.replace("ós̺o", "óz̺o")
.replace("ós̺e", "óz̺e")
.replace("ós̺i", "óz̺i")
.replace("ós̺u", "óz̺u")
.replace("es̺a", "ez̺a")
.replace("es̺o", "ez̺o")
.replace("es̺e", "ez̺e")
.replace("es̺i", "ez̺i")
.replace("es̺u", "ez̺u")
.replace("es̺á", "ez̺á")
.replace("es̺ó", "ez̺ó")
.replace("es̺é", "ez̺é")
.replace("es̺í", "ez̺í")
.replace("es̺ú", "ez̺ú")
.replace("és̺a", "éz̺a")
.replace("és̺o", "éz̺o")
.replace("és̺e", "éz̺e")
.replace("és̺i", "éz̺i")
.replace("és̺u", "éz̺u")
.replace("is̺a", "iz̺a")
.replace("is̺o", "iz̺o")
.replace("is̺e", "iz̺e")
.replace("is̺i", "iz̺i")
.replace("is̺u", "iz̺u")
.replace("is̺á", "iz̺á")
.replace("is̺ó", "iz̺ó")
.replace("is̺é", "iz̺é")
.replace("is̺í", "iz̺í")
.replace("is̺ú", "iz̺ú")
.replace("ís̺a", "íz̺a")
.replace("ís̺o", "íz̺o")
.replace("ís̺e", "íz̺e")
.replace("ís̺i", "íz̺i")
.replace("ís̺u", "íz̺u")
.replace("us̺a", "uz̺a")
.replace("us̺o", "uz̺o")
.replace("us̺e", "uz̺e")
.replace("us̺i", "uz̺i")
.replace("us̺u", "uz̺u")
.replace("us̺á", "uz̺á")
.replace("us̺ó", "uz̺ó")
.replace("us̺é", "uz̺é")
.replace("us̺í", "uz̺í")
.replace("us̺ú", "uz̺ú")
.replace("ús̺a", "úz̺a")
.replace("ús̺o", "úz̺o")
.replace("ús̺e", "úz̺e")
.replace("ús̺i", "úz̺i")
.replace("ús̺u", "úz̺u")
.replace("ks̺s̺e", "ks̺e")
.replace("ks̺s̺i", "ks̺i")
.replace("nʈ͡ʂʲ", "nʲʈ͡ʂʲ")
.replace('t', "t̪")
.replace("nt̪", "n̪t̪")
.replace("nð", "nd")
.replace("nk", "ŋk")
.replace("nɡ", "ŋɡ")
.replace("n#", "ŋ#")
.replace("nm", "ɱ̥m")
.replace("ŋ# #m", "ɱ# #m")
.replace("ŋ# #n", "ɱ# #n")
.replace("nβ", "mβ")
.replace("ŋ# #β", "ɱ# #β")
.replace("ŋ# #b", "ɱ# #b")
.replace("np", "mp")
.replace("ŋ# #p", "ɱ# #p")
.replace('f', "ɸ")
.replace("nɸ", "mɸ")
.replace("ŋ# #ɸ", "ɱ# #f̟")
.replace('ñ', "ɲ")
.replace("ia", "ja")
.replace("ie", "je")
.replace("io", "jo")
.replace("iu", "ju")
.replace("iá", "já")
.replace("ié", "jé")
.replace("ió", "jó")
.replace("iú", "jú")
.replace("ea", "ia")
.replace("eá", "iá")
.replace("ká", "kɑˑ")
.replace("ka", "kɑ")
.replace('á', "ɐ̞ˑ")
.replace('a', "ɐ")
.replace("ʝɐ̞", "ɟ͡ʝɐ̞")
.replace('ó', "o̞ˑ")
.replace("o#", "ʊ#")
.replace("os̬#", "ʊs̬#")
.replace("ʈ͡ʂʲʊ#", "ʈ͡ʂʲö#")
.replace("ʈ͡ʂʲʊɬ̬#", "ʈ͡ʂʲöɬ̬#")
.replace("s̬ʊ#", "s̬ö#")
.replace("s̬ʊs̬#", "s̬ös̬#")
.replace("z̺ʊ#", "z̺ö#")
.replace("z̺ʊs̬#", "z̺ös̬#")
.replace("t̪ʊ#", "t̪ö#")
.replace("t̪ʊs̬#", "t̪ös̬#")
.replace("ɟ͡ʝʊ#", "ɟ͡ʝö#")
.replace("lʊ#", "lo#")
.replace("lʊs̬#", "los̬#")
.replace("ɾʊ#", "ɾo#")
.replace("ɾʊs̬#", "ɾos̬#")
.replace("rʊ#", "ro#")
.replace("rʊs̬#", "ros̬#")
.replace("ɡʊ#", "ɡə̠#")
.replace("ɡʊs̬#", "ɡə̠s̬#")
.replace("ɣʊ#", "ɣə̠#")
.replace("ɣʊs̬#", "ɣə̠s̬#")
.replace("hʊ#", "hə̠#")
.replace("hʊs̬#", "hə̠s̬#")
.replace("mʊ#", "mo̞#")
.replace("mʊs̬#", "mo̞s̬#")
.replace("nʊ#", "no̞#")
.replace("nʊs̬#", "no̞s̬#")
.replace("ɲʊ#", "ɲo̞#")
.replace("ɲʊs̬#", "ɲo̞s̬#")
.replace('é', "e̞ˑ")
.replace('í', "iˑ")
.replace('i', "i̞")
.replace('ú', "uˑ")
.replace('u', "u̞")
.replace("ɔ̝ɱ̥m", "ɔ̝̃ɱ̥m")
.replace("eɱ̥m", "ẽɱ̥m")
.replace("i̞ɱ̥m", "ĩ̞ɱ̥m")
.replace("u̞ɱ̥m", "ũ̞ɱ̥m")
.replace("ɐnn", "ɐ̃nn")
.replace("onn", "õnn")
.replace("enn", "ẽnn")
.replace("i̞nn", "ĩ̞nn")
.replace("i̞ˑnn", "ĩ̞ˑnn")
.replace("u̞nn", "ũ̞nn")
.replace("u̞ˑnn", "ũ̞ˑnn")
.replace("ɐ̞ˑɱ", "ɐ̞̃ˑɱ")
.replace("ɐ̞ɱ", "ɐ̞̃ɱ")
.replace("oɱ", "õɱ")
.replace("eɱ", "ẽɱ")
.replace("ɐɱ", "ɐ̃ɱ")
.replace("ɑɱ", "ɑ̃ɱ")
.replace("ɑˑɱ", "ɑ̃ˑɱ")
.replace("o̞ɱ", "õ̞ɱ")
.replace("o̞ˑɱ", "õ̞ˑɱ")
.replace("ɔ̝ɱ", "ɔ̝̃ɱ")
.replace("ɔ̝ˑɱ", "ɔ̝̃ˑɱ")
.replace("e̞ɱ", "ẽ̞ɱ")
.replace("e̞ˑɱ", "ẽ̞ˑɱ")
.replace("i̞ɱ", "ĩ̞ɱ")
.replace("i̞ˑɱ", "ĩ̞ˑɱ")
.replace("u̞ɱ", "ũ̞ɱ")
.replace("u̞ˑɱ", "ũ̞ˑɱ")
.replace("ɐ̞ˑŋ", "ɐ̞̃ˑŋ")
.replace("oŋ", "õŋ")
.replace("eŋ", "ẽŋ")
.replace("ɐŋ", "ɐ̃ŋ")
.replace("ɑŋ", "ɑ̃ŋ")
.replace("ɑˑŋ", "ɑ̃ˑŋ")
.replace("o̞ˑŋ", "õ̞ˑŋ")
.replace("ɔ̝ŋ", "ɔ̝̃ŋ")
.replace("ɔ̝ˑŋ", "ɔ̝̃ˑŋ")
.replace("e̞ˑŋ", "ẽ̞ˑŋ")
.replace("i̞ŋ", "ĩ̞ŋ")
.replace("i̞ˑŋ", "ĩ̞ˑŋ")
.replace("u̞ŋ", "ũ̞ŋ")
.replace("u̞ˑŋ", "ũ̞ˑŋ")
.replace("ɐ̞ˑn̪", "ɐ̞̃ˑn̪")
.replace("ɑn̪", "ɑ̃n̪")
.replace("ɑˑn̪", "ɑ̃ˑn̪")
.replace("on̪", "õn̪")
.replace("en̪", "ẽn̪")
.replace("ɐn̪", "ɐ̃n̪")
.replace("o̞ˑn̪", "õ̞ˑn̪")
.replace("ɔ̝n̪", "ɔ̝̃n̪")
.replace("ɔ̝ˑn̪", "ɔ̝̃ˑn̪")
.replace("e̞ˑn̪", "ẽ̞ˑn̪")
.replace("i̞n̪", "ĩ̞n̪")
.replace("i̞ˑn̪", "ĩ̞ˑn̪")
.replace("u̞n̪", "ũ̞n̪")
.replace("u̞ˑn̪", "ũ̞ˑn̪")
.replace("ɐnʲ", "ɐ̃nʲ")
.replace("ɐ̞ˑnʲ", "ɐ̞̃ˑnʲ")
.replace("ɑnʲ", "ɑ̃nʲ")
.replace("ɑˑnʲ", "ɑ̃ˑnʲ")
.replace("onʲ", "õnʲ")
.replace("o̞ˑnʲ", "õ̞ˑnʲ")
.replace("ɔ̝nʲ", "ɔ̝̃nʲ")
.replace("ɔ̝ˑnʲ", "ɔ̝̃ˑnʲ")
.replace("enʲ", "ẽnʲ")
.replace("e̞ˑnʲ", "ẽ̞ˑnʲ")
.replace("i̞nʲ", "ĩ̞nʲ")
.replace("i̞ˑnʲ", "ĩ̞ˑnʲ")
.replace("u̞nʲ", "ũ̞nʲ")
.replace("u̞ˑnʲ", "ũ̞ˑnʲ");
let result = spapncend(strmod);
if usefile == "new" {
let mut file = std::fs::File::create(outputfile).expect(&(red.to_owned() + "The output file could not be created!" + reset));
file.write_all("MEDELLÍN, CO:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "old" {
let mut file = OpenOptions::new().append(true).open(outputfile).expect(&(red.to_owned() + "cannot open file" + reset));
file.write_all("MEDELLÍN, CO:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "terminal" {
println!();
println!("{}", cyan.to_owned() + "Medellín" + reset + ", " + cyan + "CO" + reset + ":");
println!();
print!("{yellow}");
println!("{result}");
print!("{reset}");
}
}
pub fn spaconeiva(original_text: &str, usefile: &str, outputfile: &str, reset: &str, red: &str, cyan: &str, yellow: &str) {
let dotend = original_text.to_owned() + ".";
let dotbeg = ".".to_owned() + &dotend;
let lowercase = &dotbeg.to_lowercase();
let pncbeg = spapncbeg(lowercase);
let palesp = spapalesp(&pncbeg);
let spaacc_a = spaaccent_a(&palesp);
let spaacc_e = spaaccent_e(&spaacc_a);
let spaacc_o = spaaccent_o(&spaacc_e);
let spaacc_i = spaaccent_i(&spaacc_o);
let spaacc_u = spaaccent_u(&spaacc_i);
let spasyl = spasyllabes(&spaacc_u);
let strmod = &spasyl
.replace("ch", "t͡ʃ")
.replace("ce", "se")
.replace("cé", "sé")
.replace("ci", "si")
.replace("cí", "sí")
.replace('c', "k")
.replace("que", "ke")
.replace("qué", "ké")
.replace("qui", "ki")
.replace('q', "k")
.replace("ké", "kʰɛ")
.replace("ke", "kʰɛ")
.replace("kó", "kɔ")
.replace("ko", "kɔ")
.replace('x', "ks")
.replace("aha", "aʔa")
.replace("aho", "aʔo")
.replace("ahe", "aʔe")
.replace("ahi", "aʔi")
.replace("ahu", "aʔu")
.replace("ahá", "aʔá")
.replace("ahó", "aʔó")
.replace("ahé", "aʔé")
.replace("ahí", "aʔí")
.replace("ahú", "aʔú")
.replace("oha", "oʔa")
.replace("oho", "oʔo")
.replace("óho", "óʔo")
.replace("ohe", "oʔe")
.replace("ohi", "oʔi")
.replace("ohu", "oʔu")
.replace("ohá", "oʔá")
.replace("ohó", "oʔó")
.replace("ohé", "oʔé")
.replace("ohí", "oʔí")
.replace("ohú", "oʔú")
.replace("eha", "eʔa")
.replace("eho", "eʔo")
.replace("ehe", "eʔe")
.replace("ehi", "eʔi")
.replace("ehu", "eʔu")
.replace("ehá", "eʔá")
.replace("ehó", "eʔó")
.replace("ehé", "eʔé")
.replace("ehí", "eʔí")
.replace("ehú", "eʔú")
.replace("iho", "iʔo")
.replace("ihó", "iʔó")
.replace("ihu", "iʔu")
.replace("ihú", "iʔú")
.replace("uha", "uʔa")
.replace("uhá", "uʔá")
.replace("uho", "uʔo")
.replace("úho", "úʔo")
.replace('h', "")
.replace('j', "h")
.replace("ge", "he")
.replace("gé", "hé")
.replace("gi", "hi")
.replace("gí", "hí")
.replace('r', "ɾ")
.replace("subɾ", "subr")
.replace("nɾ", "nr")
.replace("lɾ", "lr")
.replace("sɾ", "sr")
.replace("#ɾ", "#r")
.replace("ɾɾ", "r")
.replace("oɾ", "oɹ")
.replace("óɾ", "óɹ")
.replace("ɔɾ", "ɔɹ")
.replace("y#", "i#")
.replace('y', "ɟ͡ʝ")
.replace("ll", "ɟ͡ʝ")
.replace("lt͡ʃ", "lʲt͡ʃ")
.replace("lt", "l̪t")
.replace('b', "β")
.replace("#β", "#b")
.replace("mβ", "mb")
.replace("lβ", "lb")
.replace('v', "β̞")
.replace("fg", "vg")
.replace("fn", "vn")
.replace("gue", "ge")
.replace("gué", "gé")
.replace("gui", "gi")
.replace("guí", "gí")
.replace('ü', "u")
.replace('g', "ɣ")
.replace("ɣl", "ɡl")
.replace("ɣɾ", "ɡɾ")
.replace("lɣ", "lɡ")
.replace("ɾɣ", "ɾɡ")
.replace("nɣ", "nɡ")
.replace("ád#", "á#")
.replace("íd#", "í#")
.replace('d', "ð̞")
.replace("nð̞", "nd")
.replace("n# #ð̞", "n# #d")
.replace("#ð̞", "#ð")
.replace("lð̞", "ld")
.replace("ɾð̞", "ɾd")
.replace("áð̞a", "áʔa")
.replace("áð̞o", "áʔo")
.replace("óð̞a", "óʔa")
.replace("óð̞o", "óʔo")
.replace('z', "s")
.replace("s#", "s̬#")
.replace("es̬#", "ez̻#")
.replace("és̬#", "éz̻#")
.replace("sɣ", "s̬ɣ")
.replace("sk", "s̬k")
.replace("sð̞", "s̬ð̞")
.replace("sm", "s̬m")
.replace("sv", "s̬v")
.replace("asá", "as̬á")
.replace("asó", "as̬ó")
.replace("asé", "as̬é")
.replace("así", "as̬í")
.replace("asú", "as̬ú")
.replace("ása", "ás̬a")
.replace("áso", "ás̬o")
.replace("áse", "ás̬e")
.replace("ási", "ás̬i")
.replace("ásu", "ás̬u")
.replace("osá", "os̬á")
.replace("osó", "os̬ó")
.replace("osé", "os̬é")
.replace("osí", "os̬í")
.replace("osú", "os̬ú")
.replace("ósa", "ós̬a")
.replace("óso", "ós̬o")
.replace("óse", "ós̬e")
.replace("ósi", "ós̬i")
.replace("ósu", "ós̬u")
.replace("esá", "es̬á")
.replace("esó", "es̬ó")
.replace("esé", "es̬é")
.replace("esí", "es̬í")
.replace("esú", "es̬ú")
.replace("ésa", "és̬a")
.replace("éso", "és̬o")
.replace("ése", "és̬e")
.replace("ési", "és̬i")
.replace("ésu", "és̬u")
.replace("isá", "is̬á")
.replace("isó", "is̬ó")
.replace("isé", "is̬é")
.replace("isí", "is̬í")
.replace("isú", "is̬ú")
.replace("ísa", "ís̬a")
.replace("íso", "ís̬o")
.replace("íse", "ís̬e")
.replace("ísi", "ís̬i")
.replace("ísu", "ís̬u")
.replace("usá", "us̬á")
.replace("usó", "us̬ó")
.replace("usé", "us̬é")
.replace("usí", "us̬í")
.replace("usú", "us̬ú")
.replace("úsa", "ús̬a")
.replace("úso", "ús̬o")
.replace("úse", "ús̬e")
.replace("úsi", "ús̬i")
.replace("úsu", "ús̬u")
.replace("ksse", "kse")
.replace("kssi", "ksi")
.replace('s', "s̻")
.replace("s̻̬", "s̬")
.replace("nt͡ʃ", "nʲt͡ʃ")
.replace('t', "t̪")
.replace("t̪͡ʃ", "t̠͡ʃ")
.replace("nt̪", "n̪t̪")
.replace("nk", "ŋk")
.replace("nɡ", "ŋɡ")
.replace("nm", "ɱ̥m")
.replace("n# #m", "m# #m")
.replace("n# #n", "ɱ# #n")
.replace("nβ", "mβ")
.replace("n# #β", "m# #β")
.replace("n# #b", "m# #b")
.replace("np", "mp")
.replace("n# #p", "m# #p")
.replace("nf", "ɱf")
.replace("n# #f", "ɱ# #f")
.replace('ñ', "ɲ")
.replace("ia", "ja")
.replace("ie", "je")
.replace("io", "jo")
.replace("iu", "ju")
.replace("iá", "já")
.replace("ié", "jé")
.replace("ió", "jó")
.replace("iú", "jú")
.replace("ea", "ia")
.replace("eá", "iá")
.replace("ká", "kɑ")
.replace("ka", "kɑ")
.replace('á', "ɐ̞")
.replace('a', "ɐ")
.replace('ó', "ɔ̝")
.replace("o#", "ö#")
.replace("os̬#", "ös̬#")
.replace("ɟ͡ʝö#", "ɟ͡ʝə̠#")
.replace("hö#", "hə̠#")
.replace("hös̬#", "hə̠s̬#")
.replace("lö#", "lo̞#")
.replace("lös̬#", "lo̞s̬#")
.replace("ɾö#", "ɾo̞#")
.replace("ɾös̬#", "ɾo̞s̬#")
.replace("rö#", "ro̞#")
.replace("rös̬#", "ro̞s̬#")
.replace("ɡö#", "ɡə̠#")
.replace("ɡös̬#", "ɡə̠s̬#")
.replace("ɣö#", "ɣə̠#")
.replace("ɣös̬#", "ɣə̠s̬#")
.replace("mö#", "mo̞#")
.replace("mös̬#", "mo̞s̬#")
.replace("nö#", "no̞#")
.replace("nös̬#", "no̞s̬#")
.replace("ɲö#", "ɲo̞#")
.replace("ɲös̬#", "ɲo̞s̬#")
.replace('o', "o̞")
.replace("o̞̞", "o̞")
.replace("ö̞", "ö")
.replace('é', "ɛ̝")
.replace('e', "e̞")
.replace('í', "i")
.replace('i', "i̞")
.replace('ú', "u")
.replace('u', "u̞")
.replace("mu̞", "mũ̞")
.replace("ɔɱ̥m", "ɔ̃ɱ̥m")
.replace("e̞ɱ̥m", "ẽ̞ɱ̥m")
.replace("i̞ɱ̥m", "ĩ̞ɱ̥m")
.replace("u̞ɱ̥m", "ũ̞ɱ̥m")
.replace("ɐnn", "ɐ̃nn")
.replace("o̞nn", "õ̞nn")
.replace("e̞nn", "ẽ̞nn")
.replace("i̞nn", "ĩ̞nn")
.replace("u̞nn", "ũ̞nn")
.replace("ɐ̞ɱ", "ɐ̞̃ɱ")
.replace("o̞ɱ", "õ̞ɱ")
.replace("e̞ɱ", "ẽɱ")
.replace("ɐɱ", "ɐ̃ɱ")
.replace("ɑɱ", "ɑ̃ɱ")
.replace("ɔ̝ɱ", "ɔ̝̃ɱ")
.replace("ɔɱ", "ɔ̃ɱ")
.replace("ɛ̝ɱ", "ɛ̝̃ɱ")
.replace("i̞ɱ", "ĩ̞ɱ")
.replace("u̞ɱ", "ũ̞ɱ")
.replace("ɐ̞ŋ", "ɐ̞̃ŋ")
.replace("o̞ŋ", "õ̞ŋ")
.replace("e̞ŋ", "ẽ̞ŋ")
.replace("ɐŋ", "ɐ̃ŋ")
.replace("ɑŋ", "ɑ̃ŋ")
.replace("ɔ̝ŋ", "ɔ̝̃ŋ")
.replace("ɔŋ", "ɔ̃ŋ")
.replace("ɛ̝ŋ", "ɛ̝̃ŋ")
.replace("i̞ŋ", "ĩ̞ŋ")
.replace("u̞ŋ", "ũ̞ŋ")
.replace("ɐ̞n̪", "ɐ̞̃n̪")
.replace("ɑn̪", "ɑ̃n̪")
.replace("o̞n̪", "õ̞n̪")
.replace("e̞n̪", "ẽ̞n̪")
.replace("ɐn̪", "ɐ̃n̪")
.replace("ɔ̝n̪", "ɔ̝̃n̪")
.replace("ɔn̪", "ɔ̃n̪")
.replace("ɛ̝n̪", "ɛ̝̃n̪")
.replace("i̞n̪", "ĩ̞n̪")
.replace("u̞n̪", "ũ̞n̪")
.replace("ɐnʲ", "ɐ̃nʲ")
.replace("ɐ̞nʲ", "ɐ̞̃nʲ")
.replace("ɑnʲ", "ɑ̃nʲ")
.replace("o̞nʲ", "õ̞nʲ")
.replace("ɔ̝nʲ", "ɔ̝̃nʲ")
.replace("ɔnʲ", "ɔ̃nʲ")
.replace("e̞nʲ", "ẽ̞nʲ")
.replace("ɛ̝nʲ", "ɛ̝̃nʲ")
.replace("i̞nʲ", "ĩ̞nʲ")
.replace("u̞nʲ", "ũ̞nʲ");
let result = spapncend(strmod);
if usefile == "new" {
let mut file = std::fs::File::create(outputfile).expect(&(red.to_owned() + "The output file could not be created!" + reset));
file.write_all("NEIVA, CO:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "old" {
let mut file = OpenOptions::new().append(true).open(outputfile).expect(&(red.to_owned() + "cannot open file" + reset));
file.write_all("NEIVA, CO:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "terminal" {
println!();
println!("{}", cyan.to_owned() + "Neiva" + reset + ", " + cyan + "CO" + reset + ":");
println!();
print!("{yellow}");
println!("{result}");
print!("{reset}");
}
}
pub fn spacopasto(original_text: &str, usefile: &str, outputfile: &str, reset: &str, red: &str, cyan: &str, yellow: &str) {
let dotend = original_text.to_owned() + ".";
let dotbeg = ".".to_owned() + &dotend;
let lowercase = &dotbeg.to_lowercase();
let pncbeg = spapncbeg(lowercase);
let palesp = spapalesp(&pncbeg);
let spaacc_a = spaaccent_a(&palesp);
let spaacc_e = spaaccent_e(&spaacc_a);
let spaacc_o = spaaccent_o(&spaacc_e);
let spaacc_i = spaaccent_i(&spaacc_o);
let spaacc_u = spaaccent_u(&spaacc_i);
let spasyl = spasyllabes(&spaacc_u);
let strmod = &spasyl
.replace("ch", "t͡ʃ")
.replace("ce", "se")
.replace("cé", "sé")
.replace("ci", "si")
.replace("cí", "sí")
.replace('c', "k")
.replace("que", "ke")
.replace("qué", "ké")
.replace("qui", "ki")
.replace('q', "k")
.replace("ké", "kɛ̈ː")
.replace("ke", "kɛ̈")
.replace("kó", "kɔ̈ː")
.replace("ko", "kɔ̈")
.replace('x', "ks")
.replace("aha", "aʔa")
.replace("aho", "aʔo")
.replace("ahe", "aʔe")
.replace("ahi", "aʔi")
.replace("ahu", "aʔu")
.replace("ahá", "aʔá")
.replace("ahó", "aʔó")
.replace("ahé", "aʔé")
.replace("ahí", "aʔí")
.replace("ahú", "aʔú")
.replace("oha", "oʔa")
.replace("oho", "oʔo")
.replace("óho", "óʔo")
.replace("ohe", "oʔe")
.replace("ohi", "oʔi")
.replace("ohu", "oʔu")
.replace("ohá", "oʔá")
.replace("ohó", "oʔó")
.replace("ohé", "oʔé")
.replace("ohí", "oʔí")
.replace("ohú", "oʔú")
.replace("eha", "eʔa")
.replace("eho", "eʔo")
.replace("ehe", "eʔe")
.replace("ehi", "eʔi")
.replace("ehu", "eʔu")
.replace("ehá", "eʔá")
.replace("ehó", "eʔó")
.replace("ehé", "eʔé")
.replace("ehí", "eʔí")
.replace("ehú", "eʔú")
.replace("iho", "iʔo")
.replace("ihó", "iʔó")
.replace("ihu", "iʔu")
.replace("ihú", "iʔú")
.replace("uha", "uʔa")
.replace("uhá", "uʔá")
.replace("uho", "uʔo")
.replace("úho", "úʔo")
.replace('h', "")
.replace('j', "x")
.replace("ge", "xe")
.replace("gé", "xé")
.replace("gi", "xi")
.replace("gí", "xí")
.replace('r', "ɾ")
.replace("subɾ", "subr")
.replace("nɾ", "nr")
.replace("lɾ", "lr")
.replace("sɾ", "sr")
.replace("#ɾ", "#r")
.replace("ɾɾ", "r")
.replace("oɾ", "oɹ")
.replace("óɾ", "óɹ")
.replace("ɔ̈ɾ", "ɔ̈ɹ")
.replace("ɔ̈ːɾ", "ɔ̈ːɹ")
.replace("y#", "i#")
.replace('y', "ʝ")
.replace("ll", "ʎ")
.replace("lt͡ʃ", "lʲt͡ʃ")
.replace("lt", "l̪t")
.replace('b', "β")
.replace("mβ", "mb")
.replace("lβ", "lb")
.replace("l# #β", "l# #b")
.replace('v', "β̞")
.replace("fg", "vg")
.replace("fn", "vn")
.replace("gue", "ge")
.replace("gué", "gé")
.replace("gui", "gi")
.replace("guí", "gí")
.replace('ü', "u")
.replace('g', "ɣ")
.replace("lɣ", "lɡ")
.replace("nɣ", "nɡ")
.replace("ád#", "á#")
.replace("íd#", "í#")
.replace('d', "ð̞")
.replace("#ð̞", "#ð")
.replace("nð̞", "nð")
.replace("lð̞", "ld")
.replace("ɾð̞", "ɾd")
.replace('z', "s")
.replace('s', "ɬ")
.replace("ɬ#", "ɬ̬#")
.replace("eɬ̬#", "el͡ʒ#")
.replace("éɬ̬#", "él͡ʒ#")
.replace("ɬɣ", "ɬ̬ɣ")
.replace("ɬk", "ɬ̬k")
.replace("ɬð̞", "ɬ̬ð̞")
.replace("ɬm", "ɬ̬m")
.replace("ɬv", "ɬ̬v")
.replace("aɬá", "aɬ̬á")
.replace("aɬó", "aɬ̬ó")
.replace("aɬé", "aɬ̬é")
.replace("aɬí", "aɬ̬í")
.replace("aɬú", "aɬ̬ú")
.replace("áɬa", "áɬ̬a")
.replace("áɬo", "áɬ̬o")
.replace("áɬe", "áɬ̬e")
.replace("áɬi", "áɬ̬i")
.replace("áɬu", "áɬ̬u")
.replace("oɬá", "oɬ̬á")
.replace("oɬó", "oɬ̬ó")
.replace("oɬé", "oɬ̬é")
.replace("oɬí", "oɬ̬í")
.replace("oɬú", "oɬ̬ú")
.replace("óɬa", "óɬ̬a")
.replace("óɬo", "óɬ̬o")
.replace("óɬe", "óɬ̬e")
.replace("óɬi", "óɬ̬i")
.replace("óɬu", "óɬ̬u")
.replace("eɬá", "eɬ̬á")
.replace("eɬó", "eɬ̬ó")
.replace("eɬé", "eɬ̬é")
.replace("eɬí", "eɬ̬í")
.replace("eɬú", "eɬ̬ú")
.replace("éɬa", "éɬ̬a")
.replace("éɬo", "éɬ̬o")
.replace("éɬe", "éɬ̬e")
.replace("éɬi", "éɬ̬i")
.replace("éɬu", "éɬ̬u")
.replace("iɬá", "iɬ̬á")
.replace("iɬó", "iɬ̬ó")
.replace("iɬé", "iɬ̬é")
.replace("iɬí", "iɬ̬í")
.replace("iɬú", "iɬ̬ú")
.replace("íɬa", "íɬ̬a")
.replace("íɬo", "íɬ̬o")
.replace("íɬe", "íɬ̬e")
.replace("íɬi", "íɬ̬i")
.replace("íɬu", "íɬ̬u")
.replace("uɬá", "uɬ̬á")
.replace("uɬó", "uɬ̬ó")
.replace("uɬé", "uɬ̬é")
.replace("uɬí", "uɬ̬í")
.replace("uɬú", "uɬ̬ú")
.replace("úɬa", "úɬ̬a")
.replace("úɬo", "úɬ̬o")
.replace("úɬe", "úɬ̬e")
.replace("úɬi", "úɬ̬i")
.replace("úɬu", "úɬ̬u")
.replace("kɬɬe", "kɬe")
.replace("kɬɬi", "kɬi")
.replace('ɬ', "ɬ̺")
.replace("ɬ̺̬", "ɬ̬")
.replace("nt͡ʃ", "nʲt͡ʃ")
.replace('t', "t̪")
.replace("t̪͡ʃ", "t̠͡ʃ")
.replace("nt̪", "n̪t̪")
.replace("nð", "n̪ð")
.replace("nk", "ŋk")
.replace("nɡ", "ŋɡ")
.replace("nx", "ŋx")
.replace("nm", "ɱ̥m")
.replace("n# #m", "m# #m")
.replace("n# #n", "ɱ# #n")
.replace("nβ", "mβ")
.replace("n# #β", "m# #β")
.replace("np", "mp")
.replace("n# #p", "m# #p")
.replace("nf", "ɱf")
.replace("n# #f", "ɱ# #f")
.replace('ñ', "ɲ")
.replace('f', "f̟")
.replace("ia", "ja")
.replace("ie", "je")
.replace("io", "jo")
.replace("iu", "ju")
.replace("iá", "já")
.replace("ié", "jé")
.replace("ió", "jó")
.replace("iú", "jú")
.replace("ea", "ia")
.replace("eá", "iá")
.replace('á', "æ̞̈ː")
.replace('a', "æ̈")
.replace('ó', "ɔ̈ː")
.replace('o', "ɞ")
.replace("lɞ#", "lɔ#")
.replace("lɞɬ̬#", "lɔɬ̬#")
.replace("ɾɞ#", "ɾɔ#")
.replace("ɾɞɬ̬#", "ɾɔɬ̬#")
.replace("rɞ#", "rɔ#")
.replace("rɞɬ̬#", "rɔɬ̬#")
.replace("mɞ#", "mɔ̽#")
.replace("mɞɬ̬#", "mɔ̽ɬ̬#")
.replace("nɞ#", "nɔ̽#")
.replace("nɞɬ̬#", "nɔ̽ɬ̬#")
.replace("ɲɞ#", "ɲɔ̽#")
.replace("ɲɞɬ̬#", "ɲɔ̽ɬ̬#")
.replace('é', "ɛ̈ː")
.replace('e', "ɜ")
.replace('í', "iː")
.replace('i', "e")
.replace('ú', "uː")
.replace('u', "o")
.replace("mo", "mõ")
.replace("ɔ̈ɱ̥m", "ɔ̟̃ɱ̥m")
.replace("ɜɱ̥m", "ɜ̃ɱ̥m")
.replace("eɱ̥m", "ẽɱ̥m")
.replace("oɱ̥m", "õɱ̥m")
.replace("æ̈nn", "æ̠̃nn")
.replace("ɞnn", "ɞ̃nn")
.replace("ɜnn", "ɜ̃nn")
.replace("enn", "ẽnn")
.replace("eːnn", "ẽːnn")
.replace("onn", "õnn")
.replace("oːnn", "õːnn")
.replace("æ̞̈ːɱ", "æ̞̃ːɱ")
.replace("ɞɱ", "ɞ̃ɱ")
.replace("ɜɱ", "ɜ̃ɱ")
.replace("æ̈ɱ", "æ̠̃ɱ")
.replace("ɔ̈ɱ", "ɔ̟̃ɱ")
.replace("ɔ̈ːɱ", "ɔ̟̃ːɱ")
.replace("ɛ̈ɱ", "ɛ̠̃ɱ")
.replace("ɛ̈ːɱ", "ɛ̠̃ːɱ")
.replace("eɱ", "ẽɱ")
.replace("eːɱ", "ẽːɱ")
.replace("oɱ", "õɱ")
.replace("oːɱ", "õːɱ")
.replace("æ̞̈ːŋ", "æ̞̃ːŋ")
.replace("ɞŋ", "ɞ̃ŋ")
.replace("ɜŋ", "ɜ̃ŋ")
.replace("æ̈ŋ", "æ̠̃ŋ")
.replace("ɔ̈ŋ", "ɔ̟̃ŋ")
.replace("ɔ̈ːŋ", "ɔ̟̃ːŋ")
.replace("ɛ̈ŋ", "ɛ̠̃ŋ")
.replace("ɛ̈ːŋ", "ɛ̠̃ːŋ")
.replace("eŋ", "ẽŋ")
.replace("eːŋ", "ẽːŋ")
.replace("oŋ", "õŋ")
.replace("oːŋ", "õːŋ")
.replace("æ̞̈ːn̪", "æ̞̃ːn̪")
.replace("ɞn̪", "ɞ̃n̪")
.replace("ɜn̪", "ɜ̃n̪")
.replace("æ̈n̪", "æ̠̃n̪")
.replace("ɔ̈n̪", "ɔ̟̃n̪")
.replace("ɔ̈ːn̪", "ɔ̟̃ːn̪")
.replace("ɛ̈n̪", "ɛ̠̃n̪")
.replace("ɛ̈ːn̪", "ɛ̠̃ːn̪")
.replace("en̪", "ẽn̪")
.replace("eːn̪", "ẽːn̪")
.replace("on̪", "õn̪")
.replace("oːn̪", "õːn̪")
.replace("æ̈nʲ", "æ̠̃nʲ")
.replace("æ̞̈ːnʲ", "æ̞̃ːnʲ")
.replace("ɞnʲ", "ɞ̃nʲ")
.replace("ɔ̈nʲ", "ɔ̟̃nʲ")
.replace("ɔ̈ːnʲ", "ɔ̟̃ːnʲ")
.replace("ɜnʲ", "ɜ̃nʲ")
.replace("ɛ̈nʲ", "ɛ̠̃nʲ")
.replace("ɛ̈ːnʲ", "ɛ̠̃ːnʲ")
.replace("enʲ", "ẽnʲ")
.replace("eːnʲ", "ẽːnʲ")
.replace("onʲ", "õnʲ")
.replace("oːnʲ", "õːnʲ");
let result = spapncend(strmod);
if usefile == "new" {
let mut file = std::fs::File::create(outputfile).expect(&(red.to_owned() + "The output file could not be created!" + reset));
file.write_all("PASTO, CO:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "old" {
let mut file = OpenOptions::new().append(true).open(outputfile).expect(&(red.to_owned() + "cannot open file" + reset));
file.write_all("PASTO, CO:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "terminal" {
println!();
println!("{}", cyan.to_owned() + "Pasto" + reset + ", " + cyan + "CO" + reset + ":");
println!();
print!("{yellow}");
println!("{result}");
print!("{reset}");
}
}
pub fn spacoquibdo(original_text: &str, usefile: &str, outputfile: &str, reset: &str, red: &str, cyan: &str, yellow: &str) {
let dotend = original_text.to_owned() + ".";
let dotbeg = ".".to_owned() + &dotend;
let lowercase = &dotbeg.to_lowercase();
let pncbeg = spapncbeg(lowercase);
let palesp = spapalesp(&pncbeg);
let spaacc_a = spaaccent_a(&palesp);
let spaacc_e = spaaccent_e(&spaacc_a);
let spaacc_o = spaaccent_o(&spaacc_e);
let spaacc_i = spaaccent_i(&spaacc_o);
let spaacc_u = spaaccent_u(&spaacc_i);
let spasyl = spasyllabes(&spaacc_u);
let strmod = &spasyl
.replace("ch", "ʈ͡ʂʲ")
.replace("ce", "se")
.replace("cé", "sé")
.replace("ci", "si")
.replace("cí", "sí")
.replace('c', "k")
.replace("que", "ke")
.replace("qué", "ké")
.replace("qui", "ki")
.replace('q', "k")
.replace('x', "ks")
.replace("aha", "aʔa")
.replace("aho", "aʔo")
.replace("ahe", "aʔe")
.replace("ahi", "aʔi")
.replace("ahu", "aʔu")
.replace("ahá", "aʔá")
.replace("ahó", "aʔó")
.replace("ahé", "aʔé")
.replace("ahí", "aʔí")
.replace("ahú", "aʔú")
.replace("oha", "oʔa")
.replace("oho", "oʔo")
.replace("óho", "óʔo")
.replace("ohe", "oʔe")
.replace("ohi", "oʔi")
.replace("ohu", "oʔu")
.replace("ohá", "oʔá")
.replace("ohó", "oʔó")
.replace("ohé", "oʔé")
.replace("ohí", "oʔí")
.replace("ohú", "oʔú")
.replace("eha", "eʔa")
.replace("eho", "eʔo")
.replace("ehe", "eʔe")
.replace("ehi", "eʔi")
.replace("ehu", "eʔu")
.replace("ehá", "eʔá")
.replace("ehó", "eʔó")
.replace("ehé", "eʔé")
.replace("ehí", "eʔí")
.replace("ehú", "eʔú")
.replace("iho", "iʔo")
.replace("ihó", "iʔó")
.replace("ihu", "iʔu")
.replace("ihú", "iʔú")
.replace("uha", "uʔa")
.replace("uhá", "uʔá")
.replace("uho", "uʔo")
.replace("úho", "úʔo")
.replace('h', "")
.replace('j', "ħ")
.replace("ge", "ħe")
.replace("gé", "ħé")
.replace("gi", "ħi")
.replace("gí", "ħí")
.replace('r', "ɾ")
.replace("subɾ", "subr")
.replace("nɾ", "nr")
.replace("lɾ", "lr")
.replace("sɾ", "sr")
.replace("#ɾ", "#r")
.replace("ɾɾ", "r")
.replace("oɾ", "oɹ")
.replace("óɾ", "óɹ")
.replace("ɾ#", "ɾ̥#")
.replace("ɹ#", "ɹ̥#")
.replace("y#", "i#")
.replace('y', "ɟ͡ʝ")
.replace("ll", "ɟ͡ʝ")
.replace("lʈ͡ʂʲ", "lʲʈ͡ʂʲ")
.replace("lt", "l̪t")
.replace('b', "β̞")
.replace("#β̞", "#β")
.replace("mβ̞", "mβ")
.replace("lβ̞", "lβ")
.replace("l# #β̞", "l# #β")
.replace('v', "β̞")
.replace("fg", "vg")
.replace("fn", "vn")
.replace("gue", "ge")
.replace("gué", "gé")
.replace("gui", "gi")
.replace("guí", "gí")
.replace('ü', "u")
.replace('g', "ɣ̞")
.replace("ɣ̞l", "ɡl")
.replace("ɣ̞ɾ", "ɡɾ")
.replace("lɣ̞", "lɡ")
.replace("nɣ̞", "nɣ")
.replace("ád#", "á#")
.replace("íd#", "í#")
.replace('d', "ð̞")
.replace("#ð̞", "#ð")
.replace("nð̞", "nð")
.replace("lð̞", "lð")
.replace("ɾð̞", "ɾd")
.replace("áð̞a", "áʔa")
.replace("áð̞o", "áʔo")
.replace("óð̞a", "óʔa")
.replace("óð̞o", "óʔo")
.replace('z', "s")
.replace("s#", "z̥#")
.replace("sɣ", "s̬ɣ")
.replace("sk", "s̬k")
.replace("st", "h̥t")
.replace("sɣ", "s̬ɣ")
.replace("sð̞", "s̬ð̞")
.replace("sm", "s̬m")
.replace("sv", "s̬v")
.replace("asá", "as̬á")
.replace("asó", "as̬ó")
.replace("asé", "as̬é")
.replace("así", "as̬í")
.replace("asú", "as̬ú")
.replace("ása", "ás̬a")
.replace("áso", "ás̬o")
.replace("áse", "ás̬e")
.replace("ási", "ás̬i")
.replace("ásu", "ás̬u")
.replace("osá", "os̬á")
.replace("osó", "os̬ó")
.replace("osé", "os̬é")
.replace("osí", "os̬í")
.replace("osú", "os̬ú")
.replace("ósa", "ós̬a")
.replace("óso", "ós̬o")
.replace("óse", "ós̬e")
.replace("ósi", "ós̬i")
.replace("ósu", "ós̬u")
.replace("esá", "es̬á")
.replace("esó", "es̬ó")
.replace("esé", "es̬é")
.replace("esí", "es̬í")
.replace("esú", "es̬ú")
.replace("ésa", "és̬a")
.replace("éso", "és̬o")
.replace("ése", "és̬e")
.replace("ési", "és̬i")
.replace("ésu", "és̬u")
.replace("isá", "is̬á")
.replace("isó", "is̬ó")
.replace("isé", "is̬é")
.replace("isí", "is̬í")
.replace("isú", "is̬ú")
.replace("ísa", "ís̬a")
.replace("íso", "ís̬o")
.replace("íse", "ís̬e")
.replace("ísi", "ís̬i")
.replace("ísu", "ís̬u")
.replace("usá", "us̬á")
.replace("usó", "us̬ó")
.replace("usé", "us̬é")
.replace("usí", "us̬í")
.replace("usú", "us̬ú")
.replace("úsa", "ús̬a")
.replace("úso", "ús̬o")
.replace("úse", "ús̬e")
.replace("úsi", "ús̬i")
.replace("úsu", "ús̬u")
.replace("ksse", "kse")
.replace("kssi", "ksi")
.replace('s', "s̻")
.replace("s̻̬", "s̬")
.replace("nʈ͡ʂʲ", "nʲʈ͡ʂʲ")
.replace('t', "t̪")
.replace("nt̪", "n̪t̪")
.replace("nð", "n̪ð")
.replace("nk", "ŋk")
.replace("nɣ", "ŋɣ")
.replace("n#", "ŋ#")
.replace("nm", "ɱ̥m")
.replace("ŋ# #m", "ɱ# #m")
.replace("ŋ# #n", "ɱ# #n")
.replace("nβ", "mβ")
.replace("ŋ# #β", "ɱ# #β")
.replace("np", "mp")
.replace("ŋ# #p", "ɱ# #p")
.replace('f', "ɸ")
.replace("nɸ", "mɸ")
.replace("ŋ# #ɸ", "ɱ# #f̟")
.replace('ñ', "ɲ")
.replace("ia", "ʲa")
.replace("ie", "ʲe")
.replace("io", "ʲo")
.replace("iu", "ʲu")
.replace("iá", "ʲá")
.replace("ié", "ʲé")
.replace("ió", "ʲó")
.replace("iú", "ʲú")
.replace("ea", "ia")
.replace("eá", "iá")
.replace("ká", "kɐ̠ˑ")
.replace("ka", "kɐ̠")
.replace('á', "ɐ̞ˑ")
.replace('a', "ɐ")
.replace('ó', "ɒˑ")
.replace("o#", "ɒ̝#")
.replace('o', "ɒ̝")
.replace("mɒ̝#", "mɔ#")
.replace("mɒ̝z̥#", "mɔz̥#")
.replace("nɒ̝#", "nɔ#")
.replace("nɒ̝z̥#", "nɔz̥#")
.replace("ɲɒ̝#", "ɲɔ#")
.replace("ɲɒ̝z̥#", "ɲɔz̥#")
.replace("ðɒ̝#", "ðɔ̈#")
.replace("ðɒ̝z̥#", "ðɔ̈z̥#")
.replace("ħɒ̝#", "ħɔ̈#")
.replace("ħɒ̝z̥#", "ħɔ̈z̥#")
.replace("lɒ̝#", "lɔ̈#")
.replace("lɒ̝z̥#", "lɔ̈z̥#")
.replace("ɾɒ̝#", "ɾɔ̈#")
.replace("ɾɒ̝z̥#", "ɾɔ̈z̥#")
.replace("rɒ̝#", "rɔ̈#")
.replace("rɒ̝z̥#", "rɔ̈z̥#")
.replace("t̪ɒ̝#", "t̪ɔ̈#")
.replace("t̪ɒ̝z̥#", "t̪ɔ̈z̥#")
.replace("z̥# #s̻", "# #s̻")
.replace('é', "ɛ̈ˑ")
.replace('e', "ɜ")
.replace('í', "eˑ")
.replace('i', "e")
.replace('ú', "ə̠ˑ")
.replace('u', "ə̠")
.replace("mə̠", "mə̠̃")
.replace("ɒ̝ɱ̥m", "ɒ̝̃ɱ̥m")
.replace("ɜɱ̥m", "ɜ̃ɱ̥m")
.replace("eɱ̥m", "ẽɱ̥m")
.replace("ə̠ɱ̥m", "ə̠̃ɱ̥m")
.replace("ɐnn", "ɐ̃nn")
.replace("ɒ̝nn", "ɒ̝̃nn")
.replace("ɜnn", "ɜ̃nn")
.replace("enn", "ẽnn")
.replace("eˑnn", "ẽˑnn")
.replace("ə̠nn", "ə̠̃nn")
.replace("ə̠ˑnn", "ə̠̃ˑnn")
.replace("ɐ̞ˑɱ", "ɐ̞̃ˑɱ")
.replace("ɐ̞ɱ", "ɐ̞̃ɱ")
.replace("ɒ̝ɱ", "ɒ̝̃ɱ")
.replace("ɜɱ", "ɜ̃ɱ")
.replace("ɐɱ", "ɐ̃ɱ")
.replace("ɐ̠ɱ", "ɐ̠̃ɱ")
.replace("ɐ̠ˑɱ", "ɐ̠̃ˑɱ")
.replace("ɒˑɱ", "ɒ̃ˑɱ")
.replace("ɛ̈ˑɱ", "ɛ̠̃ˑɱ")
.replace("eɱ", "ẽɱ")
.replace("eˑɱ", "ẽˑɱ")
.replace("ə̠ɱ", "ə̠̃ɱ")
.replace("ə̠ˑɱ", "ə̠̃ˑɱ")
.replace("ɐ̞ˑŋ", "ɐ̞̃ˑŋ")
.replace("ɒ̝ŋ", "ɒ̝̃ŋ")
.replace("ɜŋ", "ɜ̃ŋ")
.replace("ɐŋ", "ɐ̃ŋ")
.replace("ɐ̠ŋ", "ɐ̠̃ŋ")
.replace("ɐ̠ˑŋ", "ɐ̠̃ˑŋ")
.replace("ɒˑŋ", "ɒ̃ˑŋ")
.replace("ɛ̈ˑŋ", "ɛ̠̃ˑŋ")
.replace("eŋ", "ẽŋ")
.replace("eˑŋ", "ẽˑŋ")
.replace("ə̠ŋ", "ə̠̃ŋ")
.replace("ə̠ˑŋ", "ə̠̃ˑŋ")
.replace("ɐ̞ˑn̪", "ɐ̞̃ˑn̪")
.replace("ɐ̠n̪", "ɐ̠̃n̪")
.replace("ɐ̠ˑn̪", "ɐ̠̃ˑn̪")
.replace("ɒ̝n̪", "ɒ̝̃n̪")
.replace("ɜn̪", "ɜ̃n̪")
.replace("ɐn̪", "ɐ̃n̪")
.replace("ɒˑn̪", "ɒ̃ˑn̪")
.replace("ɛ̈ˑn̪", "ɛ̠̃ˑn̪")
.replace("en̪", "ẽn̪")
.replace("eˑn̪", "ẽˑn̪")
.replace("ə̠n̪", "ə̠̃n̪")
.replace("ə̠ˑn̪", "ə̠̃ˑn̪")
.replace("ɐnʲ", "ɐ̃nʲ")
.replace("ɐ̞ˑnʲ", "ɐ̞̃ˑnʲ")
.replace("ɐ̠nʲ", "ɐ̠̃nʲ")
.replace("ɐ̠ˑnʲ", "ɐ̠̃ˑnʲ")
.replace("ɒ̝nʲ", "ɒ̝̃nʲ")
.replace("ɒˑnʲ", "ɒ̃ˑnʲ")
.replace("ɜnʲ", "ɜ̃nʲ")
.replace("ɛ̈ˑnʲ", "ɛ̠̃ˑnʲ")
.replace("enʲ", "ẽnʲ")
.replace("eˑnʲ", "ẽˑnʲ")
.replace("ə̠nʲ", "ə̠̃nʲ")
.replace("ə̠ˑnʲ", "ə̠̃ˑnʲ");
let result = spapncend(strmod);
if usefile == "new" {
let mut file = std::fs::File::create(outputfile).expect(&(red.to_owned() + "The output file could not be created!" + reset));
file.write_all("QUIBDÓ, CO:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "old" {
let mut file = OpenOptions::new().append(true).open(outputfile).expect(&(red.to_owned() + "cannot open file" + reset));
file.write_all("QUIBDÓ, CO:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "terminal" {
println!();
println!("{}", cyan.to_owned() + "Quibdó" + reset + ", " + cyan + "CO" + reset + ":");
println!();
print!("{yellow}");
println!("{result}");
print!("{reset}");
}
}
pub fn spacosantamarta(original_text: &str, usefile: &str, outputfile: &str, reset: &str, red: &str, cyan: &str, yellow: &str) {
let dotend = original_text.to_owned() + ".";
let dotbeg = ".".to_owned() + &dotend;
let lowercase = &dotbeg.to_lowercase();
let pncbeg = spapncbeg(lowercase);
let palesp = spapalesp(&pncbeg);
let spaacc_a = spaaccent_a(&palesp);
let spaacc_e = spaaccent_e(&spaacc_a);
let spaacc_o = spaaccent_o(&spaacc_e);
let spaacc_i = spaaccent_i(&spaacc_o);
let spaacc_u = spaaccent_u(&spaacc_i);
let spasyl = spasyllabes(&spaacc_u);
let strmod = &spasyl
.replace("ch", "t͡ʃ")
.replace("ce", "se")
.replace("cé", "sé")
.replace("ci", "si")
.replace("cí", "sí")
.replace('c', "k")
.replace("que", "ke")
.replace("qué", "ké")
.replace("qui", "ki")
.replace('q', "k")
.replace("ké", "kɜ")
.replace("ke", "kɜ")
.replace("kó", "kɞ")
.replace("ko", "kɞ")
.replace('x', "ks")
.replace("aha", "aʔa")
.replace("aho", "aʔo")
.replace("ahe", "aʔe")
.replace("ahi", "aʔi")
.replace("ahu", "aʔu")
.replace("ahá", "aʔá")
.replace("ahó", "aʔó")
.replace("ahé", "aʔé")
.replace("ahí", "aʔí")
.replace("ahú", "aʔú")
.replace("oha", "oʔa")
.replace("oho", "oʔo")
.replace("óho", "óʔo")
.replace("ohe", "oʔe")
.replace("ohi", "oʔi")
.replace("ohu", "oʔu")
.replace("ohá", "oʔá")
.replace("ohó", "oʔó")
.replace("ohé", "oʔé")
.replace("ohí", "oʔí")
.replace("ohú", "oʔú")
.replace("eha", "eʔa")
.replace("eho", "eʔo")
.replace("ehe", "eʔe")
.replace("ehi", "eʔi")
.replace("ehu", "eʔu")
.replace("ehá", "eʔá")
.replace("ehó", "eʔó")
.replace("ehé", "eʔé")
.replace("ehí", "eʔí")
.replace("ehú", "eʔú")
.replace("iho", "iʔo")
.replace("ihó", "iʔó")
.replace("ihu", "iʔu")
.replace("ihú", "iʔú")
.replace("uha", "uʔa")
.replace("uhá", "uʔá")
.replace("uho", "uʔo")
.replace("úho", "úʔo")
.replace('h', "")
.replace('j', "h")
.replace("ge", "he")
.replace("gé", "hé")
.replace("gi", "hi")
.replace('r', "ɾ")
.replace("subɾ", "subr")
.replace("nɾ", "nr")
.replace("lɾ", "lr")
.replace("sɾ", "sr")
.replace("#ɾ", "#r")
.replace("ɾɾ", "r")
.replace("oɾ", "oɹ")
.replace("óɾ", "óɹ")
.replace("ɞɾ", "ɞɹ")
.replace("ɾ#", "ɾ̥#")
.replace("ɹ#", "ɹ̥#")
.replace("y#", "i#")
.replace('y', "j")
.replace("ll", "j")
.replace("lt͡ʃ", "lʲt͡ʃ")
.replace("lt", "l̪t")
.replace('b', "β̞")
.replace("#β̞", "#β")
.replace("mβ̞", "mβ")
.replace("lβ̞", "lβ")
.replace("l# #β̞", "l# #β")
.replace('v', "β̞")
.replace("fg", "vg")
.replace("fn", "vn")
.replace("gue", "ge")
.replace("gué", "gé")
.replace("gui", "gi")
.replace("guí", "gí")
.replace('ü', "u")
.replace('g', "ɣ̞")
.replace("ɣ̞l", "ɡl")
.replace("ɣ̞ɾ", "ɡɾ")
.replace("lɣ̞", "lɡ")
.replace("nɣ̞", "nɣ")
.replace("ád#", "á#")
.replace("íd#", "í#")
.replace('d', "ð̞")
.replace("#ð̞", "#ð")
.replace("nð̞", "nð")
.replace("lð̞", "lð")
.replace("ɾð̞", "ɾð")
.replace("áð̞a", "áʔa")
.replace("áð̞o", "áʔo")
.replace("óð̞a", "óʔa")
.replace("óð̞o", "óʔo")
.replace('z', "s")
.replace("s#", "h̥#")
.replace("sk", "h̥k")
.replace("st", "h̥t")
.replace("ksse", "kse")
.replace("kssi", "ksi")
.replace('s', "s̻")
.replace("nt͡ʃ", "nʲt͡ʃ")
.replace('t', "t̪")
.replace("t̪͡ʃ", "t̠͡ʃ")
.replace("nt̪", "n̪t̪")
.replace("nð", "n̪ð")
.replace("nk", "ŋk")
.replace("nɣ", "ŋɣ")
.replace("n#", "ŋ#")
.replace("nm", "ɱ̥m")
.replace("ŋ# #m", "ɱ# #m")
.replace("ŋ# #n", "ɱ# #n")
.replace("nβ", "mβ")
.replace("ŋ# #β", "ɱ# #β")
.replace("np", "mp")
.replace("ŋ# #p", "ɱ# #p")
.replace("nf", "mf")
.replace("ŋ# #f", "ɱ# #f")
.replace('ñ', "ɲ")
.replace("ia", "ja")
.replace("ie", "je")
.replace("io", "jo")
.replace("iu", "ju")
.replace("iá", "já")
.replace("ié", "jé")
.replace("ió", "jó")
.replace("iú", "jú")
.replace("ea", "ia")
.replace("eá", "iá")
.replace("ká", "kɐ")
.replace("ka", "kɐ")
.replace('k', "k̬")
.replace('á', "æ̞̈")
.replace('a', "æ̈")
.replace('ó', "ɞ")
.replace("o#", "ʊ̈#")
.replace("oh̥#", "ʊ̈h̥#")
.replace('o', "ɞ̝")
.replace("lʊ̈#", "lo̞#")
.replace("lʊ̈h̥#", "lo̞h̥#")
.replace("ɾʊ̈#", "ɾo̞#")
.replace("ɾʊ̈h̥#", "ɾo̞h̥#")
.replace("rʊ̈#", "ro̞#")
.replace("rʊ̈h̥#", "ro̞h̥#")
.replace("mʊ̈#", "mo̽#")
.replace("mʊ̈h̥#", "mo̽h̥#")
.replace("nʊ̈#", "no̽#")
.replace("nʊ̈h̥#", "no̽h̥#")
.replace("ɲʊ̈#", "ɲo̽#")
.replace("ɲʊ̈h̥#", "ɲo̽h̥#")
.replace("t̪͡ʃʊ̈#", "t̪͡ʃö#")
.replace("t̪͡ʃʊ̈h̥#", "t̪͡ʃöh̥#")
.replace("t̪ʊ̈#", "t̪ö#")
.replace("t̪ʊ̈h̥#", "t̪öh̥#")
.replace("ɣ̞ʊ̈#", "ɣ̞ə̠#")
.replace("ɣ̞ʊ̈h̥#", "ɣ̞ə̠h̥#")
.replace("ɣʊ̈#", "ɣə̠#")
.replace("ɣʊ̈h̥#", "ɣə̠h̥#")
.replace("hʊ̈#", "hə̠#")
.replace("hʊ̈h̥#", "hə̠h̥#")
.replace("hʊ̈#", "ɲo̽#")
.replace("hʊ̈h̥#", "ɲo̽h̥#")
.replace("t̪͡ʃʊ̈#", "t̪͡ʃö#")
.replace("t̪͡ʃʊ̈h̥#", "t̪͡ʃöh̥#")
.replace("t̪ʊ̈#", "t̪ö#")
.replace("t̪ʊ̈h̥#", "t̪öh̥#")
.replace('é', "ɜ")
.replace('e', "ɜ̝")
.replace('í', "i")
.replace('i', "ɪ")
.replace('ú', "u")
.replace('u', "ʊ")
.replace("mʊ", "mʊ̃")
.replace("mɞ̝", "mɞ̝̃")
.replace("ɞɱ̥m", "ɞ̃ɱ̥m")
.replace("ɜ̝ɱ̥m", "ɜ̝̃ɱ̥m")
.replace("ɪɱ̥m", "ɪ̃ɱ̥m")
.replace("ʊɱ̥m", "ʊ̃ɱ̥m")
.replace("æ̈nn", "æ̠̃nn")
.replace("ɞ̝nn", "ɞ̝̃nn")
.replace("ɜ̝nn", "ɜ̝̃nn")
.replace("ɪnn", "ɪ̃nn")
.replace("ʊnn", "ʊ̃nn")
.replace("æ̞̈ɱ", "æ̞̃ɱ")
.replace("ɞ̝ɱ", "ɞ̝̃ɱ")
.replace("ɜ̝ɱ", "ɜ̝̃ɱ")
.replace("æ̈ɱ", "æ̠̃ɱ")
.replace("ɐɱ", "ɐ̃ɱ")
.replace("ɞɱ", "ɞ̃ɱ")
.replace("ɜɱ", "ɜ̃ɱ")
.replace("ɪɱ", "ɪ̃ɱ")
.replace("ʊɱ", "ʊ̃ɱ")
.replace("æ̞̈ŋ", "æ̞̃ŋ")
.replace("ɞ̝ŋ", "ɞ̝̃ŋ")
.replace("ɜ̝ŋ", "ɜ̝̃ŋ")
.replace("æ̈ŋ", "æ̠̃ŋ")
.replace("ɐŋ", "ɐ̃ŋ")
.replace("ɞŋ", "ɞ̃ŋ")
.replace("ɜŋ", "ɜ̃ŋ")
.replace("ɪŋ", "ɪ̃ŋ")
.replace("ʊŋ", "ʊ̃ŋ")
.replace("æ̞̈n̪", "æ̞̃n̪")
.replace("ɐn̪", "ɐ̃n̪")
.replace("ɞ̝n̪", "ɞ̝̃n̪")
.replace("ɜ̝n̪", "ɜ̝̃n̪")
.replace("æ̈n̪", "æ̠̃n̪")
.replace("ɞn̪", "ɞ̃n̪")
.replace("ɜn̪", "ɜ̃n̪")
.replace("ɪn̪", "ɪ̃n̪")
.replace("ʊn̪", "ʊ̃n̪")
.replace("æ̈nʲ", "æ̠̃nʲ")
.replace("æ̞̈nʲ", "æ̞̃nʲ")
.replace("ɐnʲ", "ɐ̃nʲ")
.replace("ɞ̝nʲ", "ɞ̝̃nʲ")
.replace("ɞnʲ", "ɞ̃nʲ")
.replace("ɜ̝nʲ", "ɜ̝̃nʲ")
.replace("ɜnʲ", "ɜ̃nʲ")
.replace("ɪnʲ", "ɪ̃nʲ")
.replace("ʊnʲ", "ʊ̃nʲ");
let result = spapncend(strmod);
if usefile == "new" {
let mut file = std::fs::File::create(outputfile).expect(&(red.to_owned() + "The output file could not be created!" + reset));
file.write_all("SANTA MARTA, CO:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "old" {
let mut file = OpenOptions::new().append(true).open(outputfile).expect(&(red.to_owned() + "cannot open file" + reset));
file.write_all("SANTA MARTA, CO:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "terminal" {
println!();
println!("{}", cyan.to_owned() + "Santa Marta" + reset + ", " + cyan + "CO" + reset + ":");
println!();
print!("{yellow}");
println!("{result}");
print!("{reset}");
}
}
pub fn spaesbilbao(original_text: &str, usefile: &str, outputfile: &str, reset: &str, red: &str, cyan: &str, yellow: &str) {
let dotend = original_text.to_owned() + ".";
let dotbeg = ".".to_owned() + &dotend;
let lowercase = &dotbeg.to_lowercase();
let pncbeg = spapncbeg(lowercase);
let palesp = spapalesp(&pncbeg);
let spaacc_a = spaaccent_a(&palesp);
let spaacc_e = spaaccent_e(&spaacc_a);
let spaacc_o = spaaccent_o(&spaacc_e);
let spaacc_i = spaaccent_i(&spaacc_o);
let spaacc_u = spaaccent_u(&spaacc_i);
let spasyl = spasyllabes(&spaacc_u);
let strmod = &spasyl
.replace("ch", "t͡ʃ")
.replace("ce", "θe")
.replace("cé", "θé")
.replace("ci", "θi")
.replace("cí", "θí")
.replace('c', "k")
.replace("que", "ke")
.replace("qué", "ké")
.replace("qui", "ki")
.replace('q', "k")
.replace('x', "ks")
.replace('j', "x")
.replace("ge", "xe")
.replace("gé", "xé")
.replace("gi", "χi")
.replace("xi", "χi")
.replace("ix", "iχ")
.replace("xu", "χu")
.replace("ux", "uχ")
.replace('r', "ɾ")
.replace("subɾ", "subr")
.replace("nɾ", "nr")
.replace("lɾ", "lr")
.replace("sɾ", "sr")
.replace("#ɾ", "#r")
.replace("ɾɾ", "r")
.replace("oɾ", "oɹ")
.replace("óɾ", "óɹ")
.replace("y#", "i#")
.replace('y', "ʝ")
.replace("ll", "ʝ")
.replace("ld", "l̪d")
.replace("lt͡ʃ", "lʲt͡ʃ")
.replace("lt", "l̪t")
.replace("lz", "l̟z")
.replace("lk", "ʟk")
.replace("lg", "ʟg")
.replace("lx", "ʟx")
.replace('b', "β̞")
.replace("#β̞", "#β")
.replace("mβ̞", "mβ")
.replace('v', "β̞")
.replace("fg", "vg")
.replace("fn", "vn")
.replace("gue", "ge")
.replace("gué", "gé")
.replace("gui", "gi")
.replace("guí", "gí")
.replace('ü', "u")
.replace('g', "ɣ̞")
.replace("nɣ̞", "nɣ")
.replace("ád#", "á#")
.replace("íd#", "í#")
.replace('d', "ð̞")
.replace("#ð̞", "#ð")
.replace("nð̞", "nð")
.replace("l̪ð̞", "l̪ð")
.replace("ɾð̞", "ɾð")
.replace('s', "s̺")
.replace("s̺#", "s̬#")
.replace("s̺ɣ̞", "s̬ɣ̞")
.replace("s̺m", "s̬m")
.replace("s̺v", "s̬v")
.replace("s̺k", "s̬k")
.replace("zɣ̞", "ðɣ̞")
.replace('z', "θ")
.replace("s̺θ", "s̺")
.replace("ks̺θ", "ks̺")
.replace("nt͡ʃ", "nʲt͡ʃ")
.replace('t', "t̪")
.replace("t̪͡ʃ", "t̠͡ʃ")
.replace("nt̪", "n̪t̪")
.replace("nð", "n̪ð")
.replace("nk", "ŋk")
.replace("nɣ", "ŋɣ")
.replace("nx", "ŋx")
.replace("nθ", "n̟θ")
.replace("nχ", "ɴχ")
.replace("n#", "ŋ#")
.replace("nm", "ɱ̥m")
.replace("ŋ# #m", "ɱ# #m")
.replace("ŋ# #n", "ɱ# #n")
.replace("nβ", "mβ")
.replace("ŋ# #β", "ɱ# #β")
.replace("np", "mp")
.replace("ŋ# #p", "ɱ# #p")
.replace("nf", "mf")
.replace("ŋ# #f", "ɱ# #f")
.replace('ñ', "ɲ")
.replace("aha", "aʔa")
.replace("aho", "aʔo")
.replace("ahe", "aʔe")
.replace("ahi", "aʔi")
.replace("ahu", "aʔu")
.replace("ahá", "aʔá")
.replace("ahó", "aʔó")
.replace("ahé", "aʔé")
.replace("ahí", "aʔí")
.replace("ahú", "aʔú")
.replace("oha", "oʔa")
.replace("oho", "oʔo")
.replace("óho", "óʔo")
.replace("ohe", "oʔe")
.replace("ohi", "oʔi")
.replace("ohu", "oʔu")
.replace("ohá", "oʔá")
.replace("ohó", "oʔó")
.replace("ohé", "oʔé")
.replace("ohí", "oʔí")
.replace("ohú", "oʔú")
.replace("eha", "eʔa")
.replace("eho", "eʔo")
.replace("ehe", "eʔe")
.replace("ehi", "eʔi")
.replace("ehu", "eʔu")
.replace("ehá", "eʔá")
.replace("ehó", "eʔó")
.replace("ehé", "eʔé")
.replace("ehí", "eʔí")
.replace("ehú", "eʔú")
.replace("iho", "iʔo")
.replace("ihó", "iʔó")
.replace("ihu", "iʔu")
.replace("ihú", "iʔú")
.replace("uha", "uʔa")
.replace("uhá", "uʔá")
.replace("uho", "uʔo")
.replace("úho", "úʔo")
.replace('h', "")
.replace("ia", "ʲa")
.replace("ie", "ʲe")
.replace("io", "ʲo")
.replace("iu", "ʲu")
.replace("iá", "ʲá")
.replace("ié", "ʲé")
.replace("ió", "ʲó")
.replace("iú", "ʲú")
.replace('á', "ɐ")
.replace('a', "ɐ̝")
.replace("ʝɐ̞", "ɟ͡ʝɐ̞")
.replace('ó', "ɔ̈")
.replace('o', "ə̠")
.replace('é', "ɛ̈")
.replace('e', "ə̟")
.replace('í', "i")
.replace('i', "e")
.replace('ú', "u")
.replace('u', "o")
.replace("mo", "mõ")
.replace("ə̠ɱ̥m", "ə̠̃ɱ̥m")
.replace("ə̟ɱ̥m", "ə̟̃ɱ̥m")
.replace("eɱ̥m", "ẽɱ̥m")
.replace("oɱ̥m", "õɱ̥m")
.replace("ɐ̝nn", "ɐ̝̃nn")
.replace("ə̠nn", "ə̠̃nn")
.replace("ə̟nn", "ə̟̃nn")
.replace("enn", "ẽnn")
.replace("onn", "õnn")
.replace("ɐɱ", "ɐ̃ɱ")
.replace("ə̠ɱ", "ə̠̃ɱ")
.replace("ə̟ɱ", "ə̟̃ɱ")
.replace("ɐ̝ɱ", "ɐ̝̃ɱ")
.replace("ɔ̈ɱ", "ɞ̃ɱ")
.replace("ɛ̈ɱ", "ɜ̃ɱ")
.replace("eɱ", "ẽɱ")
.replace("oɱ", "õɱ")
.replace("ɐŋ", "ɐ̃ŋ")
.replace("ə̠ŋ", "ə̠̃ŋ")
.replace("ə̟ŋ", "ə̟̃ŋ")
.replace("ɐ̝ŋ", "ɐ̝̃ŋ")
.replace("ɔ̈ŋ", "ɞ̃ŋ")
.replace("ɛ̈ŋ", "ɜ̃ŋ")
.replace("eŋ", "ẽŋ")
.replace("oŋ", "õŋ")
.replace("ɐn̪", "ɐ̃n̪")
.replace("ə̠n̪", "ə̠̃n̪")
.replace("ə̟n̪", "ə̟̃n̪")
.replace("ɐ̝n̪", "ɐ̝̃n̪")
.replace("ɔ̈n̪", "ɞ̃n̪")
.replace("ɛ̈n̪", "ɜ̃n̪")
.replace("en̪", "ẽn̪")
.replace("on̪", "õn̪")
.replace("ɐnʲ", "ɐ̃nʲ")
.replace("ə̠nʲ", "ə̠̃nʲ")
.replace("ə̟nʲ", "ə̟̃nʲ")
.replace("ɐ̝nʲ", "ɐ̝̃nʲ")
.replace("ɔ̈nʲ", "ɞ̃nʲ")
.replace("ɛ̈nʲ", "ɜ̃nʲ")
.replace("enʲ", "ẽnʲ")
.replace("onʲ", "õnʲ")
.replace("ɐn̟", "ɐ̃n̟")
.replace("ə̠n̟", "ə̠̃n̟")
.replace("ə̟n̟", "ə̟̃n̟")
.replace("ɐ̝n̟", "ɐ̝̃n̟")
.replace("ɔ̈n̟", "ɞ̃n̟")
.replace("ɛ̈n̟", "ɜ̃n̟")
.replace("en̟", "ẽn̟")
.replace("on̟", "õn̟")
.replace("ɐɴ", "ɐ̃ɴ")
.replace("ə̠ɴ", "ə̠̃ɴ")
.replace("ə̟ɴ", "ə̟̃ɴ")
.replace("ɐ̝ɴ", "ɐ̝̃ɴ")
.replace("ɔ̈ɴ", "ɞ̃ɴ")
.replace("ɛ̈ɴ", "ɜ̃ɴ")
.replace("eɴ", "ẽɴ")
.replace("oɴ", "õɴ");
let result = spapncend(strmod);
if usefile == "new" {
let mut file = std::fs::File::create(outputfile).expect(&(red.to_owned() + "The output file could not be created!" + reset));
file.write_all("BILBAO, ES:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "old" {
let mut file = OpenOptions::new().append(true).open(outputfile).expect(&(red.to_owned() + "cannot open file" + reset));
file.write_all("BILBAO, ES:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "terminal" {
println!();
println!("{}", cyan.to_owned() + "Bilbao" + reset + ", " + cyan + "ES" + reset + ":");
println!();
print!("{yellow}");
println!("{result}");
print!("{reset}");
}
}
pub fn spaescadiz(original_text: &str, usefile: &str, outputfile: &str, reset: &str, red: &str, cyan: &str, yellow: &str) {
let dotend = original_text.to_owned() + ".";
let dotbeg = ".".to_owned() + &dotend;
let lowercase = &dotbeg.to_lowercase();
let pncbeg = spapncbeg(lowercase);
let palesp = spapalesp(&pncbeg);
let spaacc_a = spaaccent_a(&palesp);
let spaacc_e = spaaccent_e(&spaacc_a);
let spaacc_o = spaaccent_o(&spaacc_e);
let spaacc_i = spaaccent_i(&spaacc_o);
let spaacc_u = spaaccent_u(&spaacc_i);
let spasyl = spasyllabes(&spaacc_u);
let strmod = &spasyl
.replace("ch", "ʃʲ")
.replace("ce", "se")
.replace("cé", "sé")
.replace("ci", "si")
.replace("cí", "sí")
.replace('c', "k")
.replace("que", "ke")
.replace("qué", "ké")
.replace("qui", "ki")
.replace('q', "k")
.replace('x', "ks")
.replace("aha", "aʔa")
.replace("aho", "aʔo")
.replace("ahe", "aʔe")
.replace("ahi", "aʔi")
.replace("ahu", "aʔu")
.replace("ahá", "aʔá")
.replace("ahó", "aʔó")
.replace("ahé", "aʔé")
.replace("ahí", "aʔí")
.replace("ahú", "aʔú")
.replace("oha", "oʔa")
.replace("oho", "oʔo")
.replace("óho", "óʔo")
.replace("ohe", "oʔe")
.replace("ohi", "oʔi")
.replace("ohu", "oʔu")
.replace("ohá", "oʔá")
.replace("ohó", "oʔó")
.replace("ohé", "oʔé")
.replace("ohí", "oʔí")
.replace("ohú", "oʔú")
.replace("eha", "eʔa")
.replace("eho", "eʔo")
.replace("ehe", "eʔe")
.replace("ehi", "eʔi")
.replace("ehu", "eʔu")
.replace("ehá", "eʔá")
.replace("ehó", "eʔó")
.replace("ehé", "eʔé")
.replace("ehí", "eʔí")
.replace("ehú", "eʔú")
.replace("iho", "iʔo")
.replace("ihó", "iʔó")
.replace("ihu", "iʔu")
.replace("ihú", "iʔú")
.replace("uha", "uʔa")
.replace("uhá", "uʔá")
.replace("uho", "uʔo")
.replace("úho", "úʔo")
.replace('h', "h^")
.replace("#h^", "#h̥")
.replace("h^", "")
.replace('j', "x")
.replace("ge", "xe")
.replace("gé", "xé")
.replace("gi", "xi")
.replace('r', "ɾ")
.replace("subɾ", "subr")
.replace("nɾ", "nr")
.replace("lɾ", "lr")
.replace("sɾ", "sr")
.replace("#ɾ", "#r")
.replace("ɾɾ", "r")
.replace("oɾ", "oɹ")
.replace("óɾ", "óɹ")
.replace("y#", "i#")
.replace('y', "ʝ")
.replace("ll", "ʝ")
.replace("lʃʲ", "lʲʃʲ")
.replace("lt", "l̪t")
.replace('b', "β̞")
.replace("#β̞", "#β")
.replace("mβ̞", "mβ")
.replace("lβ̞", "lβ")
.replace("l# #β̞", "l# #β")
.replace('v', "β̞")
.replace("fg", "vg")
.replace("fn", "vn")
.replace("gue", "ge")
.replace("gué", "gé")
.replace("gui", "gi")
.replace("guí", "gí")
.replace('ü', "u")
.replace('g', "ɣ̞")
.replace("lɣ̞", "lɣ")
.replace("nɣ̞", "nɣ")
.replace("ád#", "á#")
.replace("íd#", "í#")
.replace('d', "ð̞")
.replace("#ð̞", "#ð")
.replace("nð̞", "nð")
.replace("lð̞", "lð")
.replace("ɾð̞", "ɾð")
.replace("áð̞o#", "að̥o#")
.replace("ið̞a#", "iʔa#")
.replace("ið̞o#", "iʔo#")
.replace("#iʔo#", "#ið̞o#")
.replace("ð̞ita", "ʔita")
.replace("ð̞ito", "ʔito")
.replace('z', "s")
.replace('s', "s̻")
.replace("#es̻#", "#es̬#")
.replace("s̻#", "#")
.replace("s̻k", "s̥k")
.replace("s̻t", "s̥t")
.replace("as̻o", "as̬o")
.replace("as̻ó", "as̬ó")
.replace("ás̻o", "ás̬o")
.replace("os̻o", "os̬o")
.replace("os̻ó", "os̬ó")
.replace("ós̻o", "ós̬o")
.replace("es̻o", "es̬o")
.replace("es̻ó", "es̬ó")
.replace("és̻o", "és̬o")
.replace("is̻o", "is̬o")
.replace("is̻ó", "is̬ó")
.replace("ís̻o", "ís̬o")
.replace("us̻o", "us̬o")
.replace("us̻ó", "us̬ó")
.replace("ús̻o", "ús̬o")
.replace("ks̻s̻e", "ks̻e")
.replace("ks̻s̻i", "ks̻i")
.replace("nʈ͡ʂʲ", "nʲʈ͡ʂʲ")
.replace('t', "t̪")
.replace("nt̪", "n̪t̪")
.replace("nð", "n̪ð")
.replace("nk", "ŋk")
.replace("nɣ", "ŋɣ")
.replace("nx", "ŋx")
.replace("n#", "ŋ#")
.replace("nm", "ɱ̥m")
.replace("ŋ# #m", "ɱ# #m")
.replace("ŋ# #n", "ɱ# #n")
.replace("nβ", "mβ")
.replace("ŋ# #β", "ɱ# #β")
.replace("np", "mp")
.replace("ŋ# #p", "ɱ# #p")
.replace("nf", "mf")
.replace("ŋ# #f", "ɱ# #f")
.replace('ñ', "ɲ")
.replace('f', "f̟")
.replace('k', "k̬")
.replace("ia", "ja")
.replace("ie", "je")
.replace("io", "jo")
.replace("iu", "ju")
.replace("iá", "já")
.replace("ié", "jé")
.replace("ió", "jó")
.replace("iú", "jú")
.replace('á', "ɐ̠")
.replace('a', "ɐ̝")
.replace('ó', "ɞ̠")
.replace('o', "ɞ")
.replace('é', "ɜ̟")
.replace('e', "ɜ")
.replace('í', "i")
.replace('i', "ɪ")
.replace('ú', "u")
.replace('u', "ʊ")
.replace("mɞ#", "mɔ̽#")
.replace("nɞ#", "nɔ̽#")
.replace("ɲɞ#", "ɲɔ̽#")
.replace("mʊ", "mʊ̃")
.replace("ɞɱ̥m", "ɞ̃ɱ̥m")
.replace("ɜɱ̥m", "ɜ̃ɱ̥m")
.replace("ɪɱ̥m", "ɪ̃ɱ̥m")
.replace("ʊɱ̥m", "ʊ̃ɱ̥m")
.replace("ɐ̝nn", "ɐ̝̃nn")
.replace("ɞnn", "ɞ̃nn")
.replace("ɜnn", "ɜ̃nn")
.replace("ɪnn", "ɪ̃nn")
.replace("ʊnn", "ʊ̃nn")
.replace("ɐ̠ɱ", "ɐ̠̃ɱ")
.replace("ɞɱ", "ɞ̃ɱ")
.replace("ɜɱ", "ɜ̃ɱ")
.replace("ɐ̝ɱ", "ɐ̝̃ɱ")
.replace("ɞ̠ɱ", "ɞ̠̃ɱ")
.replace("ɜ̟ɱ", "ɜ̟̃ɱ")
.replace("ɪɱ", "ɪ̃ɱ")
.replace("ʊɱ", "ʊ̃ɱ")
.replace("ɐ̠ŋ", "ɐ̠̃ŋ")
.replace("ɞŋ", "ɞ̃ŋ")
.replace("ɜŋ", "ɜ̃ŋ")
.replace("ɐ̝ŋ", "ɐ̝̃ŋ")
.replace("ɞ̠ŋ", "ɞ̠̃ŋ")
.replace("ɜ̟ŋ", "ɜ̟̃ŋ")
.replace("ɪŋ", "ɪ̃ŋ")
.replace("ʊŋ", "ʊ̃ŋ")
.replace("ɐ̠n̪", "ɐ̠̃n̪")
.replace("ɞn̪", "ɞ̃n̪")
.replace("ɜn̪", "ɜ̃n̪")
.replace("ɐ̝n̪", "ɐ̝̃n̪")
.replace("ɞ̠n̪", "ɞ̠̃n̪")
.replace("ɜ̟n̪", "ɜ̟̃n̪")
.replace("ɪn̪", "ɪ̃n̪")
.replace("ʊn̪", "ʊ̃n̪")
.replace("ɐ̝nʲ", "ɐ̝̃nʲ")
.replace("ɐ̠nʲ", "ɐ̠̃nʲ")
.replace("ɞnʲ", "ɞ̃nʲ")
.replace("ɞ̠nʲ", "ɞ̠̃nʲ")
.replace("ɜnʲ", "ɜ̃nʲ")
.replace("ɜ̟nʲ", "ɜ̟̃nʲ")
.replace("ɪnʲ", "ɪ̃nʲ")
.replace("ʊnʲ", "ʊ̃nʲ");
let result = spapncend(strmod);
if usefile == "new" {
let mut file = std::fs::File::create(outputfile).expect(&(red.to_owned() + "The output file could not be created!" + reset));
file.write_all("CÁDIZ, ES:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "old" {
let mut file = OpenOptions::new().append(true).open(outputfile).expect(&(red.to_owned() + "cannot open file" + reset));
file.write_all("CÁDIZ, ES:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "terminal" {
println!();
println!("{}", cyan.to_owned() + "Cádiz" + reset + ", " + cyan + "ES" + reset + ":");
println!();
print!("{yellow}");
println!("{result}");
print!("{reset}");
}
}
pub fn spaesmadrid(original_text: &str, usefile: &str, outputfile: &str, reset: &str, red: &str, cyan: &str, yellow: &str) {
let dotend = original_text.to_owned() + ".";
let dotbeg = ".".to_owned() + &dotend;
let lowercase = &dotbeg.to_lowercase();
let pncbeg = spapncbeg(lowercase);
let palesp = spapalesp(&pncbeg);
let spaacc_a = spaaccent_a(&palesp);
let spaacc_e = spaaccent_e(&spaacc_a);
let spaacc_o = spaaccent_o(&spaacc_e);
let spaacc_i = spaaccent_i(&spaacc_o);
let spaacc_u = spaaccent_u(&spaacc_i);
let spasyl = spasyllabes(&spaacc_u);
let strmod = &spasyl
.replace("ch", "t͡ʃ")
.replace("ce", "θe")
.replace("cé", "θé")
.replace("ci", "θi")
.replace("cí", "θí")
.replace('c', "k")
.replace("que", "ke")
.replace("qué", "ké")
.replace("qui", "ki")
.replace('q', "k")
.replace('x', "ks")
.replace('j', "x")
.replace("ge", "xe")
.replace("gé", "xé")
.replace("gi", "χi")
.replace("xi", "χi")
.replace("ix", "iχ")
.replace("xu", "χu")
.replace("ux", "uχ")
.replace('r', "ɾ")
.replace("subɾ", "subr")
.replace("nɾ", "nr")
.replace("lɾ", "lr")
.replace("sɾ", "sr")
.replace("#ɾ", "#r")
.replace("ɾɾ", "r")
.replace("oɾ", "oɹ")
.replace("óɾ", "óɹ")
.replace("y#", "i#")
.replace('y', "ʝ")
.replace("ll", "j")
.replace("ld", "l̪d")
.replace("lt͡ʃ", "lʲt͡ʃ")
.replace("lt", "l̪t")
.replace("lz", "l̟z")
.replace("lk", "ʟk")
.replace("lg", "ʟg")
.replace("lx", "ʟx")
.replace('b', "β̞")
.replace("#β̞", "#β")
.replace("mβ̞", "mβ")
.replace('v', "β̞")
.replace("fg", "vg")
.replace("fn", "vn")
.replace("gue", "ge")
.replace("gué", "gé")
.replace("gui", "gi")
.replace("guí", "gí")
.replace('ü', "u")
.replace('g', "ɣ̞")
.replace("nɣ̞", "nɣ")
.replace("ád#", "á#")
.replace("íd#", "íθ#")
.replace('d', "ð̞")
.replace("#ð̞", "#ð")
.replace("nð̞", "nð")
.replace("l̪ð̞", "l̪ð")
.replace("ɾð̞", "ɾð")
.replace('s', "s̺")
.replace("s̺#", "s̬#")
.replace("s̺ɣ̞", "s̬ɣ̞")
.replace("s̺m", "s̬m")
.replace("s̺v", "s̬v")
.replace("s̺k", "xk")
.replace("s̬# #k", "x# #k")
.replace("zɣ̞", "ðɣ̞")
.replace('z', "θ")
.replace("s̺θ", "s̺")
.replace("ks̺θ", "ks̺")
.replace("nt͡ʃ", "nʲt͡ʃ")
.replace('t', "t̪")
.replace("t̪͡ʃ", "t̠͡ʃ")
.replace("nt̪", "n̪t̪")
.replace("nð", "n̪ð")
.replace("nk", "ŋk")
.replace("nɣ", "ŋɣ")
.replace("nx", "ŋx")
.replace("nθ", "n̟θ")
.replace("nχ", "ɴχ")
.replace("nm", "ɱ̥m")
.replace("n# #m", "m# #m")
.replace("n# #n", "ɱ# #n")
.replace("nβ", "mβ")
.replace("n# #β", "m# #β")
.replace("np", "mp")
.replace("n# #p", "m# #p")
.replace("nf", "ɱf")
.replace("n# #f", "ɱ# #f")
.replace('ñ', "ɲ")
.replace("aha", "aʔa")
.replace("aho", "aʔo")
.replace("ahe", "aʔe")
.replace("ahi", "aʔi")
.replace("ahu", "aʔu")
.replace("ahá", "aʔá")
.replace("ahó", "aʔó")
.replace("ahé", "aʔé")
.replace("ahí", "aʔí")
.replace("ahú", "aʔú")
.replace("oha", "oʔa")
.replace("oho", "oʔo")
.replace("óho", "óʔo")
.replace("ohe", "oʔe")
.replace("ohi", "oʔi")
.replace("ohu", "oʔu")
.replace("ohá", "oʔá")
.replace("ohó", "oʔó")
.replace("ohé", "oʔé")
.replace("ohí", "oʔí")
.replace("ohú", "oʔú")
.replace("eha", "eʔa")
.replace("eho", "eʔo")
.replace("ehe", "eʔe")
.replace("ehi", "eʔi")
.replace("ehu", "eʔu")
.replace("ehá", "eʔá")
.replace("ehó", "eʔó")
.replace("ehé", "eʔé")
.replace("ehí", "eʔí")
.replace("ehú", "eʔú")
.replace("iho", "iʔo")
.replace("ihó", "iʔó")
.replace("ihu", "iʔu")
.replace("ihú", "iʔú")
.replace("uha", "uʔa")
.replace("uhá", "uʔá")
.replace("uho", "uʔo")
.replace("úho", "úʔo")
.replace('h', "")
.replace("ia", "ja")
.replace("ie", "je")
.replace("io", "jo")
.replace("iu", "ju")
.replace("iá", "já")
.replace("ié", "jé")
.replace("ió", "jó")
.replace("iú", "jú")
.replace('á', "ɐ̞")
.replace('a', "ɐ")
.replace("ʝɐ̞", "ɟ͡ʝɐ̞")
.replace('ó', "ɔ")
.replace('o', "ɔ̝")
.replace('é', "ɛ")
.replace('e', "ɛ̝")
.replace('í', "i")
.replace('i', "i̞")
.replace('ú', "u")
.replace('u', "u̞")
.replace("ɔn", "ɔ̃n")
.replace("ɔm#", "ɔ̃m#")
.replace("mu̞", "mũ̞")
.replace("ɔ̝ɱ̥m", "ɔ̝̃ɱ̥m")
.replace("ɛ̝ɱ̥m", "ɛ̝̃ɱ̥m")
.replace("i̞ɱ̥m", "ĩ̞ɱ̥m")
.replace("u̞ɱ̥m", "ũ̞ɱ̥m")
.replace("ɐnn", "ɐ̃nn")
.replace("ɔ̝nn", "ɔ̝̃nn")
.replace("ɛ̝nn", "ɛ̝̃nn")
.replace("i̞nn", "ĩ̞nn")
.replace("u̞nn", "ũ̞nn")
.replace("ɐ̞ɱ", "ɐ̞̃ɱ")
.replace("ɔ̝ɱ", "ɔ̝̃ɱ")
.replace("ɛ̝ɱ", "ɛ̝̃ɱ")
.replace("ɐɱ", "ɐ̃ɱ")
.replace("ɔɱ", "ɔ̃ɱ")
.replace("ɛɱ", "ɛ̃ɱ")
.replace("i̞ɱ", "ĩ̞ɱ")
.replace("u̞ɱ", "ũ̞ɱ")
.replace("ɐ̞ŋ", "ɐ̞̃ŋ")
.replace("ɔ̝ŋ", "ɔ̝̃ŋ")
.replace("ɛ̝ŋ", "ɛ̝̃ŋ")
.replace("ɐŋ", "ɐ̃ŋ")
.replace("ɔŋ", "ɔ̃ŋ")
.replace("ɛŋ", "ɛ̃ŋ")
.replace("i̞ŋ", "ĩ̞ŋ")
.replace("u̞ŋ", "ũ̞ŋ")
.replace("ɐ̞n̪", "ɐ̞̃n̪")
.replace("ɔ̝n̪", "ɔ̝̃n̪")
.replace("ɛ̝n̪", "ɛ̝̃n̪")
.replace("ɐn̪", "ɐ̃n̪")
.replace("ɔn̪", "ɔ̃n̪")
.replace("ɛn̪", "ɛ̃n̪")
.replace("i̞n̪", "ĩ̞n̪")
.replace("u̞n̪", "ũ̞n̪")
.replace("ɐ̞nʲ", "ɐ̞̃nʲ")
.replace("ɔ̝nʲ", "ɔ̝̃nʲ")
.replace("ɛ̝nʲ", "ɛ̝̃nʲ")
.replace("ɐnʲ", "ɐ̃nʲ")
.replace("ɔnʲ", "ɔ̃nʲ")
.replace("ɛnʲ", "ɛ̃nʲ")
.replace("i̞nʲ", "ĩ̞nʲ")
.replace("u̞nʲ", "ũ̞nʲ")
.replace("ɐ̞n̟", "ɐ̞̃n̟")
.replace("ɔ̝n̟", "ɔ̝̃n̟")
.replace("ɛ̝n̟", "ɛ̝̃n̟")
.replace("ɐn̟", "ɐ̃n̟")
.replace("ɔn̟", "ɔ̃n̟")
.replace("ɛn̟", "ɛ̃n̟")
.replace("i̞n̟", "ĩ̞n̟")
.replace("u̞n̟", "ũ̞n̟")
.replace("ɐ̞ɴ", "ɐ̞̃ɴ")
.replace("ɔ̝ɴ", "ɔ̝̃ɴ")
.replace("ɛ̝ɴ", "ɛ̝̃ɴ")
.replace("ɐɴ", "ɐ̃ɴ")
.replace("ɔɴ", "ɔ̃ɴ")
.replace("ɛɴ", "ɛ̃ɴ")
.replace("i̞ɴ", "ĩ̞ɴ")
.replace("u̞ɴ", "ũ̞ɴ");
let result = spapncend(strmod);
if usefile == "new" {
let mut file = std::fs::File::create(outputfile).expect(&(red.to_owned() + "The output file could not be created!" + reset));
file.write_all("MADRID, ES:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "old" {
let mut file = OpenOptions::new().append(true).open(outputfile).expect(&(red.to_owned() + "cannot open file" + reset));
file.write_all("MADRID, ES:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "terminal" {
println!();
println!("{}", cyan.to_owned() + "Madrid" + reset + ", " + cyan + "ES" + reset + ":");
println!();
print!("{yellow}");
println!("{result}");
print!("{reset}");
}
}
pub fn spamxciudaddemexico(original_text: &str, usefile: &str, outputfile: &str, reset: &str, red: &str, cyan: &str, yellow: &str) {
let dotend = original_text.to_owned() + ".";
let dotbeg = ".".to_owned() + &dotend;
let lowercase = &dotbeg.to_lowercase();
let pncbeg = spapncbeg(lowercase);
let palesp = spapalesp(&pncbeg);
let spaacc_a = spaaccent_a(&palesp);
let spaacc_e = spaaccent_e(&spaacc_a);
let spaacc_o = spaaccent_o(&spaacc_e);
let spaacc_i = spaaccent_i(&spaacc_o);
let spaacc_u = spaaccent_u(&spaacc_i);
let spasyl = spasyllabes(&spaacc_u);
let strmod = &spasyl
.replace("ch", "t͡ʃ")
.replace("ce", "ɬe")
.replace("cé", "ɬé")
.replace("ci", "ɬi")
.replace("cí", "ɬí")
.replace('c', "k")
.replace("que", "ke")
.replace("qué", "ké")
.replace("qui", "ki")
.replace('q', "k")
.replace('x', "ks")
.replace('j', "x")
.replace("ge", "xe")
.replace("gé", "xé")
.replace("gi", "χi")
.replace("xi", "χi")
.replace("ix", "iχ")
.replace("xu", "χu")
.replace("ux", "uχ")
.replace('r', "ɾ")
.replace("subɾ", "subr")
.replace("nɾ", "nr")
.replace("lɾ", "lr")
.replace("sɾ", "sr")
.replace("#ɾ", "#r")
.replace("ɾɾ", "r")
.replace("oɾ", "oɹ")
.replace("óɾ", "óɹ")
.replace("y#", "i#")
.replace('y', "ʝ")
.replace("ll", "ʝ")
.replace("lt͡ʃ", "lʲt͡ʃ")
.replace("lk", "ʟk")
.replace("lg", "ʟg")
.replace("lx", "ʟx")
.replace('b', "β̞")
.replace("#β̞", "#β")
.replace("mβ̞", "mβ")
.replace('v', "β̞")
.replace("fg", "vg")
.replace("fn", "vn")
.replace("gue", "ge")
.replace("gué", "gé")
.replace("gui", "gi")
.replace("guí", "gí")
.replace('ü', "u")
.replace('g', "ɣ̞")
.replace("nɣ̞", "nɣ")
.replace("ád#", "á#")
.replace("íd#", "í#")
.replace('d', "ð̞")
.replace("#ð̞", "#ð")
.replace("nð̞", "nð")
.replace("lð̞", "lð")
.replace("ɾð̞", "ɾð")
.replace('l', "l̠")
.replace(['z', 's'], "ɬ")
.replace("ɬ#", "ɬ̬#")
.replace("ɬɣ̞", "ɬ̬ɣ̞")
.replace("ɬk", "ɬ̬k")
.replace("ɬð̞", "ɬ̬ð̞")
.replace("ɬm", "ɬ̬m")
.replace("ɬv", "ɬ̬v")
.replace("kɬɬe", "kɬe")
.replace("kɬɬi", "kɬi")
.replace('ɬ', "ɬ̻")
.replace("ɬ̻̬", "ɬ̬")
.replace("nt͡ʃ", "nʲt͡ʃ")
.replace("t͡ʃ", "t̠͡ʃ")
.replace("nk", "ŋk")
.replace("nɣ", "ŋɣ")
.replace("nx", "ŋx")
.replace("nχ", "ɴχ")
.replace("nm", "ŋm")
.replace("n# #m", "ŋ# #m")
.replace("n# #n", "ɱ# #n")
.replace("nβ", "mβ")
.replace("n# #β", "m# #β")
.replace("np", "mp")
.replace("n# #p", "m# #p")
.replace("nf", "ɱf")
.replace("n# #f", "ɱ# #f")
.replace('ñ', "ɲ")
.replace("aha", "aʔa")
.replace("aho", "aʔo")
.replace("ahe", "aʔe")
.replace("ahi", "aʔi")
.replace("ahu", "aʔu")
.replace("ahá", "aʔá")
.replace("ahó", "aʔó")
.replace("ahé", "aʔé")
.replace("ahí", "aʔí")
.replace("ahú", "aʔú")
.replace("oha", "oʔa")
.replace("oho", "oʔo")
.replace("óho", "óʔo")
.replace("ohe", "oʔe")
.replace("ohi", "oʔi")
.replace("ohu", "oʔu")
.replace("ohá", "oʔá")
.replace("ohó", "oʔó")
.replace("ohé", "oʔé")
.replace("ohí", "oʔí")
.replace("ohú", "oʔú")
.replace("eha", "eʔa")
.replace("eho", "eʔo")
.replace("ehe", "eʔe")
.replace("ehi", "eʔi")
.replace("ehu", "eʔu")
.replace("ehá", "eʔá")
.replace("ehó", "eʔó")
.replace("ehé", "eʔé")
.replace("ehí", "eʔí")
.replace("ehú", "eʔú")
.replace("iho", "iʔo")
.replace("ihó", "iʔó")
.replace("ihu", "iʔu")
.replace("ihú", "iʔú")
.replace("uha", "uʔa")
.replace("uhá", "uʔá")
.replace("uho", "uʔo")
.replace("úho", "úʔo")
.replace('h', "")
.replace("ia", "ʲa")
.replace("ie", "ʲe")
.replace("io", "ʲo")
.replace("iu", "ʲu")
.replace("iá", "ʲá")
.replace("ié", "ʲé")
.replace("ió", "ʲó")
.replace("iú", "ʲú")
.replace('á', "ʌ̞")
.replace('a', "ʌ")
.replace('ó', "ɔ̈")
.replace('o', "ɔ̽")
.replace('é', "ɛ̈")
.replace('e', "ɛ̽")
.replace('í', "i")
.replace('i', "ɪ")
.replace('ú', "u")
.replace('u', "ʊ")
.replace("ɔ̈n", "ɔ̃n")
.replace("ɔ̈m#", "ɔ̃m#")
.replace("mʊ", "mʊ̃")
.replace("ʌnn", "ʌ̃nn")
.replace("ɔ̽nn", "ɔ̝̃nn")
.replace("ɛ̽nn", "ɛ̝̃nn")
.replace("ɪnn", "ɪ̃nn")
.replace("ʊnn", "ʊ̃nn")
.replace("ʌ̞ɱ", "ʌ̞̃ɱ")
.replace("ɔ̽ɱ", "ɔ̝̃ɱ")
.replace("ɛ̽ɱ", "ɛ̝̃ɱ")
.replace("ʌɱ", "ʌ̃ɱ")
.replace("ɔ̈ɱ", "ɔ̃ɱ")
.replace("ɛ̈ɱ", "ɛ̃ɱ")
.replace("ɪɱ", "ɪ̃ɱ")
.replace("ʊɱ", "ʊ̃ɱ")
.replace("ʌ̞ŋ", "ʌ̞̃ŋ")
.replace("ɔ̽ŋ", "ɔ̝̃ŋ")
.replace("ɛ̽ŋ", "ɛ̝̃ŋ")
.replace("ʌŋ", "ʌ̃ŋ")
.replace("ɔ̈ŋ", "ɔ̃ŋ")
.replace("ɛ̈ŋ", "ɛ̃ŋ")
.replace("ɪŋ", "ɪ̃ŋ")
.replace("ʊŋ", "ʊ̃ŋ")
.replace("ʌ̞nʲ", "ʌ̞̃nʲ")
.replace("ɔ̽nʲ", "ɔ̝̃nʲ")
.replace("ɛ̽nʲ", "ɛ̝̃nʲ")
.replace("ʌnʲ", "ʌ̃nʲ")
.replace("ɔ̈nʲ", "ɔ̃nʲ")
.replace("ɛ̈nʲ", "ɛ̃nʲ")
.replace("ɪnʲ", "ɪ̃nʲ")
.replace("ʊnʲ", "ʊ̃nʲ")
.replace("ʌ̞ɴ", "ʌ̞̃ɴ")
.replace("ɔ̽ɴ", "ɔ̝̃ɴ")
.replace("ɛ̽ɴ", "ɛ̝̃ɴ")
.replace("ʌɴ", "ʌ̃ɴ")
.replace("ɔ̈ɴ", "ɔ̃ɴ")
.replace("ɛ̈ɴ", "ɛ̃ɴ")
.replace("ɪɴ", "ɪ̃ɴ")
.replace("ʊɴ", "ʊ̃ɴ");
let result = spapncend(strmod);
if usefile == "new" {
let mut file = std::fs::File::create(outputfile).expect(&(red.to_owned() + "The output file could not be created!" + reset));
file.write_all("CIUDAD DE MÉXICO, MX:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "old" {
let mut file = OpenOptions::new().append(true).open(outputfile).expect(&(red.to_owned() + "cannot open file" + reset));
file.write_all("CIUDAD DE MÉXICO, MX:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "terminal" {
println!();
println!("{}", cyan.to_owned() + "Ciudad de México" + reset + ", " + cyan + "MX" + reset + ":");
println!();
print!("{yellow}");
println!("{result}");
print!("{reset}");
}
}
pub fn spauymontevideo(original_text: &str, usefile: &str, outputfile: &str, reset: &str, red: &str, cyan: &str, yellow: &str) {
let dotend = original_text.to_owned() + ".";
let dotbeg = ".".to_owned() + &dotend;
let lowercase = &dotbeg.to_lowercase();
let pncbeg = spapncbeg(lowercase);
let palesp = spapalesp(&pncbeg);
let spaacc_a = spaaccent_a(&palesp);
let spaacc_e = spaaccent_e(&spaacc_a);
let spaacc_o = spaaccent_o(&spaacc_e);
let spaacc_i = spaaccent_i(&spaacc_o);
let spaacc_u = spaaccent_u(&spaacc_i);
let spasyl = spasyllabes(&spaacc_u);
let strmod = &spasyl
.replace("ch", "t͡ʃ")
.replace("ce", "se")
.replace("cé", "sé")
.replace("ci", "si")
.replace("cí", "sí")
.replace('c', "k")
.replace("que", "ke")
.replace("qué", "ké")
.replace("qui", "ki")
.replace('q', "k")
.replace('x', "ks")
.replace("aha", "aʔa")
.replace("aho", "aʔo")
.replace("ahe", "aʔe")
.replace("ahi", "aʔi")
.replace("ahu", "aʔu")
.replace("ahá", "aʔá")
.replace("ahó", "aʔó")
.replace("ahé", "aʔé")
.replace("ahí", "aʔí")
.replace("ahú", "aʔú")
.replace("oha", "oʔa")
.replace("oho", "oʔo")
.replace("óho", "óʔo")
.replace("ohe", "oʔe")
.replace("ohi", "oʔi")
.replace("ohu", "oʔu")
.replace("ohá", "oʔá")
.replace("ohó", "oʔó")
.replace("ohé", "oʔé")
.replace("ohí", "oʔí")
.replace("ohú", "oʔú")
.replace("eha", "eʔa")
.replace("eho", "eʔo")
.replace("ehe", "eʔe")
.replace("ehi", "eʔi")
.replace("ehu", "eʔu")
.replace("ehá", "eʔá")
.replace("ehó", "eʔó")
.replace("ehé", "eʔé")
.replace("ehí", "eʔí")
.replace("ehú", "eʔú")
.replace("iho", "iʔo")
.replace("ihó", "iʔó")
.replace("ihu", "iʔu")
.replace("ihú", "iʔú")
.replace("uha", "uʔa")
.replace("uhá", "uʔá")
.replace("uho", "uʔo")
.replace("úho", "úʔo")
.replace('h', "")
.replace("je", "ħʲe")
.replace("jé", "ħʲé")
.replace('j', "ħ")
.replace("ge", "ħe")
.replace("gé", "ħé")
.replace("gí", "ħí")
.replace("gi", "ħi")
.replace('r', "ɾ")
.replace("subɾ", "subr")
.replace("nɾ", "nr")
.replace("lɾ", "lr")
.replace("sɾ", "sr")
.replace("#ɾ", "#r")
.replace("ɾɾ", "r")
.replace("oɾ", "oɹ")
.replace("óɾ", "óɹ")
.replace("y#", "i#")
.replace('y', "ç")
.replace("ll", "ç")
.replace("lt͡ʃ", "lʲt͡ʃ")
.replace("lt", "l̪t")
.replace('b', "β̞")
.replace("#β̞", "#β")
.replace("mβ", "ɱb̪")
.replace("lβ̞", "lβ")
.replace("l# #β̞", "l# #β")
.replace('v', "β̞")
.replace("fg", "vg")
.replace("fn", "vn")
.replace("gue", "ge")
.replace("gué", "gé")
.replace("gui", "gi")
.replace("guí", "gí")
.replace('ü', "u")
.replace('g', "ɣ")
.replace("ád#", "á#")
.replace("íd#", "í#")
.replace('d', "ð̞")
.replace("#ð̞", "#ð")
.replace("nð̞", "nð")
.replace("lð̞", "lð")
.replace("ɾð̞", "ɾð")
.replace('z', "s")
.replace("s#", "z̥#")
.replace("sɣ", "ħɣ")
.replace("sk", "ħk")
.replace("z̥# #k", "x# #k")
.replace("sð̞", "s̬ð̞")
.replace("sm", "s̬m")
.replace("sv", "s̬v")
.replace("ksse", "kse")
.replace("kssi", "ksi")
.replace('s', "s̻")
.replace("s̻̬", "s̬")
.replace("nt͡ʃ", "nʲt͡ʃ")
.replace('t', "t̪")
.replace("t̪͡ʃ", "t̠͡ʃ")
.replace("nt̪", "n̪t̪")
.replace("nð", "n̪ð")
.replace("nk", "ŋk")
.replace("nɣ", "ŋɣ")
.replace("n#", "ŋ#")
.replace("nm", "ɱ̥m")
.replace("ŋ# #m", "ɱ# #m")
.replace("ŋ# #n", "ɱ# #n")
.replace("nβ", "mβ")
.replace("ŋ# #β", "ɱ# #β")
.replace("np", "mp")
.replace("ŋ# #p", "ɱ# #p")
.replace("nf", "ɱf")
.replace("n# #f", "ɱ# #f")
.replace('ñ', "ɲ")
.replace('f', "f̟")
.replace("ia", "ja")
.replace("ie", "je")
.replace("io", "jo")
.replace("iu", "ju")
.replace("iá", "já")
.replace("ié", "jé")
.replace("ió", "jó")
.replace("iú", "jú")
.replace("ea", "ia")
.replace("eá", "iá")
.replace('á', "ʌ̞ˑ")
.replace('a', "ʌ")
.replace('ó', "ɔ̈ˑ")
.replace('o', "ə̠")
.replace('é', "ɛ̈ˑ")
.replace('e', "ɛ̽")
.replace('í', "ɪˑ")
.replace('i', "ɪ")
.replace('ú', "ɵ̠ˑ")
.replace('u', "ɵ̠")
.replace("mɵ̠", "mɵ̃")
.replace("ʌnn", "ʌ̃nn")
.replace("ə̠nn", "ə̠̃nn")
.replace("ɛ̽nn", "ɛ̝̃nn")
.replace("ɪnn", "ɪ̃nn")
.replace("ɪˑnn", "ɪ̃ˑnn")
.replace("ɵ̠nn", "ɵ̃nn")
.replace("ɵ̠ˑnn", "ɵ̃ˑnn")
.replace("ʌ̞ˑɱ", "ʌ̞̃ˑɱ")
.replace("ə̠ɱ", "ə̠̃ɱ")
.replace("ɛ̽ɱ", "ɛ̝̃ɱ")
.replace("ʌɱ", "ʌ̃ɱ")
.replace("ɔ̈ˑɱ", "ɞ̃ˑɱ")
.replace("ɛ̈ˑɱ", "ɛ̠̃ˑɱ")
.replace("ɪɱ", "ɪ̃ɱ")
.replace("ɪˑɱ", "ɪ̃ˑɱ")
.replace("ɵ̠ɱ", "ɵ̃ɱ")
.replace("ɵ̠ˑɱ", "ɵ̃ˑɱ")
.replace("ʌ̞ˑŋ", "ʌ̞̃ˑŋ")
.replace("ə̠ŋ", "ə̠̃ŋ")
.replace("ɛ̽ŋ", "ɛ̝̃ŋ")
.replace("ʌŋ", "ʌ̃ŋ")
.replace("ɔ̈ˑŋ", "ɞ̃ˑŋ")
.replace("ɛ̈ˑŋ", "ɛ̠̃ˑŋ")
.replace("ɪŋ", "ɪ̃ŋ")
.replace("ɪˑŋ", "ɪ̃ˑŋ")
.replace("ɵ̠ŋ", "ɵ̃ŋ")
.replace("ɵ̠ˑŋ", "ɵ̃ˑŋ")
.replace("ʌ̞ˑn̪", "ʌ̞̃ˑn̪")
.replace("ə̠n̪", "ə̠̃n̪")
.replace("ɛ̽n̪", "ɛ̝̃n̪")
.replace("ʌn̪", "ʌ̃n̪")
.replace("ɔ̈ˑn̪", "ɞ̃ˑn̪")
.replace("ɛ̈ˑn̪", "ɛ̠̃ˑn̪")
.replace("ɪn̪", "ɪ̃n̪")
.replace("ɪˑn̪", "ɪ̃ˑn̪")
.replace("ɵ̠n̪", "ɵ̃n̪")
.replace("ɵ̠ˑn̪", "ɵ̃ˑn̪")
.replace("ʌ̞ˑnʲ", "ʌ̞̃ˑnʲ")
.replace("ə̠nʲ", "ə̠̃nʲ")
.replace("ɛ̽nʲ", "ɛ̝̃nʲ")
.replace("ʌnʲ", "ʌ̃nʲ")
.replace("ɔ̈ˑnʲ", "ɞ̃ˑnʲ")
.replace("ɛ̈ˑnʲ", "ɛ̠̃ˑnʲ")
.replace("ɪnʲ", "ɪ̃nʲ")
.replace("ɵ̠nʲ", "ɵ̃nʲ");
let result = spapncend(strmod);
if usefile == "new" {
let mut file = std::fs::File::create(outputfile).expect(&(red.to_owned() + "The output file could not be created!" + reset));
file.write_all("MONTEVIDEO, UY:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "old" {
let mut file = OpenOptions::new().append(true).open(outputfile).expect(&(red.to_owned() + "cannot open file" + reset));
file.write_all("MONTEVIDEO, UY:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "terminal" {
println!();
println!("{}", cyan.to_owned() + "Montevideo" + reset + ", " + cyan + "UY" + reset + ":");
println!();
print!("{yellow}");
println!("{result}");
print!("{reset}");
}
}