
    NgM                     >    d dl mZ d dlmZ dZ G d de          ZdS )    )StringIO)TokenNc                       e Zd ZdZd Zd Z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 Zd Zd ZdedefdZdededefdZdS )IntervalSet	intervalsreadonlyc                 "    d | _         d| _        d S )NFr   selfs    N/var/www/html/ai-engine/env/lib/python3.11/site-packages/antlr4/IntervalSet.py__init__zIntervalSet.__init__   s        c              #   B   K   | j         | j         D ]}|D ]}|V  d S d S N)r   )r   ics      r   __iter__zIntervalSet.__iter__   sP      >%^    AGGGG &% r   c                 F    d}| D ]}||k    r|c S |dz  }t           j        S Nr      )r   INVALID_TYPE)r   itemr   ks       r   __getitem__zIntervalSet.__getitem__   s<     	 	A$wwQ!!r   vc                 R    |                      t          ||dz                        d S Nr   )addRangerange)r   r   s     r   addOnezIntervalSet.addOne#   s&    eAqsmm$$$$$r   c                 n   | j         /t                      | _         | j                             |           d S d}| j         D ]}|j        |j        k     r| j                             ||            d S |j        |j        k    r%t          |j        |j                  | j         |<    d S |j        |j        k    r`t          t          |j        |j                  t          |j        |j                            | j         |<   | 	                    |            d S |dz  }| j                             |           d S r   )
r   listappendstopstartinsertr    minmaxreduce)r   r   r   r   s       r   r   zIntervalSet.addRange&   s   >!!VVDNN!!!$$$$$ A^  6!'>>N))!Q///FFVQW__(-agqv(>(>DN1%FFWaf__(-c!'!'.B.BCqvDVDV(W(WDN1%KKNNNFFQN!!!$$$$$r   otherc                 R    |j         |j         D ]}|                     |           | S r   )r   r   )r   r+   r   s      r   addSetzIntervalSet.addSet?   s5    ?&_ ! !a    r   r   c                    |t          | j                  dz
  k     r| j        |         }| j        |dz            }|j        |j        k    r4| j                            |dz              |                     |           d S |j        |j        k    rCt          |j        |j                  | j        |<   | j                            |dz              d S d S d S r   )lenr   r%   popr*   r&   r    )r   r   lrs       r   r*   zIntervalSet.reduceE   s    S  """q!Aqs#Av""1Q3'''A17""$)!'16$:$:q!""1Q3''''' #" #"r   c                     t                      }|                    t          ||dz                        | j        D ]}|                    |           |S r   )r   r   r    r   removeRange)r   r&   r%   resultr   s        r   
complementzIntervalSet.complementR   sX    eDF++,,, 	" 	"Aq!!!!r   c                 V    | j         dS t          fd| j         D                       S )NFc              3       K   | ]}|v V  	d S r    ).0r   r   s     r   	<genexpr>z+IntervalSet.__contains__.<locals>.<genexpr>]   s'      99Qtqy999999r   )r   any)r   r   s    `r   __contains__zIntervalSet.__contains__Y   s5    >!59999$.999999r   c                 >    t          d | j        D                       S )Nc              3   4   K   | ]}t          |          V  d S r   )r/   )r:   r   s     r   r;   z&IntervalSet.__len__.<locals>.<genexpr>`   s(      22a3q66222222r   )sumr   r   s    r   __len__zIntervalSet.__len___   s!    224>222222r   c                    |j         |j        dz
  k    r|                     |j                    d S | j        Ed}| j        D ]<}|j        |j         k    r d S |j         |j         k    rj|j        |j        k     rZt	          |j         |j                   | j        |<   t	          |j        |j                  }| j                            ||            d S |j         |j         k    r0|j        |j        k    r | j                            |           |dz  }ne|j         |j        k     r#t	          |j         |j                   | j        |<   n2|j        |j        k     r"t	          |j        |j                  | j        |<   |dz  }<d S d S )Nr   r   )r&   r%   	removeOner   r    r'   r0   r   r   r   r   xs        r   r4   zIntervalSet.removeRangeb   sp   7AF1HNN17#####^'A^  617??FFWQW__(-agqw(?(?DN1%afaf--AN))!Q///FFWag%%!&!&..N&&q)))FAAWQV^^(-agqw(?(?DN1%%VAF]](-afaf(=(=DN1%Q- (' r   c                 \   | j         !d}| j         D ]}||j        k     r d S ||j        k    r+||j        dz
  k    r| j                             |            d S ||j        k    r(t	          |j        dz   |j                  | j         |<    d S ||j        dz
  k    r(t	          |j        |j        dz
            | j         |<    d S ||j        dz
  k     rSt	          |j        |          }t	          |dz   |j                  | j         |<   | j                             ||            d S |dz  }d S d S r   )r   r&   r%   r0   r    r'   rD   s        r   rC   zIntervalSet.removeOne}   sD   >%A^  QW99FFZZAqvaxKKN&&q)))FFZZ(-agai(@(@DN1%FFq[[(-agqvax(@(@DN1%FFqvaxZZagq))A(-a!eQV(<(<DN1%N))!Q///FFQ1 &% r   literalNamessymbolicNamesc           
         | j         dS t                      5 }t          |           dk    r|                    d           d}| j         D ]J}|D ]E}|s|                    d           |                    |                     |||                     d}FKt          |           dk    r|                    d           |                                cd d d            S # 1 swxY w Y   d S )Nz{}r   {Tz, F})r   r   r/   writeelementNamegetvalue)r   rG   rH   buffirstr   js          r   toStringzIntervalSet.toString   s/   >!4ZZ 	"34yy{{		#E^ " " " "A  (		$IId..|]ANNOOO!EE	"
 4yy{{		#<<>>	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s   B8CC!$C!ac                     |t           j        k    rdS |t           j        k    rdS |t          |          k     r||         dk    r||         S |t          |          k     r||         S dS )Nz<EOF>z	<EPSILON>z	<INVALID>z	<UNKNOWN>)r   EOFEPSILONr/   )r   rG   rH   rS   s       r   rM   zIntervalSet.elementName   sr    ei<<7;\""""|A+'E'E#A&]####$Q'';r   N)__name__
__module____qualname__	__slots__r   r   r   intr!   r    r   r   r-   r*   r6   r=   rA   r4   rC   r#   rR   rM   r9   r   r   r   r      sH       )I    " " "%s % % % %% % % % %2;    (s ( ( ( (  : : :3 3 3  6  8"D " " " " ""
t 
4 
3 
 
 
 
 
 
r   r   )ior   antlr4.Tokenr   r   objectr9   r   r   <module>r_      sp                g g g g g& g g g g gr   