
    kh	                     `    d dl mZ d dlmZ d dlmZ d dlmZ  G d de      Z	 G d de	      Z
y	)
    )StringIO)DFA)str_list)DFAStatec                   D    e Zd ZdZddededefdZd Zdefd	Z	d
e
fdZy)DFASerializerdfaliteralNamessymbolicNamesNr
   r   r   c                 .    || _         || _        || _        y Nr	   )selfr
   r   r   s       T/var/www/teggl/fontify/venv/lib/python3.12/site-packages/antlr4/dfa/DFASerializer.py__init__zDFASerializer.__init__   s    (*    c                    | j                   j                  y t               5 }| j                   j                         D ]  }d}|j                  t        |j                        }t        d|      D ]  }|j                  |   }||j                  dk7  s%|j                  | j                  |             | j                  |      }|j                  d       |j                  |       |j                  d       |j                  | j                  |             |j                  d         |j                         }t        |      dk(  r
	 d d d        y |cd d d        S # 1 sw Y   y xY w)Nr   i-z->
)r
   s0r   sortedStatesedgeslenrangestateNumberwritegetStateStringgetEdgeLabelgetvalue)r   bufsnitlabeloutputs           r   __str__zDFASerializer.__str__   s.   88;;Z 	3XX**, (77&AGGAq! 	(A
A}*)D		$"5"5a"89 $ 1 1! 4		#		%(		$		$"5"5a"89		$	(	( \\^F6{A~#	 	& '	 	 	s   A!E E B8E E  E)r#   c                    |dk(  ry| j                   *|t        | j                         k  r| j                   |dz
     S | j                  *|t        | j                        k  r| j                  |dz
     S t        |dz
        S )Nr   EOF   )r   r   r   strr   r#   s     r   r   zDFASerializer.getEdgeLabel.   s    a4(QD4E4E0F-F$$QqS))+3t7I7I3J0J%%ac**qs8Or   r!   c                    |j                   }|j                  rdnddz   t        |      z   |j                  rdndz   }|j                  rB|j                  |dz   t        |j                        z   S |dz   t        |j                        z   S |S )N: r!   ^z=>)r   isAcceptStater+   requiresFullContext
predicatesr   
prediction)r   r!   r"   baseStateStrs       r   r   zDFASerializer.getStateString8   s    MM !R3>QGSTShShCnpq??||'#d*Xall-CCC#d*S->>>r   )NN)__name__
__module____qualname__	__slots__r   listr   r'   intr   r   r    r   r   r   r      s>    8I+3 +T +d +
0S 	 x 	 r   r   c                   0     e Zd Zdef fdZdefdZ xZS )LexerDFASerializerr
   c                 &    t         |   |d        y r   )superr   )r   r
   	__class__s     r   r   zLexerDFASerializer.__init__E   s    d#r   r#   c                 $    dt        |      z   dz   S )N')chrr,   s     r   r   zLexerDFASerializer.getEdgeLabelH   s    SV|c!!r   )r6   r7   r8   r   r   r;   r   __classcell__)rA   s   @r   r>   r>   C   s    $3 $"S "r   r>   N)ior   antlr4r   antlr4.Utilsr   antlr4.dfa.DFAStater   objectr   r>   r<   r   r   <module>rK      s,      ! (3 F 3 j" "r   