9
\$\begingroup\$

In this challenge you will take an Irish word and a personal pronoun and create the possessive pronoun construction combining the two.

For example , madra becomes a mhadra. Translated to English: he, dog becomes his dog.

Rather than exhaustively describing how valid Irish words are formed, the input word will be taken from a representative list of Irish words. This means that a valid answer needs only to pass a finite number of test cases. These test cases are listed at the bottom. If you'd like to just look at the test cases and ignore the rest of the description you may do this. Feel free to suggest clarifications, but in the case of any ambiguity or inconsistency the test cases are the the challenge spec.

This will be so the goal is to minimize the size of your program as measured in bytes.

Possesive pronouns

There are seven Irish possessive pronouns that we are going to care about here:

Type conjunctive form possessive pronoun sound change
1st sing. mo lenition
2nd sing. do lenition
3rd sing. fem. a h-prothesis
3rd sing. masc. a lenition
1st plur. muid ár eclipsis
2nd plur. sibh bhur eclipsis
3rd plur. siad a eclipsis

Each possessive pronoun triggers one of three mutations (sound changes) on the following word (i.e. the noun it modifies).

h-prothesis

h-prothesis is very simple. If the word begins with a vowel (e, é, i, í, a, á, o, ó, u, or ú) an h is added to the front. The h is always lowercase regardless of the case of the word.

Lenition

Lenition is, at least in terms of orthography, very simple. The following rules can be applied with priority given to earlier rules:

  1. If the word begins with sc, sf, sm, sp or st no change is applied.
  2. If the word begins with b, c, d, f, g, m, p,s, or t a h is inserted after the initial consonant so f becomes fh.
  3. No change otherwise.

The inserted h matches the case of the second character in the noun.

Eclipsis

Eclispsis is the most complicated of the mutations we will discuss. It changes the initial sound of the following word, by adding additional letters. If the word starts with one of the following consonants then the following clusters are added:

  • b adds m
  • c adds g
  • d adds n
  • f adds bh
  • g adds n
  • p adds b
  • t adds d

This may look a bit random, but the actual underlying sound change is systematic; an unvoiced consonant adds the voiced version and a voiced consonant is replaced with the corresponding nasal consonant.

The added portion is always lower case and the initial letter retains its case. So FOCAL becomes bhFOCAL, and focal becomes bhfocal.

If the word starts with a vowel (e, é, i, í, a, á, o, ó, u, or ú), then an n is added to the front to make the eclipsed form. If the first letter is capitalized then a lower case n is simply added, if the first letter is not capitalized then a - is also added between the n and the root. So UBH becomes nUBH, and ubh becomes n-ubh.

Elision

Although not a mutation there is one last rule that has to be considered. mo and do have unstressed vowels and so they are not pronounced when the following word starts with a vowel. As a result the o is replaced with an apostrophe ' and the space is removed. So m'ól instead of *mo ól.

Tests

