
    Ng	                     n    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
d	S )
    )StringIO)DFA)str_list)DFAStatec                   F    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dS )DFASerializerdfaliteralNamessymbolicNamesNr
   r   r   c                 0    || _         || _        || _        d S Nr	   )selfr
   r   r   s       T/var/www/html/ai-engine/env/lib/python3.11/site-packages/antlr4/dfa/DFASerializer.py__init__zDFASerializer.__init__   s    (*    c                    | j         j        d S t                      5 }| j                                         D ]}d}|j        t          |j                  }t          d|          D ]}|j        |         }||j        dk    r|                    | 	                    |                     | 
                    |          }|                    d           |                    |           |                    d           |                    | 	                    |                     |                    d           ֐|                                }t          |          dk    r	 d d d            d S |cd d d            S # 1 swxY w Y   d S )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   8;4ZZ 	3X**,, ( (7&AGAq! 	( 	(A
A}*)D)D		$"5"5a"8"8999 $ 1 1! 4 4		#		%(((		$		$"5"5a"8"8999		$	( \\^^F6{{A~~#	 	 	 	 	 	 	 	& '	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   E
F4FF	Fr#   c                     |dk    rdS | 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    a445(QD4E0F0F-F-F$QqS))+3t7I3J3J0J0J%ac**qs88Or   r!   c                     |j         }|j        rdnddz   t          |          z   |j        rdndz   }|j        r;|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    M !7R3>QGSTShLpCCnpq? 	 |'#d*Xal-C-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                 L    t                                          |d            d S 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VV|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  3  3  3  3 F 3  3  3 j" " " " " " " " " "r   