
    $HJjX                         d Z ddlZddlmZmZ  e       ZddZddZddZddZ	dd	Z
dd
ZddZddZddZddZddZddZy)zE
Special rule for processing Hangul
https://github.com/kyubyong/g2pK
    N   )glossget_rule_id2textc                 F    t         d   }t        j                  dd|       }|S )Nz5.1u   ([ᄌᄍᄎ])ᅧu   \1ᅥrule_id2textresubinpdescriptiveverboseruleouts        ^/Users/ahmed/devFolder/claude-voice/.venv/lib/python3.12/site-packages/misaki/g2pkc/special.pyjyeor      s&    D &&#Xs
3CJ    c                 R    t         d   }|rt        j                  dd|       }|S | }|S )Nz5.2u4   ([ᄀᄁᄃᄄㄹᄆᄇᄈᄌᄍᄎᄏᄐᄑᄒ])ᅨu   \1ᅦr   r   s        r   yer      s8    D ffKXWZ[ J Jr   c                 F    t         d   }t        j                  dd|       }|S )Nz5.3u=   ([ᄀᄁᄂᄃᄄᄅᄆᄇᄈᄉᄊᄌᄍᄎᄏᄐᄑᄒ])ᅴ   \1ᅵr   r   s        r   consonant_uir   $   s&    D
&&PRZ\_
`CJr   c                 r    t         d   }|rt        j                  dd|       }|S | j                  dd      }|S )Nz5.4.2u   ([^^])의/Ju   \1에z/J )r   r	   r
   replacer   s        r   josa_uir   ,   s@     Dff%{C8 J kk$#Jr   c                 R    t         d   }|rt        j                  dd|       }|S | }|S )Nz5.4.1u   ([^^\s]ᄋ)ᅴr   r   r   s        r   vowel_uir   7   s5     Dff%x5 J Jr   c                     t         d   }| }t        j                  dd|      }t        j                  dd|      }t        j                  dd|      }t        j                  dd|      }|S )	N16u   (디그)ᆮᄋu   \1ᄉu*   ([ᄌᄎᄐᄒ]ᅵ으)[ᆽᆾᇀᇂ]ᄋu   (키으)ᆿᄋu   \1ᄀu   (피으)ᇁᄋu   \1ᄇr   r   s        r   jamor!   B   sd    D
C
&&'3
7C
&&=x
MC
&&'3
7C
&&'3
7C Jr   c                 J    t         d   }| }t        j                  dd|      }|S )Nz11.1u   ᆰ/P([ᄀᄁ])u   ᆯᄁr   r   s        r   rieulgiyeokr#   P   s+    D
C
&&"Is
3C Jr   c                     t         d   }| }t        j                  dd|      }t        j                  dd|      }t        j                  dd|      }t        j                  dd	|      }|S )
N25u   ([ᆲᆴ])/Pᄀ   \1ᄁu   ([ᆲᆴ])/Pᄃ   \1ᄄu   ([ᆲᆴ])/Pᄉ   \1ᄊu   ([ᆲᆴ])/Pᄌ   \1ᄍr   r   s        r   
rieulbieubr*   Z   sd    D
C
&&"Hc
2C
&&"Hc
2C
&&"Hc
2C
&&"Hc
2C Jr   c                 f    t         d   }| }g d}|D ]  \  }}t        j                  |||      } |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str2s           r   
verb_nieunr1   g   sA    D
C(E 
dffT4%  Jr   c                     t         d   }| }d}t        j                  d| dd|      }t        j                  dd|      }|S )Nz10.1u   ($|[^ᄋᄒ])u   (바)ᆲ()u   \1ᆸ\2u$   (너)ᆲ([ᄌᄍ]ᅮ|[ᄃᄄ]ᅮ)r   )r   r   r   r   r   syllable_final_or_consonantss         r   balbr5      sN    D
C#2  &&< <=Q?S
QC
&&7*c
JCJr   c                     t         d   }| }t        j                  dd|      }t        j                  dd|      }t        j                  dd|      }t        j                  dd|      }|S )	N17u   ᆮᄋ([ᅵᅧ])u   ᄌ\1u   ᇀᄋ([ᅵᅧ])u   ᄎ\1u   ᆴᄋ([ᅵᅧ])u   ᆯᄎ\1u   ᆮᄒ([ᅵ])r   r   s        r   
palatalizer8      sc    D
C
&&#Xs
3C
&&#Xs
3C
&&#[#
6C
&&(C
0C Jr   c                 f    t         d   }| }g d}|D ]  \  }}t        j                  |||      } |S )N27))u   ᆯ걸u   ᆯ껄)u   ᆯ밖에u   ᆯ빠께)u   ᆯ세라u   ᆯ쎄라)u   ᆯ수록u   ᆯ쑤록)u   ᆯ지라도u   ᆯ찌라도)u   ᆯ지언정u   ᆯ찌언정)u   ᆯ진대u   ᆯ찐대r   r-   s           r   modifying_rieulr;      sA    D
C?E 
dffT4%  Jr   )FF)__doc__r	   utilsr   r   r   r   r   r   r   r   r!   r#   r*   r1   r5   r8   r;    r   r   <module>r?      sV   
 
 *!	

4	r   