
    
`iT                     $    d Z  G d d          ZdS )zDThis module implements useful building blocks for the Earley parser
c                   4    e Zd ZdZdZd Zd Zd Zd Zd Z	dS )	Itemz*An Earley Item, the atom of the algorithm.)	sruleptrstartis_completeexpectpreviousnode_hashc                    t          |j                  |k    | _        || _        || _        || _        d | _        | j        rE|j        | _        d | _	        |dk    r$t          |j                  r|j        |dz
           nd | _
        nL||f| _        |j        |         | _	        |dk    r$t          |j                  r|j        |dz
           nd | _
        t          | j        | j        | j        f          | _        d S )N       )len	expansionr   r   r   r   r   originr   r	   r
   hashr   )selfr   r   r   s       n/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/lark/parsers/earley_common.py__init__zItem.__init__	   s    t~..#5	
	 	a[DFDK7:Qww3t~CVCVwDN3733\`DMMC[DF.-DK7:Qww3t~CVCVwDN3733\`DM464:ty9::


    c                 H    t          | j        | j        dz   | j                  S )Nr   )r   r   r   r   r   s    r   advancezItem.advance   s    DItx!|TZ888r   c                 j    | |u p/| j         |j         k    o| j        |j        k    o| j        |j        k    S N)r   r   r   )r   others     r   __eq__zItem.__eq__   s:    u}m57!2!ltzU[7P!lUYU^bgblUlmr   c                     | j         S r   )r   r   s    r   __hash__zItem.__hash__   s
    zr   c                 >   d | j         j        d | j                 D             }d | j         j        | j        d          D             }d                    | j         j        j        d                    |          d                    |                    }d|| j        fz  S )Nc              3   $   K   | ]}|j         V  d S r   name.0r   s     r   	<genexpr>z Item.__repr__.<locals>.<genexpr>#   s$      SSi9>SSSSSSr   c              3   $   K   | ]}|j         V  d S r   r#   r%   s     r   r'   z Item.__repr__.<locals>.<genexpr>$   s$      RRY).RRRRRRr   z{} ::= {}* {} z%s (%d))r   r   r   formatr   r$   joinr   )r   beforeaftersymbols       r   __repr__zItem.__repr__"   s    SS493Fyy3QSSSRR$)2Edhii2PRRR ''	(8(=sxx?O?OQTQYQYZ_Q`Q`aaFDJ///r   N)
__name__
__module____qualname____doc__	__slots__r   r   r   r    r/    r   r   r   r      sm        00cI; ; ; 9 9 9n n n  0 0 0 0 0r   r   N)r3   r   r5   r   r   <module>r6      sA    !0 !0 !0 !0 !0 !0 !0 !0 !0 !0r   