o
    wi                     @   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                   @   sV   e Zd ZdZdedededefddZdefd	d
Z	defddZ
dd Zdd ZdS )ParseTreeMatch)treepatternlabelsmismatchedNoder   r   r   r	   c                 C   sL   |d u rt d|d u rt d|d u rt 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   W/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/antlr4/tree/ParseTreeMatch.py__init__!   s   
zParseTreeMatch.__init__labelc                 C   s6   | j |d }|d u st|dkrd S |t|d  S )Nr      )r   getlen)r   r   
parseTreesr   r   r   r   =   s   zParseTreeMatch.getc                 C   s    | j |d }|d u rt S |S N)r   r   list)r   r   nodesr   r   r   getAll[   s   zParseTreeMatch.getAllc                 C   s
   | j d u S r   )r	   )r   r   r   r   	succeededi   s   
zParseTreeMatch.succeededc                 C   sz   t  0}|d ||  rdnd |d |tt| j |d | W  d    S 1 s6w   Y  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__	__slots__r   r   dictr   r   r   r   r   r   r   r   r   r   r      s    r   N)ior   antlr4.tree.ParseTreePatternr   antlr4.tree.Treer   objectr   r   r   r   r   <module>   s   
