a
    Lg                     @   s<   d dl Z d dlmZmZmZ G dd dZG dd dZdS )    N)ListOptionalTypeVarc                   @   s   e Zd ZddddZdS )QAPISchemaPragmaNreturnc                 C   s"   d| _ g | _g | _g | _g | _d S )NF)Zdoc_requiredZcommand_name_exceptionscommand_returns_exceptionsZdocumentation_exceptionsZmember_name_exceptionsself r   >/home2/Puru_Virtio_Blk/virtio-demo/qemu/scripts/qapi/source.py__init__   s
    zQAPISchemaPragma.__init__)__name__
__module____qualname__r   r   r   r   r   r      s   r   c                   @   s   e Zd Zedd dZeed  dddZeedddd	Zeed
ddZ	edddZ
edddZedddZedddZdS )QAPISourceInfoT)bound)fnameparentc                 C   s4   || _ d| _|| _|r|jnt | _d | _d | _d S N   )r   liner   pragmar   	defn_meta	defn_name)r
   r   r   r   r   r   r   $   s    zQAPISourceInfo.__init__N)metanamer   c                 C   s   || _ || _d S N)r   r   )r
   r   r   r   r   r   set_defn.   s    zQAPISourceInfo.set_defn)r
   r   c                 C   s   t  | }| jd7  _|S r   )copyr   )r
   infor   r   r   	next_line2   s    
zQAPISourceInfo.next_liner   c                 C   s   | j  d| j S )N:)r   r   r	   r   r   r   loc7   s    zQAPISourceInfo.locc                 C   s   | j rd| j| j| j f S dS )Nz%s: In %s '%s':
 )r   r   r   r	   r   r   r   in_defn:   s
    zQAPISourceInfo.in_defnc                 C   s*   d}| j }|r&d|  | }|j }q
|S )Nr%   zIn file included from %s:
)r   r$   )r
   retr   r   r   r   include_path@   s    zQAPISourceInfo.include_pathc                 C   s   |   |   |   S r   )r(   r&   r$   r	   r   r   r   __str__H   s    zQAPISourceInfo.__str__)r   r   r   r   r   strr   r   r   r"   r$   r&   r(   r)   r   r   r   r   r   !   s   
r   )r    typingr   r   r   r   r   r   r   r   r   <module>   s   