
    -                         S r  " S S5      rg)zDThis module implements useful building blocks for the Earley parser
c                   :    \ rS rSrSrSrS rS rS rS r	S r
S	rg
)Item   z*An Earley Item, the atom of the algorithm.)	sruleptrstartis_completeexpectpreviousnode_hashc                 ,   [        UR                  5      U:H  U l        Xl        X l        X0l        S U l        U R                  (       aR  UR                  U l        S U l	        US:  a,  [        UR                  5      (       a  UR                  US-
     OS U l
        OUX4U l        UR                  U   U l	        US:  a,  [        UR                  5      (       a  UR                  US-
     OS U l
        [        U R                  U R
                  45      U l        g )N       )len	expansionr	   r   r   r   r   originr   r
   r   hashr   )selfr   r   r   s       -lib/third_party/lark/parsers/earley_common.py__init__Item.__init__	   s    t~~.#5	
	[[DFDK7:Qw3t~~CVCVDNN373\`DM[DF..-DK7:Qw3t~~CVCVDNN373\`DM4664::./
    c                 ^    [        U R                  U R                  S-   U R                  5      $ )Nr   )r   r   r   r   r   s    r   advanceItem.advance   s!    DIItxx!|TZZ88r   c                     XL =(       d9    U R                   UR                   :H  =(       a    U R                  UR                  :H  $ N)r   r   )r   others     r   __eq__Item.__eq__   s.    }Q577!2!PtzzU[[7PQr   c                     U R                   $ r   )r   r   s    r   __hash__Item.__hash__   s    zzr   c                 h   S U R                   R                  S U R                    5       nS U R                   R                  U R                  S   5       nSR                  U R                   R                  R
                  SR                  U5      SR                  U5      5      nSX0R                  4-  $ )Nc              3   8   #    U  H  oR                   v   M     g 7fr   name.0r   s     r   	<genexpr> Item.__repr__.<locals>.<genexpr>#   s     S3Qi>>3Q   c              3   8   #    U  H  oR                   v   M     g 7fr   r(   r*   s     r   r,   r-   $   s     R2PY..2Pr.   z{} ::= {}* {} z%s (%d))r   r   r   formatr   r)   joinr   )r   beforeaftersymbols       r   __repr__Item.__repr__"   s    S4993F3Fy3QSR$))2E2Edhhi2PR ''		(8(8(=(=sxx?OQTQYQYZ_Q`aFJJ///r   )	r   r
   r	   r   r   r   r   r   r   N)__name__
__module____qualname____firstlineno____doc__	__slots__r   r   r!   r$   r6   __static_attributes__ r   r   r   r      s$    0cI0 9R0r   r   N)r<   r   r?   r   r   <module>r@      s   !0 !0r   