o
    ?ij                     @   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Zd-dedef fddZdefdd	Zd
efddZ	d
efddZ
defddZdd ZdefddZdefddZd.dedefddZd.ddZdedefd d!Zdefd"d#Zd$edefd%d&Zd$efd'd(Zd)d* Zd+d, Z  ZS )/ParserRuleContext)childrenstartstop	exceptionNparentinvokingStateNumberc                    s*   t  || d | _d | _d | _d | _d S N)super__init__r   r   r   r   )selfr   r   	__class__ U/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/antlr4/ParserRuleContext.pyr   &   s
   
zParserRuleContext.__init__ctxc                 C   sf   |j | _ |j| _d | _|j| _|j| _|jd ur/g | _|jD ]}t|tr.| j| | |_ qd S d S r   )	parentCtxinvokingStater   r   r   
isinstancer   append)r   r   childr   r   r   copyFrom?   s   


zParserRuleContext.copyFromlistenerc                 C      d S r   r   r   r    r   r   r   	enterRuleQ      zParserRuleContext.enterRulec                 C   r!   r   r   r"   r   r   r   exitRuleT   r$   zParserRuleContext.exitRuler   c                 C   s    | j d u rg | _ | j | |S r   )r   r   )r   r   r   r   r   addChildX   s   
zParserRuleContext.addChildc                 C   s$   | j d ur| j t| j d = d S d S )N   r   lenr   r   r   r   removeLastChildb   s   
z!ParserRuleContext.removeLastChildtokenc                 C      t |}| | | |_|S r   )r   r&   r   )r   r,   noder   r   r   addTokenNodef      
zParserRuleContext.addTokenNodebadTokenc                 C   r-   r   )r   r&   r   )r   r1   r.   r   r   r   addErrorNodel   r0   zParserRuleContext.addErrorNodeittypec                 C   sZ   |d u rt | j|kr| j| S d S |  D ]}t||sq|dkr&|  S |d8 }qd S Nr   r'   )r)   r   getChildrenr   )r   r3   r4   r   r   r   r   getChildr   s   

zParserRuleContext.getChildc                 c   s8    | j d ur| j D ]}|d ur||sq	|V  q	d S d S r   )r   )r   	predicater   r   r   r   r6   ~   s   

zParserRuleContext.getChildrenc                 C   sD   |   D ]}t|tsq|jj|krq|dkr|  S |d8 }qd S r5   )r6   r   r   symboltype)r   r4   r3   r   r   r   r   getToken   s   

zParserRuleContext.getTokenc                 C   sJ   |   d u rg S g }|   D ]}t|tsq|jj|krq|| q|S r   )r6   r   r   r9   r:   r   )r   r4   tokensr   r   r   r   	getTokens   s   
zParserRuleContext.getTokensctxTypec                 C   s   |  ||S r   )r7   )r   r>   r3   r   r   r   getTypedRuleContext   s   z%ParserRuleContext.getTypedRuleContextc                 C   s<   |   }|d u r
g S g }|D ]}t||sq|| q|S r   )r6   r   r   )r   r>   r   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 u s
| jd u rtS | j j| jjfS r   )r   r   r	   
tokenIndexr*   r   r   r   getSourceInterval   s   z#ParserRuleContext.getSourceInterval)NNr   )__name__
__module____qualname__	__slots__r
   intr   r   r   r#   r%   r   r&   r+   r   r/   r2   r:   r7   r6   r;   r=   r?   rA   rB   rD   __classcell__r   r   r   r   r
   $   s$    

r
   c                       s*   e Zd Zdededef fddZ  ZS )InterpreterRuleContextr   r   	ruleIndexc                    s   t  || || _d S r   )r   r   rL   )r   r   r   rL   r   r   r   r      s   
zInterpreterRuleContext.__init__)rE   rF   rG   r
   rI   r   rJ   r   r   r   r   rK      s    "rK   )antlr4.RuleContextr   antlr4.Tokenr   antlr4.tree.Treer   r   r   r   r   r	   r
   EMPTYrK   r   r   r   r   <module>   s     