mé, arán -> m'arán
tú, arán -> d'arán
sí, arán -> a harán
sé, arán -> a arán
muid, arán -> ár n-arán
sibh, arán -> bhur n-arán
siad, arán -> a n-arán
mé, bád -> mo bhád
tú, bád -> do bhád
sí, bád -> a bád
sé, bád -> a bhád
muid, bád -> ár mbád
sibh, bád -> bhur mbád
siad, bád -> a mbád
mé, bróga -> mo bhróga
tú, bróga -> do bhróga
sí, bróga -> a bróga
sé, bróga -> a bhróga
muid, bróga -> ár mbróga
sibh, bróga -> bhur mbróga
siad, bróga -> a mbróga
mé, cóta -> mo chóta
tú, cóta -> do chóta
sí, cóta -> a cóta
sé, cóta -> a chóta
muid, cóta -> ár gcóta
sibh, cóta -> bhur gcóta
siad, cóta -> a gcóta
mé, cú -> mo chú
tú, cú -> do chú
sí, cú -> a cú
sé, cú -> a chú
muid, cú -> ár gcú
sibh, cú -> bhur gcú
siad, cú -> a gcú
mé, dinnéar -> mo dhinnéar
tú, dinnéar -> do dhinnéar
sí, dinnéar -> a dinnéar
sé, dinnéar -> a dhinnéar
muid, dinnéar -> ár ndinnéar
sibh, dinnéar -> bhur ndinnéar
siad, dinnéar -> a ndinnéar
mé, earr -> m'earr
tú, earr -> d'earr
sí, earr -> a hearr
sé, earr -> a earr
muid, earr -> ár n-earr
sibh, earr -> bhur n-earr
siad, earr -> a n-earr
mé, éan -> m'éan
tú, éan -> d'éan
sí, éan -> a héan
sé, éan -> a éan
muid, éan -> ár n-éan
sibh, éan -> bhur n-éan
siad, éan -> a n-éan
mé, fia -> mo fhia
tú, fia -> do fhia
sí, fia -> a fia
sé, fia -> a fhia
muid, fia -> ár bhfia
sibh, fia -> bhur bhfia
siad, fia -> a bhfia
mé, focal -> mo fhocal
tú, focal -> do fhocal
sí, focal -> a focal
sé, focal -> a fhocal
muid, focal -> ár bhfocal
sibh, focal -> bhur bhfocal
siad, focal -> a bhfocal
mé, gúna -> mo ghúna
tú, gúna -> do ghúna
sí, gúna -> a gúna
sé, gúna -> a ghúna
muid, gúna -> ár ngúna
sibh, gúna -> bhur ngúna
siad, gúna -> a ngúna
mé, iasc -> m'iasc
tú, iasc -> d'iasc
sí, iasc -> a hiasc
sé, iasc -> a iasc
muid, iasc -> ár n-iasc
sibh, iasc -> bhur n-iasc
siad, iasc -> a n-iasc
mé, íomhá -> m'íomhá
tú, íomhá -> d'íomhá
sí, íomhá -> a híomhá
sé, íomhá -> a íomhá
muid, íomhá -> ár n-íomhá
sibh, íomhá -> bhur n-íomhá
siad, íomhá -> a n-íomhá
mé, lámh -> mo lámh
tú, lámh -> do lámh
sí, lámh -> a lámh
sé, lámh -> a lámh
muid, lámh -> ár lámh
sibh, lámh -> bhur lámh
siad, lámh -> a lámh
mé, mac -> mo mhac
tú, mac -> do mhac
sí, mac -> a mac
sé, mac -> a mhac
muid, mac -> ár mac
sibh, mac -> bhur mac
siad, mac -> a mac
mé, madra -> mo mhadra
tú, madra -> do mhadra
sí, madra -> a madra
sé, madra -> a mhadra
muid, madra -> ár madra
sibh, madra -> bhur madra
siad, madra -> a madra
mé, naíon -> mo naíon
tú, naíon -> do naíon
sí, naíon -> a naíon
sé, naíon -> a naíon
muid, naíon -> ár naíon
sibh, naíon -> bhur naíon
siad, naíon -> a naíon
mé, oifig -> m'oifig
tú, oifig -> d'oifig
sí, oifig -> a hoifig
sé, oifig -> a oifig
muid, oifig -> ár n-oifig
sibh, oifig -> bhur n-oifig
siad, oifig -> a n-oifig
mé, ól -> m'ól
tú, ól -> d'ól
sí, ól -> a hól
sé, ól -> a ól
muid, ól -> ár n-ól
sibh, ól -> bhur n-ól
siad, ól -> a n-ól
mé, portán -> mo phortán
tú, portán -> do phortán
sí, portán -> a portán
sé, portán -> a phortán
muid, portán -> ár bportán
sibh, portán -> bhur bportán
siad, portán -> a bportán
mé, rón -> mo rón
tú, rón -> do rón
sí, rón -> a rón
sé, rón -> a rón
muid, rón -> ár rón
sibh, rón -> bhur rón
siad, rón -> a rón
mé, scáth -> mo scáth
tú, scáth -> do scáth
sí, scáth -> a scáth
sé, scáth -> a scáth
muid, scáth -> ár scáth
sibh, scáth -> bhur scáth
siad, scáth -> a scáth
mé, sféar -> mo sféar
tú, sféar -> do sféar
sí, sféar -> a sféar
sé, sféar -> a sféar
muid, sféar -> ár sféar
sibh, sféar -> bhur sféar
siad, sféar -> a sféar
mé, slí -> mo shlí
tú, slí -> do shlí
sí, slí -> a slí
sé, slí -> a shlí
muid, slí -> ár slí
sibh, slí -> bhur slí
siad, slí -> a slí
mé, sméara -> mo sméara
tú, sméara -> do sméara
sí, sméara -> a sméara
sé, sméara -> a sméara
muid, sméara -> ár sméara
sibh, sméara -> bhur sméara
siad, sméara -> a sméara
mé, spíon -> mo spíon
tú, spíon -> do spíon
sí, spíon -> a spíon
sé, spíon -> a spíon
muid, spíon -> ár spíon
sibh, spíon -> bhur spíon
siad, spíon -> a spíon
mé, srón -> mo shrón
tú, srón -> do shrón
sí, srón -> a srón
sé, srón -> a shrón
muid, srón -> ár srón
sibh, srón -> bhur srón
siad, srón -> a srón
mé, stiúideo -> mo stiúideo
tú, stiúideo -> do stiúideo
sí, stiúideo -> a stiúideo
sé, stiúideo -> a stiúideo
muid, stiúideo -> ár stiúideo
sibh, stiúideo -> bhur stiúideo
siad, stiúideo -> a stiúideo
mé, sú -> mo shú
tú, sú -> do shú
sí, sú -> a sú
sé, sú -> a shú
muid, sú -> ár sú
sibh, sú -> bhur sú
siad, sú -> a sú
mé, teaghlach -> mo theaghlach
tú, teaghlach -> do theaghlach
sí, teaghlach -> a teaghlach
sé, teaghlach -> a theaghlach
muid, teaghlach -> ár dteaghlach
sibh, teaghlach -> bhur dteaghlach
siad, teaghlach -> a dteaghlach
mé, ubh -> m'ubh
tú, ubh -> d'ubh
sí, ubh -> a hubh
sé, ubh -> a ubh
muid, ubh -> ár n-ubh
sibh, ubh -> bhur n-ubh
siad, ubh -> a n-ubh
mé, úll -> m'úll
tú, úll -> d'úll
sí, úll -> a húll
sé, úll -> a úll
muid, úll -> ár n-úll
sibh, úll -> bhur n-úll
siad, úll -> a n-úll
mé, ARÁN -> M'ARÁN
tú, ARÁN -> D'ARÁN
sí, ARÁN -> A hARÁN
sé, ARÁN -> A ARÁN
muid, ARÁN -> ÁR nARÁN
sibh, ARÁN -> BHUR nARÁN
siad, ARÁN -> A nARÁN
mé, BÁD -> MO BHÁD
tú, BÁD -> DO BHÁD
sí, BÁD -> A BÁD
sé, BÁD -> A BHÁD
muid, BÁD -> ÁR mBÁD
sibh, BÁD -> BHUR mBÁD
siad, BÁD -> A mBÁD
mé, BRÓGA -> MO BHRÓGA
tú, BRÓGA -> DO BHRÓGA
sí, BRÓGA -> A BRÓGA
sé, BRÓGA -> A BHRÓGA
muid, BRÓGA -> ÁR mBRÓGA
sibh, BRÓGA -> BHUR mBRÓGA
siad, BRÓGA -> A mBRÓGA
mé, CÓTA -> MO CHÓTA
tú, CÓTA -> DO CHÓTA
sí, CÓTA -> A CÓTA
sé, CÓTA -> A CHÓTA
muid, CÓTA -> ÁR gCÓTA
sibh, CÓTA -> BHUR gCÓTA
siad, CÓTA -> A gCÓTA
mé, CÚ -> MO CHÚ
tú, CÚ -> DO CHÚ
sí, CÚ -> A CÚ
sé, CÚ -> A CHÚ
muid, CÚ -> ÁR gCÚ
sibh, CÚ -> BHUR gCÚ
siad, CÚ -> A gCÚ
mé, DINNÉAR -> MO DHINNÉAR
tú, DINNÉAR -> DO DHINNÉAR
sí, DINNÉAR -> A DINNÉAR
sé, DINNÉAR -> A DHINNÉAR
muid, DINNÉAR -> ÁR nDINNÉAR
sibh, DINNÉAR -> BHUR nDINNÉAR
siad, DINNÉAR -> A nDINNÉAR
mé, EARR -> M'EARR
tú, EARR -> D'EARR
sí, EARR -> A hEARR
sé, EARR -> A EARR
muid, EARR -> ÁR nEARR
sibh, EARR -> BHUR nEARR
siad, EARR -> A nEARR
mé, ÉAN -> M'ÉAN
tú, ÉAN -> D'ÉAN
sí, ÉAN -> A hÉAN
sé, ÉAN -> A ÉAN
muid, ÉAN -> ÁR nÉAN
sibh, ÉAN -> BHUR nÉAN
siad, ÉAN -> A nÉAN
mé, FIA -> MO FHIA
tú, FIA -> DO FHIA
sí, FIA -> A FIA
sé, FIA -> A FHIA
muid, FIA -> ÁR bhFIA
sibh, FIA -> BHUR bhFIA
siad, FIA -> A bhFIA
mé, FOCAL -> MO FHOCAL
tú, FOCAL -> DO FHOCAL
sí, FOCAL -> A FOCAL
sé, FOCAL -> A FHOCAL
muid, FOCAL -> ÁR bhFOCAL
sibh, FOCAL -> BHUR bhFOCAL
siad, FOCAL -> A bhFOCAL
mé, GÚNA -> MO GHÚNA
tú, GÚNA -> DO GHÚNA
sí, GÚNA -> A GÚNA
sé, GÚNA -> A GHÚNA
muid, GÚNA -> ÁR nGÚNA
sibh, GÚNA -> BHUR nGÚNA
siad, GÚNA -> A nGÚNA
mé, IASC -> M'IASC
tú, IASC -> D'IASC
sí, IASC -> A hIASC
sé, IASC -> A IASC
muid, IASC -> ÁR nIASC
sibh, IASC -> BHUR nIASC
siad, IASC -> A nIASC
mé, ÍOMHÁ -> M'ÍOMHÁ
tú, ÍOMHÁ -> D'ÍOMHÁ
sí, ÍOMHÁ -> A hÍOMHÁ
sé, ÍOMHÁ -> A ÍOMHÁ
muid, ÍOMHÁ -> ÁR nÍOMHÁ
sibh, ÍOMHÁ -> BHUR nÍOMHÁ
siad, ÍOMHÁ -> A nÍOMHÁ
mé, LÁMH -> MO LÁMH
tú, LÁMH -> DO LÁMH
sí, LÁMH -> A LÁMH
sé, LÁMH -> A LÁMH
muid, LÁMH -> ÁR LÁMH
sibh, LÁMH -> BHUR LÁMH
siad, LÁMH -> A LÁMH
mé, MAC -> MO MHAC
tú, MAC -> DO MHAC
sí, MAC -> A MAC
sé, MAC -> A MHAC
muid, MAC -> ÁR MAC
sibh, MAC -> BHUR MAC
siad, MAC -> A MAC
mé, MADRA -> MO MHADRA
tú, MADRA -> DO MHADRA
sí, MADRA -> A MADRA
sé, MADRA -> A MHADRA
muid, MADRA -> ÁR MADRA
sibh, MADRA -> BHUR MADRA
siad, MADRA -> A MADRA
mé, NAÍON -> MO NAÍON
tú, NAÍON -> DO NAÍON
sí, NAÍON -> A NAÍON
sé, NAÍON -> A NAÍON
muid, NAÍON -> ÁR NAÍON
sibh, NAÍON -> BHUR NAÍON
siad, NAÍON -> A NAÍON
mé, OIFIG -> M'OIFIG
tú, OIFIG -> D'OIFIG
sí, OIFIG -> A hOIFIG
sé, OIFIG -> A OIFIG
muid, OIFIG -> ÁR nOIFIG
sibh, OIFIG -> BHUR nOIFIG
siad, OIFIG -> A nOIFIG
mé, ÓL -> M'ÓL
tú, ÓL -> D'ÓL
sí, ÓL -> A hÓL
sé, ÓL -> A ÓL
muid, ÓL -> ÁR nÓL
sibh, ÓL -> BHUR nÓL
siad, ÓL -> A nÓL
mé, PORTÁN -> MO PHORTÁN
tú, PORTÁN -> DO PHORTÁN
sí, PORTÁN -> A PORTÁN
sé, PORTÁN -> A PHORTÁN
muid, PORTÁN -> ÁR bPORTÁN
sibh, PORTÁN -> BHUR bPORTÁN
siad, PORTÁN -> A bPORTÁN
mé, RÓN -> MO RÓN
tú, RÓN -> DO RÓN
sí, RÓN -> A RÓN
sé, RÓN -> A RÓN
muid, RÓN -> ÁR RÓN
sibh, RÓN -> BHUR RÓN
siad, RÓN -> A RÓN
mé, SCÁTH -> MO SCÁTH
tú, SCÁTH -> DO SCÁTH
sí, SCÁTH -> A SCÁTH
sé, SCÁTH -> A SCÁTH
muid, SCÁTH -> ÁR SCÁTH
sibh, SCÁTH -> BHUR SCÁTH
siad, SCÁTH -> A SCÁTH
mé, SFÉAR -> MO SFÉAR
tú, SFÉAR -> DO SFÉAR
sí, SFÉAR -> A SFÉAR
sé, SFÉAR -> A SFÉAR
muid, SFÉAR -> ÁR SFÉAR
sibh, SFÉAR -> BHUR SFÉAR
siad, SFÉAR -> A SFÉAR
mé, SLÍ -> MO SHLÍ
tú, SLÍ -> DO SHLÍ
sí, SLÍ -> A SLÍ
sé, SLÍ -> A SHLÍ
muid, SLÍ -> ÁR SLÍ
sibh, SLÍ -> BHUR SLÍ
siad, SLÍ -> A SLÍ
mé, SMÉARA -> MO SMÉARA
tú, SMÉARA -> DO SMÉARA
sí, SMÉARA -> A SMÉARA
sé, SMÉARA -> A SMÉARA
muid, SMÉARA -> ÁR SMÉARA
sibh, SMÉARA -> BHUR SMÉARA
siad, SMÉARA -> A SMÉARA
mé, SPÍON -> MO SPÍON
tú, SPÍON -> DO SPÍON
sí, SPÍON -> A SPÍON
sé, SPÍON -> A SPÍON
muid, SPÍON -> ÁR SPÍON
sibh, SPÍON -> BHUR SPÍON
siad, SPÍON -> A SPÍON
mé, SRÓN -> MO SHRÓN
tú, SRÓN -> DO SHRÓN
sí, SRÓN -> A SRÓN
sé, SRÓN -> A SHRÓN
muid, SRÓN -> ÁR SRÓN
sibh, SRÓN -> BHUR SRÓN
siad, SRÓN -> A SRÓN
mé, STIÚIDEO -> MO STIÚIDEO
tú, STIÚIDEO -> DO STIÚIDEO
sí, STIÚIDEO -> A STIÚIDEO
sé, STIÚIDEO -> A STIÚIDEO
muid, STIÚIDEO -> ÁR STIÚIDEO
sibh, STIÚIDEO -> BHUR STIÚIDEO
siad, STIÚIDEO -> A STIÚIDEO
mé, SÚ -> MO SHÚ
tú, SÚ -> DO SHÚ
sí, SÚ -> A SÚ
sé, SÚ -> A SHÚ
muid, SÚ -> ÁR SÚ
sibh, SÚ -> BHUR SÚ
siad, SÚ -> A SÚ
mé, TEAGHLACH -> MO THEAGHLACH
tú, TEAGHLACH -> DO THEAGHLACH
sí, TEAGHLACH -> A TEAGHLACH
sé, TEAGHLACH -> A THEAGHLACH
muid, TEAGHLACH -> ÁR dTEAGHLACH
sibh, TEAGHLACH -> BHUR dTEAGHLACH
siad, TEAGHLACH -> A dTEAGHLACH
mé, UBH -> M'UBH
tú, UBH -> D'UBH
sí, UBH -> A hUBH
sé, UBH -> A UBH
muid, UBH -> ÁR nUBH
sibh, UBH -> BHUR nUBH
siad, UBH -> A nUBH
mé, ÚLL -> M'ÚLL
tú, ÚLL -> D'ÚLL
sí, ÚLL -> A hÚLL
sé, ÚLL -> A ÚLL
muid, ÚLL -> ÁR nÚLL
sibh, ÚLL -> BHUR nÚLL
siad, ÚLL -> A nÚLL

