o
    Wεi                     @   s   d Z ddlZddlmZmZ e ZdddZdddZdd	d
ZdddZ	dddZ
dddZdddZdddZdddZdddZdddZdddZdS )zE
Special rule for processing Hangul
https://github.com/kyubyong/g2pK
    N)glossget_rule_id2textFc                 C   (   t d }tdd| }t||| | |S )Nz5.1u   ([ᄌᄍᄎ])ᅧu   \1ᅥrule_id2textresubr   inpdescriptiveverboseruleout r   A/home/ubuntu/.local/lib/python3.10/site-packages/g2pkk/special.pyjyeo   s   r   c                 C   2   t d }|rtdd| }n| }t||| | |S )Nz5.2u4   ([ᄀᄁᄃᄄㄹᄆᄇᄈᄌᄍᄎᄏᄐᄑᄒ])ᅨu   \1ᅦr   r	   r   r   r   ye   s   r   c                 C   r   )Nz5.3u=   ([ᄀᄁᄂᄃᄄᄅᄆᄇᄈᄉᄊᄌᄍᄎᄏᄐᄑᄒ])ᅴ   \1ᅵr   r	   r   r   r   consonant_ui$   s   r   c                 C   s:   t d }|rtdd| }n| dd}t||| | |S )Nz5.4.2u   의/Ju   에z/J )r   r   r   replacer   r	   r   r   r   josa_ui,   s   r   c                 C   r   )Nz5.4.1u
   (\Sᄋ)ᅴr   r   r	   r   r   r   vowel_ui7   s   r   c                 C   sV   t d }| }tdd|}tdd|}tdd|}tdd|}t||| | |S )	N16u   ([그])ᆮᄋu   \1ᄉu   ([으])[ᆽᆾᇀᇂ]ᄋu   ([으])[ᆿ]ᄋu   \1ᄀu   ([으])[ᇁ]ᄋu   \1ᄇr   r	   r   r   r   jamoB      r   c                 C   s,   t d }| }tdd|}t||| | |S )Nz11.1u   ᆰ/P([ᄀᄁ])u   ᆯᄁr   r	   r   r   r   rieulgiyeokP   s
   r   c                 C   sV   t d }| }tdd|}tdd|}tdd|}tdd	|}t||| | |S )
N25u   ([ᆲᆴ])/Pᄀ   \1ᄁu   ([ᆲᆴ])/Pᄃ   \1ᄄu   ([ᆲᆴ])/Pᄉ   \1ᄊu   ([ᆲᆴ])/Pᄌ   \1ᄍr   r	   r   r   r   
rieulbieubZ   r   r#   c                 C   B   t d }| }g d}|D ]\}}t|||}qt||| | |S )N24))u   ([ᆫᆷ])/Pᄀr   )u   ([ᆫᆷ])/Pᄃr    )u   ([ᆫᆷ])/Pᄉr!   )u   ([ᆫᆷ])/Pᄌr"   )u   ᆬ/Pᄀu   ᆫᄁ)u   ᆬ/Pᄃu   ᆫᄄ)u   ᆬ/Pᄉu   ᆫᄊ)u   ᆬ/Pᄌu   ᆫᄍ)u   ᆱ/Pᄀu   ᆷᄁ)u   ᆱ/Pᄃu   ᆷᄄ)u   ᆱ/Pᄉu   ᆷᄊ)u   ᆱ/Pᄌu   ᆷᄍr   r
   r   r   r   r   pairsstr1str2r   r   r   
verb_nieung   s   r*   c                 C   sF   t d }| }d}td| dd|}tdd|}t||| | |S )Nz10.1u   ($|[^ᄋᄒ])u   (바)ᆲ()u   \1ᆸ\2u$   (너)ᆲ([ᄌᄍ]ᅮ|[ᄃᄄ]ᅮ)r   )r
   r   r   r   r   syllable_final_or_consonantsr   r   r   balb   s   r-   c                 C   sV   t d }| }tdd|}tdd|}tdd|}tdd|}t||| | |S )	N17u   ᆮᄋ([ᅵᅧ])u   ᄌ\1u   ᇀᄋ([ᅵᅧ])u   ᄎ\1u   ᆴᄋ([ᅵᅧ])u   ᆯᄎ\1u   ᆮᄒ([ᅵ])r   r	   r   r   r   
palatalize   s   r/   c                 C   r$   )N27))u	   ᆯ/E ᄀu   ᆯ ᄁ)u	   ᆯ/E ᄃu   ᆯ ᄄ)u	   ᆯ/E ᄇu   ᆯ ᄈ)u	   ᆯ/E ᄉu   ᆯ ᄊ)u	   ᆯ/E ᄌu   ᆯ ᄍ)u   ᆯ걸u   ᆯ껄)u   ᆯ밖에u   ᆯ빠께)u   ᆯ세라u   ᆯ쎄라)u   ᆯ수록u   ᆯ쑤록)u   ᆯ지라도u   ᆯ찌라도)u   ᆯ지언정u   ᆯ찌언정)u   ᆯ진대u   ᆯ찐대r   r&   r   r   r   modifying_rieul   s   r1   )FF)__doc__r   g2pkk.utilsr   r   r   r   r   r   r   r   r   r   r#   r*   r-   r/   r1   r   r   r   r   <module>   s    

	









