a
    њhc                     @   sN   d dgZ ddlmZ ddlT ddlT ddlT G dd deZG dd  d ZdS )ParserParserError   )MarkedYAMLError)*c                   @   s   e Zd ZdS )r   N)__name__
__module____qualname__ r	   r	   F/wd/webapps/venvs/v2025_4um/lib/python3.9/site-packages/yaml/parser.pyr   E   s   c                   @   s  e Zd ZdddZdd Zdd Zdd	 Zd
d Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd ZdDd!d"Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 ZdEd1d2Zd3d4 Zd5d6 Zd7d8 Zd9d: ZdFd;d<Zd=d> Z d?d@ Z!dAdB Z"dCS )Gr   !ztag:yaml.org,2002:)r   z!!c                 C   s*   d | _ d | _i | _g | _g | _| j| _d S N)current_eventyaml_versiontag_handlesstatesmarksparse_stream_startstateselfr	   r	   r
   __init__Q   s    zParser.__init__c                 C   s   g | _ d | _d S r   )r   r   r   r	   r	   r
   disposeY   s    zParser.disposec                 G   sL   | j d u r| jr|  | _ | j d urH|s,dS |D ]}t| j |r0 dS q0dS )NTF)r   r   
isinstance)r   choiceschoicer	   r	   r
   check_event^   s    


zParser.check_eventc                 C   s    | j d u r| jr|  | _ | j S r   r   r   r   r	   r	   r
   
peek_eventk   s    

zParser.peek_eventc                 C   s*   | j d u r| jr|  | _ | j }d | _ |S r   r   )r   valuer	   r	   r
   	get_eventr   s    

zParser.get_eventc                 C   s(   |   }t|j|j|jd}| j| _|S )N)encoding)	get_tokenZStreamStartEvent
start_markend_markr    parse_implicit_document_startr   r   tokeneventr	   r	   r
   r      s    
zParser.parse_stream_startc                 C   s\   |  tttsP| j| _|  }|j }}t||dd}| j	
| j | j| _|S |  S d S )NFexplicit)check_tokenDirectiveTokenDocumentStartTokenStreamEndTokenDEFAULT_TAGSr   
peek_tokenr"   DocumentStartEventr   appendparse_document_endparse_block_noder   parse_document_start)r   r&   r"   r#   r'   r	   r	   r
   r$      s    
