
    Ng*                     f    d dl mZ d dlmZ d dlmZ dZ G d de          Z G d de          Z	dS )	    )StringIO)Token)IllegalStateExceptionNc                       e Zd ZdS )TokenStreamN)__name__
__module____qualname__     V/var/www/html/ai-engine/env/lib/python3.11/site-packages/antlr4/BufferedTokenStream.pyr   r      s        Dr   r   c                   @   e Zd ZdZdefdZd ZdefdZd Z	defd	Z
defd
Zd ZdefdZdefdZd*dededefdZdefdZdefdZdefdZdefdZd Zd ZdefdZdedefdZdedefdZd+d!edefd"Zd+d!edefd#Zd$ed%edefd&Zd' Zd,dedefd(Zd) ZdS )-BufferedTokenStreamtokenSourcetokensindex
fetchedEOFr   c                 >    || _         g | _        d| _        d| _        d S NFr   selfr   s     r   __init__zBufferedTokenStream.__init__    s)    &
  
  r   c                     dS Nr   r   r   s    r   markzBufferedTokenStream.markA   s    qr   markerc                     d S Nr   )r   r   s     r   releasezBufferedTokenStream.releaseD   s    r   c                 0    |                      d           d S r   )seekr   s    r   resetzBufferedTokenStream.resetH   s    		!r   r   c                 b    |                                   |                     |          | _        d S r!   )lazyInitadjustSeekIndexr   r   r   s     r   r$   zBufferedTokenStream.seekK   s(    ))%00


r   c                 D    |                                   | j        |         S r!   )r'   r   r)   s     r   getzBufferedTokenStream.getO   s    {5!!r   c                    d}| j         dk    rF| j        r!| j         t          | j                  dz
  k     }n | j         t          | j                  k     }nd}|s2|                     d          t
          j        k    rt          d          |                     | j         dz             r$| 	                    | j         dz             | _         d S d S )NFr      zcannot consume EOF)
r   r   lenr   LAr   EOFr   syncr(   )r   skipEofChecks     r   consumezBufferedTokenStream.consumeS   s    :?? =  $zC,<,<q,@@  $zC,<,<< !L 	>

ei 7 7'(<===99TZ!^$$ 	>--dj1n==DJJJ	> 	>r   ic                 |    |t          | j                  z
  dz   }|dk    r|                     |          }||k    S dS )Nr-   r   T)r.   r   fetch)r   r4   nfetcheds       r   r1   zBufferedTokenStream.syncm   sB    DK   1$q55jjmmGa<tr   r7   c                    | j         rdS t          d|          D ]q}| j                                        }t	          | j                  |_        | j                            |           |j        t          j
        k    rd| _         |dz   c S r|S )Nr   Tr-   )r   ranger   	nextTokenr.   r   
tokenIndexappendtyper   r0   )r   r7   r4   ts       r   r6   zBufferedTokenStream.fetchx   s    ? 	1q! 	 	A **,,At{++ALKq!!!vuy  "&1u ! r   Nstartstoptypesc                 Z   |dk     s|dk     rd S |                                   g }|t          | j                  k    rt          | j                  dz
  }t          ||          D ]F}| j        |         }|j        t
          j        k    r n!|	|j        |v r|                    |           G|S Nr   r-   )r'   r.   r   r:   r>   r   r0   r=   )r   r@   rA   rB   subsetr4   r?   s          r   	getTokenszBufferedTokenStream.getTokens   s    77d1ff43t{####t{##A%Dud## 	! 	!AAAvuy  }%a   r   c                 6    |                      |          j        S r!   )LTr>   r   r4   s     r   r/   zBufferedTokenStream.LA   s    wwqzzr   kc                 L    | j         |z
  dk     rd S | j        | j         |z
           S r   )r   r   )r   rJ   s     r   LBzBufferedTokenStream.LB   s+    JqLA4{4:a<((r   c                 D   |                                   |dk    rd S |dk     r|                     |           S | j        |z   dz
  }|                     |           |t	          | j                  k    r"| j        t	          | j                  dz
           S | j        |         S rD   )r'   rL   r   r1   r.   r   )r   rJ   r4   s      r   rH   zBufferedTokenStream.LT   s    a444q5577A2;;JNQ		!DK    ;s4;//122{1~r   c                     |S r!   r   rI   s     r   r(   z#BufferedTokenStream.adjustSeekIndex   s    r   c                 H    | j         dk    r|                                  d S d S )Nr   )r   setupr   s    r   r'   zBufferedTokenStream.lazyInit   s(    :JJLLLLL r   c                 d    |                      d           |                     d          | _        d S r   )r1   r(   r   r   s    r   rP   zBufferedTokenStream.setup   s*    		!))!,,