These cases were generated by this program. If you'd like to see a valid implementation of this challenge there is one there. If you'd like to have the test cases in a different format you can adjust the code there to output it in a different format.

About the tests

For your convienence the following are true about all the test cases:

  • The noun is always either all caps or all lower, there is no mixed casing in any of the input nouns.
  • The input is all combinations of 32 distinct words with the 6 pronouns listed, in both upper case and lower case.
  • The following letters appear in the input:
    ABCDEFGHILMNOPRSTUabcdefghilmnoprstuÁÉÍÓÚáéíóú
    
    This means that of the ISO Latin alphabet, J, K, Q, V, W, X, Y, and Z (plus their lower case variants) never appear in the input. The output contains this same character set, plus ', and -.
  • No input ever begins with h or H.
\$\endgroup\$
2
  • \$\begingroup\$ Should I update my /[A-Z]/ uppercase test to /\p{Lu}/u? In other words, may the noun contain only accented letters? \$\endgroup\$
    – Arnauld
    Commented Apr 5 at 8:12
  • \$\begingroup\$ @Arnauld The test cases are the question spec. If your answer passes all the test cases it is correct by definition. \$\endgroup\$
    – Wheat Wizard
    Commented Apr 5 at 14:12

3 Answers 3

2
\$\begingroup\$

