U
    :qLe1                     @   sh   d dl mZ d dlmZ d dlmZmZmZmZm	Z	m
Z
 dZG dd deZe e_G dd deZdS )	    )RuleContext)Token)ParseTreeListener	ParseTreeTerminalNodeImplErrorNodeImplTerminalNodeINVALID_INTERVALNc                       s   e Zd Zd-eed fddZedddZedd	d
ZedddZ	e
dddZdd ZedddZedddZd.eedddZd/ddZeedddZed d!d"Zeed#d$d%Zed&d'd(Zd)d* Zd+d, Z  ZS )0ParserRuleContextN)parentinvokingStateNumberc                    s*   t  || d | _d | _d | _d | _d S N)super__init__childrenstartstop	exception)selfr   r   	__class__ o/home/p21-0144/sympy/latex2sympy2solve-back-end/sympyEq/lib/python3.8/site-packages/antlr4/ParserRuleContext.pyr   &   s
    zParserRuleContext.__init__)ctxc                 C   sb   |j | _ |j| _d | _|j| _|j| _|jd k	r^g | _|jD ] }t|tr<| j| | |_ q<d S r   )	parentCtxZinvokingStater   r   r   
isinstancer   append)r   r   childr   r   r   copyFrom?   s    


zParserRuleContext.copyFrom)listenerc                 C   s   d S r   r   r   r   r   r   r   	enterRuleQ   s    zParserRuleContext.enterRulec                 C   s   d S r   r   r    r   r   r   exitRuleT   s    zParserRuleContext.exitRule)r   c                 C   s    | j d krg | _ | j | |S r   )r   r   )r   r   r   r   r   addChildX   s    
zParserRuleContext.addChildc                 C   s    | j d k	r| j t| j d = d S )N   r   lenr   r   r   r   removeLastChildb   s    
z!ParserRuleContext.removeLastChild)tokenc                 C   s   t |}| | | |_|S r   )r   r#   r   )r   r)   noder   r   r   addTokenNodef   s    
zParserRuleContext.addTokenNode)badTokenc                 C   s   t |}| | | |_|S r   )r   r#   r   )r   r,   r*   r   r   r   addErrorNodel   s    
zParserRuleContext.addErrorNode)ittypec                 C   s^   |d kr$t | j|kr | j| S d S |  D ](}t||s<q,|dkrL|  S |d8 }q,d S d S Nr   r$   )r&   r   getChildrenr   )r   r.   r/   r   r   r   r   getChildr   s    

zParserRuleContext.getChildc                 c   s2   | j d k	r.| j D ]}|d k	r&||s&q|V  qd S r   )r   )r   	predicater   r   r   r   r1   ~   s
    

zParserRuleContext.getChildren)r/   r.   c                 C   sD   |   D ]6}t|tsq|jj|kr&q|dkr6|  S |d8 }qd S r0   )r1   r   r   symboltype)r   r/   r.   r   r   r   r   getToken   s    

zParserRuleContext.getToken)r/   c                 C   sJ   |   d krg S g }|   D ](}t|ts,q|jj|kr:q|| q|S r   )r1   r   r   r4   r5   r   )r   r/   tokensr   r   r   r   	getTokens   s    
zParserRuleContext.getTokens)ctxTyper.   c                 C   s   |  ||S r   )r2   )r   r9   r.   r   r   r   getTypedRuleContext   s    z%ParserRuleContext.getTypedRuleContext)r9   c                 C   s<   |   }|d krg S g }|D ]}t||s,q|| q|S r   )r1   r   r   )r   r9   r   Zcontextsr   r   r   r   getTypedRuleContexts   s    
z&ParserRuleContext.getTypedRuleContextsc                 C   s   | j rt| j S dS )Nr   r%   r'   r   r   r   getChildCount   s    zParserRuleContext.getChildCountc                 C   s,   | j d ks| jd krtS | j j| jjfS d S r   )r   r   r	   
tokenIndexr'   r   r   r   getSourceInterval   s    z#ParserRuleContext.getSourceInterval)NN)N)N)__name__
__module____qualname__r
   intr   r   r   r!   r"   r   r#   r(   r   r+   r-   r5   r2   r1   r6   r8   r:   r;   r<   r>   __classcell__r   r   r   r   r
   $   s    

r
   c                       s&   e Zd Zeeed fddZ  ZS )InterpreterRuleContext)r   r   	ruleIndexc                    s   t  || || _d S r   )r   r   rE   )r   r   r   rE   r   r   r   r      s    zInterpreterRuleContext.__init__)r?   r@   rA   r
   rB   r   rC   r   r   r   r   rD      s   rD   )Zantlr4.RuleContextr   antlr4.Tokenr   antlr4.tree.Treer   r   r   r   r   r	   r
   ZEMPTYrD   r   r   r   r   <module>   s     