
    khM                     6    d dl mZ d dlmZ dZ G d de      Zy)    )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y)IntervalSet	intervalsreadonlyc                      d | _         d| _        y )NFr   selfs    N/var/www/teggl/fontify/venv/lib/python3.12/site-packages/antlr4/IntervalSet.py__init__zIntervalSet.__init__   s        c              #   ^   K   | j                   | j                   D ]  }|D ]  }|   y y wN)r   )r   ics      r   __iter__zIntervalSet.__iter__   s<     >>%^^  AG &s   +-c                 P    d}| D ]  }||k(  r|c S |dz  } t         j                  S Nr      )r   INVALID_TYPE)r   itemr   ks       r   __getitem__zIntervalSet.__getitem__   s9     	A$wQ		
 !!!r   vc                 @    | j                  t        ||dz                y Nr   )addRangerange)r   r   s     r   addOnezIntervalSet.addOne#   s    eAqsm$r   c                    | j                   +t               | _         | j                   j                  |       y d}| j                   D ]  }|j                  |j                  k  r| j                   j                  ||        y |j                  |j                  k(  r/t        |j                  |j                        | j                   |<    y |j                  |j                  k  rht        t        |j                  |j                        t        |j                  |j                              | j                   |<   | j                  |        y |dz  } | j                   j                  |       y r   )
r   listappendstopstartinsertr    minmaxreduce)r   r   r   r   s       r   r   zIntervalSet.addRange&   s   >>!!VDNNN!!!$ A^^ 66!''>NN))!Q/VVQWW_(-aggqvv(>DNN1%WWaff_(-c!''!''.BCqvvDV(WDNN1%KKNQ  NN!!!$r   otherc                 b    |j                   "|j                   D ]  }| j                  |        | S r   )r   r   )r   r+   r   s      r   addSetzIntervalSet.addSet?   s0    ??&__ !a !r   r   c                    |t        | j                        dz
  k  r| j                  |   }| j                  |dz      }|j                  |j                  k\  r0| j                  j                  |dz          | j	                  |       y |j                  |j
                  k\  rLt        |j
                  |j                        | j                  |<   | j                  j                  |dz          y y y r   )lenr   r%   popr*   r&   r    )r   r   lrs       r   r*   zIntervalSet.reduceE   s    S ""q!Aqs#Avv""1Q3'A177"$)!''166$:q!""1Q3' # #r   c                     t               }|j                  t        ||dz                | j                  D ]  }|j	                  |        |S r   )r   r   r    r   removeRange)r   r&   r%   resultr   s        r   
complementzIntervalSet.complementR   sF    eDF+, 	"Aq!	"r   c                 Z    | j                   yt        fd| j                   D              S )NFc              3   &   K   | ]  }|v  
 y wr    ).0r   r   s     r   	<genexpr>z+IntervalSet.__contains__.<locals>.<genexpr>]   s     9Qtqy9s   )r   any)r   r   s    `r   __contains__zIntervalSet.__contains__Y   s%    >>!9$..999r   c                 :    t        d | j                  D              S )Nc              3   2   K   | ]  }t        |        y wr   )r/   )r:   r   s     r   r;   z&IntervalSet.__len__.<locals>.<genexpr>`   s     2a3q62s   )sumr   r   s    r   __len__zIntervalSet.__len___   s    24>>222r   c                    |j                   |j                  dz
  k(  r| j                  |j                          y | j                  d}| j                  D ]  }|j                  |j                   k  r y |j                   |j                   kD  r|j                  |j                  k  rkt	        |j                   |j                         | j                  |<   t	        |j                  |j                        }| j                  j                  ||        y |j                   |j                   k  r:|j                  |j                  k\  r!| j                  j                  |       |dz  }n|j                   |j                  k  r.t	        |j                   |j                         | j                  |<   nF|j                  |j                  k  r-t	        |j                  |j                        | j                  |<   |dz  } y y )Nr   r   )r&   r%   	removeOner   r    r'   r0   r   r   r   r   xs        r   r4   zIntervalSet.removeRangeb   s^   77AFF1HNN177#^^'A^^ 66177?WWQWW_(-aggqww(?DNN1%affaff-ANN))!Q/WWagg%!&&!&&.NN&&q)FAWWQVV^(-aggqww(?DNN1%VVAFF](-affaff(=DNN1%Q) (r   c                    | j                   [d}| j                   D ]H  }||j                  k  r y ||j                  k(  r/||j                  dz
  k(  r| j                   j                  |        y ||j                  k(  r2t	        |j                  dz   |j                        | j                   |<    y ||j                  dz
  k(  r2t	        |j                  |j                  dz
        | j                   |<    y ||j                  dz
  k  rZt	        |j                  |      }t	        |dz   |j                        | j                   |<   | j                   j                  ||        y |dz  }K y y r   )r   r&   r%   r0   r    r'   rD   s        r   rC   zIntervalSet.removeOne}   s#   >>%A^^ QWW9ZAqvvaxKNN&&q)Z(-aggai(@DNN1%q[(-aggqvvax(@DNN1%qvvaxZaggq)A(-a!eQVV(<DNN1%NN))!Q/Q- &r   literalNamessymbolicNamesc           
         | j                   yt               5 }t        |       dkD  r|j                  d       d}| j                   D ]@  }|D ]9  }|s|j                  d       |j                  | j	                  |||             d}; B t        |       dkD  r|j                  d       |j                         cd d d        S # 1 sw Y   y xY w)Nz{}r   {Tz, F})r   r   r/   writeelementNamegetvalue)r   rG   rH   buffirstr   js          r   toStringzIntervalSet.toString   s    >>!Z 	"34y{		#E^^ " "A 		$IId..|]ANO!E	"" 4y{		#<<>	" 	" 	"s   BCC
ac                     |t         j                  k(  ry|t         j                  k(  ry|t        |      k  r||   dk7  r||   S |t        |      k  r||   S y)Nz<EOF>z	<EPSILON>z	<INVALID>z	<UNKNOWN>)r   EOFEPSILONr/   )r   rG   rH   rS   s       r   rM   zIntervalSet.elementName   s\    eii<\""|A+'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      s    )I"%s %% %2; (s (:368"D " ""
t 
4 
3 
r   r   )ior   antlr4.Tokenr   r   objectr9   r   r   <module>r_      s"      g& gr   