z$Parser.parse_implicit_document_startc                 C   s   |  tr|   q |  ts|  }|j}|  \}}|  ts`td d d|  j	 |  j|  }|j
}t||d||d}| j| j | j| _n0|  }t|j|j
}| jrJ | jrJ d | _|S )Nz)expected '<document start>', but found %rT)r)   versiontags)r*   DocumentEndTokenr!   r-   r/   r"   process_directivesr,   r   idr#   r0   r   r1   r2   parse_document_contentr   ZStreamEndEventr   )r   r&   r"   r5   r6   r#   r'   r	   r	   r
   r4      s4    






zParser.parse_document_startc                 C   sL   |   }|j }}d}| tr2|  }|j}d}t|||d}| j| _|S )NFTr(   )	r/   r"   r*   r7   r!   r#   ZDocumentEndEventr4   r   )r   r&   r"   r#   r)   r'   r	   r	   r
   r2      s    

zParser.parse_document_endc                 C   s<   |  ttttr0| |  j}| j	 | _
|S |  S d S r   )r*   r+   r,   r7   r-   process_empty_scalarr/   r"   r   popr   r3   )r   r'   r	   r	   r
   r:      s    zParser.parse_document_contentc                 C   s   d | _ i | _| tr|  }|jdkrn| j d urBtd d d|j|j\}}|dkrdtd d d|j|j| _ q|jdkr|j\}}|| jv rtd d d| |j|| j|< q| jr| j | j	 f}n
| j d f}| j
D ]}|| jvr| j
| | j|< q|S )NYAMLzfound duplicate YAML directiver   z:found incompatible YAML document (version 1.* is required)ZTAGzduplicate tag handle %r)r   r   r*   r+   r!   namer   r"   r   copyr.   )r   r&   majorminorhandleprefixr   keyr	   r	   r
   r8      s>    










zParser.process_directivesc                 C   s   | j ddS )NT)block
parse_noder   r	   r	   r
   r3     s    zParser.parse_block_nodec                 C   s   |   S r   rF   r   r	   r	   r
   parse_flow_node  s    zParser.parse_flow_nodec                 C   s   | j dddS )NT)rE   indentless_sequencerF   r   r	   r	   r
   'parse_block_node_or_indentless_sequence  s    z.Parser.parse_block_node_or_indentless_sequenceFc              	   C   sR  |  tr4|  }t|j|j|j}| j | _	nd }d }d  } }}	|  t
r|  }|j}|j}|j}|  tr|  }|j}	|j}|j}nF|  tr|  }|j }}	|j}|j}|  t
r|  }|j}|j}|d ur&|\}
}|
d ur"|
| jvrtd|d|
 |	| j|
 | }n|}|d u r>|  j }}d }|d u pR|dk}|r|  tr|  j}t|||||}| j| _	n|  tr|  }|j}|jr|d u s|dkrd}n|d u rd}nd}t||||j|||jd}| j | _	nH|  tr<|  j}t|||||dd	}| j| _	n|  trp|  j}t|||||dd	}| j| _	n|r|  tr|  j}t|||||d
d	}| j| _	n|r|  tr|  j}t|||||d
d	}| j| _	nj|d us|d urt|||d
fd||}| j | _	n2|r(d}nd}|  }td| |d|j |j|S )Nzwhile parsing a nodezfound undefined tag handle %rr   TF)FT)FF)styleTZ
flow_styleF rE   Zflowzwhile parsing a %s nodez'expected the node content, but found %r) r*   Z
AliasTokenr!   Z
AliasEventr   r"   r#   r   r<   r   ZAnchorTokenZTagTokenr   r   r/   BlockEntryTokenZSequenceStartEventparse_indentless_sequence_entryZScalarTokenplainScalarEventrL   ZFlowSequenceStartTokenparse_flow_sequence_first_entryZFlowMappingStartTokenMappingStartEventparse_flow_mapping_first_keyZBlockSequenceStartToken parse_block_sequence_first_entryZBlockMappingStartTokenparse_block_mapping_first_keyr9   )r   rE   rI   r&   r'   anchortagr"   r#   Ztag_markrB   suffixZimplicitnoder	   r	   r
   rG     s    


















zParser.parse_nodec                 C   s   |   }| j|j |  S r   )r!   r   r1   r"   parse_block_sequence_entryr   r&   r	   r	   r
   rV   x  s    z'Parser.parse_block_sequence_first_entryc                 C   s   |  trH|  }|  tts4| j| j |  S | j| _| 	|j
S |  tsv|  }td| jd d|j |j|  }t|j|j
}| j | _| j  |S )Nz while parsing a block collection"expected <block end>, but found %r)r*   rO   r!   BlockEndTokenr   r1   r\   r3   r   r;   r#   r/   r   r   r9   r"   SequenceEndEventr<   r%   r	   r	   r
   r\   }  s"    


z!Parser.parse_block_sequence_entryc                 C   sr   |  trL|  }|  tttts8| j| j | 	 S | j| _
| |jS |  }t|j|j}| j | _
|S r   )r*   rO   r!   KeyToken
ValueTokenr`   r   r1   rP   r3   r   r;   r#   r/   ra   r"   r<   r%   r	   r	   r
   rP     s    
z&Parser.parse_indentless_sequence_entryc                 C   s   |   }| j|j |  S r   )r!   r   r1   r"   parse_block_mapping_keyr]   r	   r	   r
   rW     s    z$Parser.parse_block_mapping_first_keyc                 C   s   |  trJ|  }|  ttts6| j| j |  S | j| _	| 
|jS |  tsx|  }td| jd d|j |j|  }t|j|j}| j | _	| j  |S )Nzwhile parsing a block mappingr^   r_   )r*   rb   r!   rc   r`   r   r1   parse_block_mapping_valuerJ   r   r;   r#   r/   r   r   r9   r"   MappingEndEventr<   r%   r	   r	   r
   rd     s"    


zParser.parse_block_mapping_keyc                 C   sl   |  trL|  }|  ttts6| j| j |  S | j| _	| 
|jS n| j| _	|  }| 
|jS d S r   )r*   rc   r!   rb   r`   r   r1   rd   rJ   r   r;   r#   r/   r"   r]   r	   r	   r
   re     s    
