Entrada
- verbo , uma sequência que corresponde à expressão regular
([a-pr-vyzıöüçğş]*[aeıioöuü][bcçdfgğhj-nprsştvyz]+|([a-pr-vyzıöüçğş]*[aeıioöuü]){2})(mak|mek)
- plural , um valor verdadeiro ou falso
- pessoa , um número inteiro com valor 1, 2 ou 3
- tenso , um número inteiro com valor 1, 2 ou 3
Resultado
A forma conjugada do verbo turco verbo , em pessoa r / ND / rd pessoa, plural se plural é TRUE
singular e se não é, em
- Se o tempo é 1, o presente simples;
- Se o tempo for 2, o presente contínuo;
- Se o tempo for 3, o futuro.
Regras
Os verbos turcos são conjugados em três elementos, que estão em ordem:
- O caule , formado pela remoção
mak
oumek
pelo fim do infinitivo; O sinal do tempo , que é:
Para o presente simples:
- -r se a haste termina em uma vogal;
- -ir de acordo com as regras de harmonia da vogal (ver abaixo) se o caule contiver mais de uma sílaba (por exemplo, vogal) ou for de um dos seguintes verbos irregulares: almak, bilmek, bulmak, durmak, gelmek, görmek, kalmak, olmak, ölmek, sanmak, vermek, varmak, vurmak ;
- -er de acordo com as regras de harmonia da vogal, se o radical contiver uma sílaba e não estiver listado nos verbos irregulares acima.
Para o presente contínuo, -i , onde i muda de acordo com as regras de harmonia das vogais . As hastes que terminam em uma vogal descartam essa vogal antes de adicionar esse sufixo, após o que o sufixo se harmoniza com a penúltima vogal da palavra (garantida pela expressão regular).
- Para o futuro:
- - aceitar de acordo com as regras de harmonia da vogal se o tronco terminar em consoante;
- -yecek de acordo com as regras de harmonia da vogal se o caule termina em uma vogal.
O sufixo pessoal para indicar o executor da ação, em todos os casos de acordo com as regras de harmonia da vogal :
|Singular|Plural| |---|--------|------| |1st| -im | -iz| |2nd| -sin |-siniz| |3rd| (none) | -ler|
O k final do tempo futuro torna-se ğ antes de -im e -iz , portanto, por exemplo
(almak, TRUE, 1, 3)
, renderiaalacağız
.
Regras de harmonia de vogais
As vogais turcas são divididas em dois grupos: costas ( a ı o u
) e frente ( e i ö ü
) por onde na boca são pronunciadas. Os sufixos de uma palavra alteram as vogais de acordo com as vogais da raiz.
Todos os sufixos listados acima que possuem i como vogal usam:
- -ı se a última vogal antes do sufixo for
ı
oua
(ambas as vogais estão de volta e sem arredondamento); - -i se a última vogal antes do sufixo for
i
oue
(ambas as vogais são frontais e não arredondadas; observe aqui a distinção turca entre I pontilhado e sem pontos ); - -u se a última vogal antes do sufixo for
u
ouo
(ambas as vogais estão de volta e arredondadas); ou - -ü se a última vogal antes do sufixo for
ü
ouö
(ambas as vogais são frontais e arredondadas).
Tome nota cuidadosa do atual sufixo contínuo -iyor . O i
harmoniza, mas o o
não muda. Os sufixos pessoais se harmonizarão com o o
.
Todos os sufixos listados acima que possuem e como vogal usam:
- -e se a última vogal anterior ao sufixo for uma vogal frontal; ou
- -a se a última vogal anterior ao sufixo for uma vogal traseira.
Verbos irregulares
Os verbos gitmek , tatmak , ditmek , gütmek e etmek alteram a final t
para a d
antes de quaisquer finais que começam com uma vogal (que inclui todos os finais deste desafio). Qualquer verbo que termine em -etmek também muda t
para a d
e acrescenta -er para o presente simples (embora isso não ocorra nos outros verbos).
Casos de teste
gütmek, FALSE, 1, 2 -> güdüyorum
almak, TRUE, 3, 3 -> alacaklar
boğmak, TRUE, 2, 1 -> boğarsınız
ölmek, FALSE, 3, 1 -> ölür
boyamak, TRUE, 1, 2 -> boyuyoruz
affetmek, FALSE, 2, 1 -> affedersin
söylemek, TRUE, 3, 1 -> söylerler
söylemek, FALSE, 3, 2 -> söylüyor
söylemek, FALSE, 1, 3 -> söyleyeceğim
fonte
-etmek
regra?Respostas:
Javascript (ES6),
466456451446 bytesUngofled e comentou
Casos de teste
fonte
d
mutação em todos os verbos que terminam em -etmek ? Eu não sei JavaScript, mas pelo que consigo entender, parece que ele acabou de se juntar aos outros.sed, 583 bytes
Assim como minha resposta à questão do hexâmetro Dactylic , que está intimamente relacionada , isso realmente traduz apenas as regras, conforme fornecidas em expressões regulares.
Uso:
Recebe entrada no formato:
Portanto, os casos de teste são:
Demolir:
Resultados para casos de teste:
fonte
sed -E ''
, já que especificou sed como sendo o idioma e não o bash, portanto, considere o script como código-fonte sed. Você poderia executá-lo comoprintf ...|sed -Ef filename
:, adicionando mais 1 byte ao sinalizador E, economizando 8 bytes no final. Aliás, nunca soube até hoje que -E é equivalente a -r!