r   c                 >    || _         g | _        d| _        d| _        d S r   r   r   s     r   setTokenSourcez"BufferedTokenStream.setTokenSource   s#    &
r   channelc                 P   |                      |           |t          | j                  k    rt          | j                  dz
  S | j        |         }|j        |k    rI|j        t
          j        k    r|S |dz  }|                      |           | j        |         }|j        |k    I|S )Nr-   )r1   r.   r   rT   r>   r   r0   )r   r4   rT   tokens       r   nextTokenOnChannelz&BufferedTokenStream.nextTokenOnChannel   s    		!c$+t{##a''AmW$$z59$$FAIIaLLLKNE mW$$ r   c                     |dk    r7| j         |         j        |k    r!|dz  }|dk    r| j         |         j        |k    !|S rD   )r   rT   )r   r4   rT   s      r   previousTokenOnChannelz*BufferedTokenStream.previousTokenOnChannel   sJ    ddt{1~-w66FA ddt{1~-w66r   r   r<   c                    |                                   |dk     s|t          | j                  k    rDt          t	          |          dz   t	          t          | j                  dz
            z             ddlm} |                     |dz   |j                  }|dz   }|dk    rt          | j                  dz
  n|}| 	                    |||          S )Nr    not in 0..r-   Lexerr   )
r'   r.   r   	Exceptionstrantlr4.Lexerr]   rW   DEFAULT_TOKEN_CHANNELfilterForChannel)r   r<   rT   r]   nextOnChannelfrom_tos          r   getHiddenTokensToRightz*BufferedTokenStream.getHiddenTokensToRight   s    a<<:s4;'7'777C
OOm;c#dkBRBRSTBT>U>UUVVV&&&&&&//
Q@[\\1%2B%6%6c$+q  M$$UB888r   c                    |                                   |dk     s|t          | j                  k    rDt          t	          |          dz   t	          t          | j                  dz
            z             ddlm} |                     |dz
  |j                  }||dz
  k    rd S |dz   }|dz
  }| 	                    |||          S )Nr   r[   r-   r\   )
r'   r.   r   r^   r_   r`   r]   rY   ra   rb   )r   r<   rT   r]   prevOnChannelrd   re   s          r   getHiddenTokensToLeftz)BufferedTokenStream.getHiddenTokensToLeft   s    a<<:s4;'7'777C
OOm;c#dkBRBRSTBT>U>UUVVV&&&&&&33JNED_``JN**4a\$$UB888r   leftrightc                    g }t          ||dz             D ]a}| j        |         }|dk    r,ddlm} |j        |j        k    r|                    |           A|j        |k    r|                    |           bt          |          dk    rd S |S )Nr-   r   r   r\   )r:   r   r`   r]   rT   ra   r=   r.   )r   rj   rk   rT   hiddenr4   r?   r]   s           r   rb   z$BufferedTokenStream.filterForChannel  s    tU1W%% 	% 	%AAA{{......9u:::MM!$$$G##MM!$$$v;;>>4r   c                 4    | j                                         S r!   )r   getSourceNamer   s    r   ro   z!BufferedTokenStream.getSourceName  s    --///r   c                 x   |                                   |                                  t          |t                    r|j        }n|d}t          |t                    r|j        }n1||t          | j                  k    rt          | j                  dz
  }|dk     s|dk     s||k     rdS t                      5 }t          ||dz             D ]@}| j        |         }|j	        t          j
        k    r n|                    |j                   A|                                cd d d            S # 1 swxY w Y   d S )Nr   r-    )r'   fill
isinstancer   r<   r.   r   r   r:   r>   r0   writetextgetvalue)r   r@   rA   bufr4   r?   s         r   getTextzBufferedTokenStream.getText  sq   		eU## 	$EE]EdE"" 	(?DD\TS%5%555t{##a'D199qD5LL2ZZ 	"35$q&)) " "KN659$$E		!&!!!!<<>>	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s   :A(D//D36D3c                     |                                   |                     d          dk    r	 |                     d          dk    d S d S )Ni  )r'   r6   r   s    r   rr   zBufferedTokenStream.fill+  sN    jj$$ jj$$$$$$r   r!   )r   )NN) r   r	   r
   	__slots__r]   r   r   intr"   r%   r$   r+   r3   r1   r6   setrF   r/   rL   rH   r(   r'   rP   rS   rW   rY   rf   ri   rb   ro   rx   rr   r   r   r   r   r      s       @I 5        B  S      1 1 1 1 1" " " " "> > >4S    
c 
 
 
 
 c  3    3    )3 ) ) ) )
3    2      - - -
         3      s C    	9 	9 	9S 	9 	9 	9 	99 9s 9C 9 9 9 9C s C    0 0 0" "C "3 " " " ".    r   r   )
ior   antlr4.Tokenr   antlr4.error.Errorsr   r]   objectr   r   r   r   r   <module>r      s                 5 5 5 5 5 5 		 	 	 	 	& 	 	 	
Q Q Q Q Q+ Q Q Q Q Qr   