
    XhT                         d Z  G d d      Zy)zDThis module implements useful building blocks for the Earley parser
c                   2    e Zd ZdZdZd Zd Zd Zd Zd Z	y)	Itemz*An Earley Item, the atom of the algorithm.)	sruleptrstartis_completeexpectpreviousnode_hashc                 (   t        |j                        |k(  | _        || _        || _        || _        d | _        | j                  rL|j                  | _        d | _	        |dkD  r't        |j                        r|j                  |dz
     nd | _
        nP||f| _        |j                  |   | _	        |dkD  r't        |j                        r|j                  |dz
     nd | _
        t        | j                  | j
                  | j                  f      | _        y )N       )len	expansionr   r   r   r   r   originr   r	   r
   hashr   )selfr   r   r   s       N/var/www/html/myenv/lib/python3.12/site-packages/lark/parsers/earley_common.py__init__zItem.__init__	   s    t~~.#5	
	[[DFDK7:Qw3t~~CVDNN373\`DMC[DF..-DK7:Qw3t~~CVDNN373\`DM4664::tyy9:
    c                 ^    t        | j                  | j                  dz   | j                        S )Nr   )r   r   r   r   r   s    r   advancezItem.advance   s!    DIItxx!|TZZ88r   c                     | |u xsO | j                   |j                   k(  xr4 | j                  |j                  k(  xr | j                  |j                  k(  S N)r   r   r   )r   others     r   __eq__zItem.__eq__   sH    u}m577!2!ltzzU[[7P!lUYU^U^bgblblUlmr   c                     | j                   S r   )r   r   s    r   __hash__zItem.__hash__   s    zzr   c                 j   d | j                   j                  d | j                   D        }d | j                   j                  | j                  d  D        }dj                  | j                   j                  j
                  dj                  |      dj                  |            }d|| j                  fz  S )Nc              3   4   K   | ]  }|j                     y wr   name.0r   s     r   	<genexpr>z Item.__repr__.<locals>.<genexpr>#   s     Si9>>S   c              3   4   K   | ]  }|j                     y wr   r#   r%   s     r   r'   z Item.__repr__.<locals>.<genexpr>$   s     RY)..Rr(   z{} ::= {}* {} z%s (%d))r   r   r   formatr   r$   joinr   )r   beforeaftersymbols       r   __repr__zItem.__repr__"   s    S4993F3Fy3QSR$))2E2Edhhi2PR ''		(8(8(=(=sxx?OQTQYQYZ_Q`aFDJJ///r   N)
__name__
__module____qualname____doc__	__slots__r   r   r   r    r0    r   r   r   r      s$    0cI; 9n0r   r   N)r4   r   r6   r   r   <module>r7      s   !0 !0r   