Python 3, 431 bytes

def c(p,w):
 v='eéiíaáoóuú';t='mé tú sí sé muid sibh siad'.split().index(p);p='mo do a a ár bhur a'.split()[t];s=' ';f=w[0].lower();l='fbcdgpt'
 if w.isupper():p=p.upper()
 if t>3:
  if f in l:w='bmgnnbdh'[l.index(f)::7]+w
  if f in v:w='n'+'-'*w[0].islower()+w
 if t<2and f in v:p=p[0];s="'"
 w='h'*(t==2and f in v)+w[0]+'hH'[w[1].isupper()]*(t<4)*(t!=2)*(f in'ms'+l)*(w[1]not in'cCfFmMpPtT'*(f=='s'))+w[1:];return p+s+w

Try it online!

You tell me I've somehow made a mistake and I'm deleting this post and forgetting I ever submitted it in the first place.

\$\endgroup\$
2
\$\begingroup\$

JavaScript (ES6), 348 bytes

Expects (pronoun)(word).

p=>w=>(a="mé/mo //m'/tú/do //d'/sé/a /sí/a /muid/ár /sibh/bhur /siad/a ".split`/`)[2*((i=a.indexOf(p))<5&(u=/[A-Z]/.test(w),v=/^[aeiouá-ú]/i.test(w)))-~i][C=`to${u?"Upp":"Low"}erCase`](s="bmgncgdnpbtdfb")+(i<9?w.replace(/^[bcdfgmpt]|s(?![cfmpt])/i,"$&h")[C]():i>10?v?(u?"n":"n-")+w:(j=s[C]().search(w[0]))&1?w:s[j^1]+["h"[j-12]]+w:v?"h"+w:w)

