
    g                     ,    d dl Z d dlmZ d Zd ZddgZy)    N)Treec                     t        d      )zE
    Use Tree.read(s, remove_empty_top_bracketing=True) instead.
    z;Use Tree.read(s, remove_empty_top_bracketing=True) instead.)	NameError)ss    F/var/www/openai/venv/lib/python3.12/site-packages/nltk/tree/parsing.pybracket_parser      s     Q
RR    c                    t        j                  d|       }t        t        |            D ]z  }||   dk(  r||   ||dz
     c||dz
  <   ||<   #d||   v rC||   j                  d      }t        |      dk(  r	|d   ||<   Ud|d   z   dz   |d   z   d	z   ||<   m||   d
k(  svd||<   | dj	                  |      }t        j                  |d      S )a  
    Parse a Sinica Treebank string and return a tree.  Trees are represented as nested brackettings,
    as shown in the following example (X represents a Chinese character):
    S(goal:NP(Head:Nep:XX)|theme:NP(Head:Nhaa:X)|quantity:Dab:X|Head:VL2:X)#0(PERIODCATEGORY)

    :return: A tree corresponding to the string representation.
    :rtype: Tree
    :param s: The string to be converted
    :type s: str
    z([()| ])(   :    )| T)remove_empty_top_bracketing)resplitrangelenjoinr   
fromstring)r   tokensifieldstreebank_strings        r   sinica_parser       s     XXk1%F3v;!9q	q1u %F1q5M6!9 F1IAY__S)F6{a"1Iq	&*,s2VBZ?#Eq	AY#F1I   hhv&O???MMr	   r   r    )r   nltk.tree.treer   r   r    __all__ r	   r   <module>r$      s)    
 SNJ r	   