z Parser.parse_block_mapping_valuec                 C   s"   |   }| j|j | jddS NT)first)r!   r   r1   r"   parse_flow_sequence_entryr]   r	   r	   r
   rS     s    z&Parser.parse_flow_sequence_first_entryc                 C   s   |  ts|sF|  tr"|   n$|  }td| jd d|j |j|  t	r||  }t
d d d|j|jdd}| j| _|S |  ts| j| j |  S |  }t|j|j}| j | _| j  |S )Nzwhile parsing a flow sequencer^   zexpected ',' or ']', but got %rTrM   )r*   FlowSequenceEndTokenFlowEntryTokenr!   r/   r   r   r9   r"   rb   rT   r#   %parse_flow_sequence_entry_mapping_keyr   r   r1   ri   rH   ra   r<   r   rh   r&   r'   r	   r	   r
   ri     s0    





z Parser.parse_flow_sequence_entryc                 C   sD   |   }| ttts,| j| j |  S | j| _	| 
|jS d S r   )r!   r*   rc   rk   rj   r   r1   'parse_flow_sequence_entry_mapping_valuerH   r   r;   r#   r]   r	   r	   r
   rl     s    z,Parser.parse_flow_sequence_entry_mapping_keyc                 C   sj   |  trJ|  }|  tts4| j| j |  S | j| _	| 
|jS n| j| _	|  }| 
|jS d S r   )r*   rc   r!   rk   rj   r   r1   %parse_flow_sequence_entry_mapping_endrH   r   r;   r#   r/   r"   r]   r	   r	   r
   rn      s    
z.Parser.parse_flow_sequence_entry_mapping_valuec                 C   s   | j | _|  }t|j|jS r   )ri   r   r/   rf   r"   r]   r	   r	   r
   ro     s    z,Parser.parse_flow_sequence_entry_mapping_endc                 C   s"   |   }| j|j | jddS rg   )r!   r   r1   r"   parse_flow_mapping_keyr]   r	   r	   r
   rU     s    z#Parser.parse_flow_mapping_first_keyc                 C   s   |  ts|sF|  tr"|   n$|  }td| jd d|j |j|  t	r|  }|  t
tts|| j| j |  S | j| _| |jS n |  ts| j| j |  S |  }t|j|j}| j | _| j  |S )Nzwhile parsing a flow mappingr^   zexpected ',' or '}', but got %r)r*   FlowMappingEndTokenrk   r!   r/   r   r   r9   r"   rb   rc   r   r1   parse_flow_mapping_valuerH   r   r;   r#   parse_flow_mapping_empty_valuerf   r<   rm   r	   r	   r
   rp     s2    





zParser.parse_flow_mapping_keyc                 C   sj   |  trJ|  }|  tts4| j| j |  S | j| _	| 
|jS n| j| _	|  }| 
|jS d S r   )r*   rc   r!   rk   rq   r   r1   rp   rH   r   r;   r#   r/   r"   r]   r	   r	   r
   rr   9  s    
zParser.parse_flow_mapping_valuec                 C   s   | j | _| |  jS r   )rp   r   r;   r/   r"   r   r	   r	   r
   rs   G  s    z%Parser.parse_flow_mapping_empty_valuec                 C   s   t d d dd||S )NrK   rN   )rR   )r   markr	   r	   r
   r;   K  s    zParser.process_empty_scalarN)FF)F)F)#r   r   r   r.   r   r   r   r   r   r   r$   r4   r2   r:   r8   r3   rH   rJ   rG   rV   r\   rP   rW   rd   re   rS   ri   rl   rn   ro   rU   rp   rr   rs   r;   r	   r	   r	   r
   r   H   sD   	/
g


N)__all__errorr   tokenseventsscannerr   r   r	   r	   r	   r
   <module>>   s   