Try it online!

\$\endgroup\$
1
\$\begingroup\$

Retina 0.8.2, 286 bytes

[aáeéiíoóuú]
!$&
s!í, (!)?
a $#1$*h
[éú], ([bcdfgmpt]|s(?![cfmpt]))
$&#
s!é,
a
é,
o
t!ú,
do
o !
'
([dh], )(d|g|(!))
$1n$#3$*-$2
[dh], [bcfpt]
$&@
b@
m$&
c@
g$&
f@
bh$&
p@
b$&
t@
d$&
@|!

muid,
ár
sibh,
bhur
siad,
a
T`láéíóú`LÁÉÍÓÚ`.+[ '](?=.*[A-Z])
([AR] n)-
$1
#([A-ZÁÉÍÓÚ])
H$1
#
h

Try it online! Link is to test suite that runs the code on each input only (the code would otherwise mangle the outputs) and then deletes the successful tests. Explanation: Conveniently all of the Irish vowels are in Retina's default ISO-8859-1 character set.

i)`

Run the first half of the script case-insensitively.

[aáeéiíoóuú]
!$&

Precede vowels with a ! to make them easier to match.

s!í, (!)?
a $#1$*h

Handle the h-prothesis.

[éú], ([bcdfgmpt]|s(?![cfmpt]))
$&#

Handle lenition, but insert # as a placeholder which will be converted to the correct case of H later.

s!é,
a
é,
o
t!ú,
do
o !
'

Change the lenition conjunctives to possessives and fix up o before a vowel.

([dh], )(d|g|(!))
$1n$#3$*-$2

Handle the eclipsis of a d, g or vowel, assuming for now that the vowel is in lower case.

[dh], [bcfpt]
$&@
b@
m$&
c@
g$&
f@
bh$&
p@
b$&
t@
d$&

Handle the other eclipsis consonants.

@|!

Delete the @ and ! markers are they're not needed any more.

muid,
ár
sibh,
bhur
siad,
a

Change the eclipsis conjunctions to possessives.

T`láéíóú`LÁÉÍÓÚ`.+[ '](?=.*[A-Z])

Capitalise the possessives if there is a capital letter in the noun.

([AR] n)-
$1

Remove the - if the vowel eclipsis was in upper case.

#([A-ZÁÉÍÓÚ])
H$1
#
h

Change the # to an H of the appropriate case.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.