U
    F[F                     @   s8   d dl mZ d dlmZ d dlmZ G dd deZdS )    )StringIO)ParseTreePattern)	ParseTreec                   @   sL   e Zd ZeeeedddZedddZedddZ	d	d
 Z
dd ZdS )ParseTreeMatch)treepatternlabelsmismatchedNodec                 C   sL   |d krt d|d kr t d|d kr0t d|| _|| _|| _|| _d S )Nztree cannot be nullzpattern cannot be nullzlabels cannot be null)	Exceptionr   r   r   r	   )selfr   r   r   r	    r   q/home/p21-0144/sympy/latex2sympy2solve-back-end/sympyEq/lib/python3.8/site-packages/antlr4/tree/ParseTreeMatch.py__init__!   s    zParseTreeMatch.__init__)labelc                 C   s:   | j |d }|d ks"t|dkr&d S |t|d  S d S )Nr      )r   getlen)r   r   Z
parseTreesr   r   r   r   =   s    zParseTreeMatch.getc                 C   s$   | j |d }|d krt S |S d S N)r   r   list)r   r   nodesr   r   r   getAll[   s    zParseTreeMatch.getAllc                 C   s
   | j d kS r   )r	   )r   r   r   r   	succeededi   s    zParseTreeMatch.succeededc              
   C   sn   t  ^}|d ||  r"dnd |d |tt| j |d | W  5 Q R  S Q R X d S )NzMatch r   failedz; found z labels)r   writer   strr   r   getvalue)r   bufr   r   r   __str__o   s    


zParseTreeMatch.__str__N)__name__
__module____qualname__r   r   dictr   r   r   r   r   r   r   r   r   r   r      s
   r   N)ior   Zantlr4.tree.ParseTreePatternr   Zantlr4.tree.Treer   objectr   r   r   r   r   <module>   s   