
    -i                     H    d dl T d dlT  G d d          Zd Zd Zd Zd ZdS )	    )*c                   (    e Zd ZddZd Zd Zd ZdS )Stack c                 .    t          |          | _        d S N)listitems)selftexts     M/var/www/html/speakWrite/venv/lib/python3.11/site-packages/libqutrub/stack.py__init__zStack.__init__   s    $ZZ


    c                 :    | j                             |           d S r   )r
   append)r   items     r   pushz
Stack.push   s    
$r   c                 `    |                                  s| j                                        S d S r   )isEmptyr
   popr   s    r   r   z	Stack.pop   s)    ||~~ 	:>>###4r   c                     | j         g k    S r   )r
   r   s    r   r   zStack.isEmpty   s    
b !r   N)r   )__name__
__module____qualname__r   r   r   r    r   r   r   r      sU        ! ! ! !       " " " " "r   r   c                 ,   t          |           }|j                                         t                      }t                      }d}|                                }||v r|                                }||v |dk    r||v r*|                                 |                    |           n|t
          k    rc|                                 |                    t                     |                    t                     |                    t
                     n/|                    t                     |                    |           |                                }|dk    d                    |j                  d                    |j                  fS )z
    separate the letters from the vowels, in arabic word,
    if a letter hasn't a haraka, the not definited haraka is attributed.
    return ( letters,vowels);
    auNr   )	r   r
   reverser   r   SHADDASUKUNNOT_DEF_HARAKAjoin)wordstack1lettersmarksvowelslast1s         r   separater,      sR    ;;F
LGGG
''EF
**,,E 6//5%6//$;;F?? IIKKKJJuF]] IIKKKJJuJJ~&&&LL    JJ~&&&LLjjll# $;;$ GGGM""2775;#7#788r   c                    d}t          |           t          |          k    rdS t          |           }|j                                         t          |          }|j                                         t                      }|                                }|                                }ddddt
          f}|dk    r|dk    r|t          k    rc|                                }	|	|vr|                    |	           |                    |           |t          k    r|                    |           n5|                    |           |t          k    r|                    |           |                                }|                                }|dk    r|dk    |	                                r|	                                sdS d
                    |j                  S )zm
    joint the letters with the marks
    the length ot letters and marks must be equal
    return word;
    Fr   r   r    oiN)lenr   r
   r!   r   r#   r"   r   r$   r   r%   )
r(   r)   debugstackLetter	stackMark	wordStackr+   last2r*   tops
             r   jointr7   ?   s    E
7||SZZgKEllIOggI
//

E
--//ECE"F$;;E4KKF??C&  s###NN5!!!~%%u%%%NN5!!!~%%u%%%oommoo $;;E4KK !! )i&7&7&9&9 )u wwy'''r   c                    d}t          |           }t          |          }|                                }|                                }|rt          d||           d}|dk    r|dk    r||k    rH|rt          d|j        ||j        |           |                                }|                                }n||v r8||vr4|rt          d|j        ||j        |           |                                }n\||vr8||v r4|rt          d|j        ||j        |           |                                }n |rt          d|j        ||j        |           n|dk    r|dk    |                                r|                                sdS dS )z
    if the two words has the same letters and the same harakats, this fuction return True.
    The two words can be full vocalized, or partial vocalized
    F+0r   N+2T)r   r   printr
   r   )word1word2r1   r'   stack2r+   r5   r*   s           r   vocalizedliker?   h   s   
 E<<F<<F
**,,E
**,,E*eD&&)))F$;;E4KK%<<JeT6<v|EJJJ**,,E**,,EEf__f!4!4IeD&,ufl5III**,,EE&  Uf__IeD&,ufl5III**,,EEIeD&,ufl5III $;;E4KK NN !1!1 ur   c                    d}t          |           }t          |          }t                      }|                                }|                                }|rt          d||           d}|dk    r|dk    r||k    r_|t          t          t
          fvrI|rt          d|j        ||j        |           |                                }|                                }n||vr|t          t          t
          fv rl|rt          d|j        ||j        |           |                    |           t          d           |                                }|                                }n||v r8||vr4|rt          d|j        ||j        |           |                                }n\||vr8||v r4|rt          d|j        ||j        |           |                                }n |rt          d|j        ||j        |           n|dk    r|dk    |j                                         t          d|j                   |	                                r|	                                sdS dS )	z
    if the  word1 is like a wazn (pattern),
    the letters must be equal,
    the wazn has FEH, AIN, LAM letters.
    this are as generic letters.
    The two words can be full vocalized, or partial vocalized
    Fr9   r   Nr:   tz the root is T)
r   r   r;   FEHAINLAMr
   r   r!   r   )	r<   waznr1   r'   r>   rootr+   r5   r*   s	            r   waznlikerG      sB    E<<F;;F	D
**,,E
**,,E)eD&&)))F$;;E4KK%<<E#s377JeT6<v|EJJJ**,,E**,,EE&  UsCn%<%<IeD&,ufl5IIIIIe#JJJ**,,E**,,EEf__f!4!4IeD&,ufl5III**,,EE&  Uf__IeD&,ufl5III**,,EEIeD&,ufl5III' $;;E4KK* 	J	/4:&&&NN !1!1 ur   N)pyarabic.araby
verb_constr   r,   r7   r?   rG   r   r   r   <module>rJ      s   
        " " " " " " " ""$9 $9 $9N') ') ')R  @) ) ) ) )r   