
    ՗	fc                     `    d dgZ ddlmZ ddl ddl ddl  G d de      Z G d d       Zy)ParserParserError   )MarkedYAMLError)*c                       e Zd Zy)r   N)__name__
__module____qualname__     -/usr/lib/python3/dist-packages/yaml/parser.pyr   r   E   s    r   c                       e Zd ZdddZd Zd Zd Zd Zd Zd	 Z	d
 Z
d Zd Zd Zd Zd Zd Zd Zd$dZd Zd Zd Zd Zd Zd Zd Zd%dZd Zd Zd Zd Zd%dZd  Z d! Z!d" Z"y#)&r   !ztag:yaml.org,2002:)r   z!!c                 l    d | _         d | _        i | _        g | _        g | _        | j
                  | _        y N)current_eventyaml_versiontag_handlesstatesmarksparse_stream_startstateselfs    r   __init__zParser.__init__Q   s5    ! 
,,
r   c                      g | _         d | _        y r   )r   r   r   s    r   disposezParser.disposeY   s    
r   c                     | j                   !| j                  r| j                         | _         | j                   "|sy|D ]  }t        | j                   |      s y y)NTF)r   r   
isinstance)r   choiceschoices      r   check_eventzParser.check_event^   s\    %zz%)ZZ\")!  d00&9  r   c                 t    | j                   !| j                  r| j                         | _         | j                   S r   r   r   r   s    r   
peek_eventzParser.peek_eventk   s/    %zz%)ZZ\"!!!r   c                     | j                   !| j                  r| j                         | _         | j                   }d | _         |S r   r$   )r   values     r   	get_eventzParser.get_eventr   s;    %zz%)ZZ\"""!r   c                     | j                         }t        |j                  |j                  |j                        }| j
                  | _        |S )N)encoding)	get_tokenStreamStartEvent
start_markend_markr*   parse_implicit_document_startr   r   tokenevents      r   r   zParser.parse_stream_start   sC       !1!15>>) 77
r   c                 J   | j                  t        t        t              su| j                  | _        | j                         }|j                  x}}t        ||d      }| j                  j                  | j                         | j                  | _        |S | j                         S )NFexplicit)check_tokenDirectiveTokenDocumentStartTokenStreamEndTokenDEFAULT_TAGSr   
peek_tokenr-   DocumentStartEventr   appendparse_document_endparse_block_noder   parse_document_start)r   r1   r-   r.   r2   s        r   r/   z$Parser.parse_implicit_document_start   s     0B #00DOO%E$)$4$44J&z8"$E KKt667..DJL ,,..r   c                    | j                  t              r&| j                          | j                  t              r&| j                  t              s| j	                         }|j
                  }| j                         \  }}| j                  t              sAt        d d d| j	                         j                  z  | j	                         j
                        | j                         }|j                  }t        ||d||      }| j                  j                  | j                         | j                  | _        |S | j                         }t#        |j
                  |j                        }| j                  rJ | j$                  rJ d | _        |S )Nz)expected '<document start>', but found %rT)r5   versiontags)r6   DocumentEndTokenr+   r9   r;   r-   process_directivesr8   r   idr.   r<   r   r=   r>   parse_document_contentr   StreamEndEventr   )r   r1   r-   rB   rC   r.   r2   s          r   r@   zParser.parse_document_start   sO    /0NN /0 /OO%E))J 335MGT##$67!$C//+../)446 6 NN$E~~H&z8!7?EKKt66744DJ  NN$E"5#3#3U^^DE{{"?zz!>DJr   c                     | j                         }|j                  x}}d}| j                  t              r| j	                         }|j
                  }d}t        |||      }| j                  | _        |S )NFTr4   )	r;   r-   r6   rD   r+   r.   DocumentEndEventr@   r   )r   r1   r-   r.   r5   r2   s         r   r>   zParser.parse_document_end   ss     ! % 0 00
X,-NN$E~~HH X!# ..
r   c                     | j                  t        t        t        t              rJ| j                  | j                         j                        }| j                  j                         | _
        |S | j                         S r   )r6   r7   r8   rD   r9   process_empty_scalarr;   r-   r   popr   r?   )r   r2   s     r   rG   zParser.parse_document_content   s^    N"$4nF--doo.?.J.JKE*DJL((**r   c                     d | _         i | _        | j                  t              r| j	                         }|j
                  dk(  rb| j                   t        d d d|j                        |j                  \  }}|dk7  rt        d d d|j                        |j                  | _         nV|j
                  dk(  rG|j                  \  }}|| j                  v rt        d d d|z  |j                        || j                  |<   | j                  t              r| j                  r'| j                   | j                  j                         f}n| j                   d f}| j                  D ]-  }|| j                  vs| j                  |   | j                  |<   / |S )NYAMLzfound duplicate YAML directiver   z:found incompatible YAML document (version 1.* is required)TAGzduplicate tag handle %r)r   r   r6   r7   r+   namer   r-   r'   copyr:   )r   r1   majorminorhandleprefixr'   keys           r   rE   zParser.process_directives   s    ~.NN$EzzV#$$0%dD<e>N>NP P${{uA:%dDX!,,. . %*KK!u$!&T---%dD5>!,,. . ,2  (% ~.& %%t'7'7'<'<'>>E%%t+E$$ 	?C$***(,(9(9#(>  %	? r   c                 &    | j                  d      S )NT)block
parse_noder   s    r   r?   zParser.parse_block_node  s    T**r   c                 "    | j                         S r   rZ   r   s    r   parse_flow_nodezParser.parse_flow_node  s      r   c                 (    | j                  dd      S )NT)rY   indentless_sequencerZ   r   s    r   'parse_block_node_or_indentless_sequencez.Parser.parse_block_node_or_indentless_sequence  s    TtDDr   c           	      Z	   | j                  t              r\| j                         }t        |j                  |j
                  |j                        }| j                  j                         | _	        |S d }d }d x}x}}	| j                  t              r~| j                         }|j
                  }|j                  }|j                  }| j                  t              r| j                         }|j
                  }	|j                  }|j                  }n| j                  t              rs| j                         }|j
                  x}}	|j                  }|j                  }| j                  t              r(| j                         }|j                  }|j                  }|;|\  }
}|
2|
| j                  vrt        d|d|
z  |	      | j                  |
   |z   }n|}|| j                         j
                  x}}d }|d u xs |dk(  }|rQ| j                  t              r<| j                         j                  }t!        |||||      }| j"                  | _	        |S | j                  t$              r| j                         }|j                  }|j&                  r||dk(  rd}n|d}nd}t)        ||||j                  |||j*                        }| j                  j                         | _	        |S | j                  t,              r>| j                         j                  }t!        |||||d	      }| j.                  | _	        |S | j                  t0              r>| j                         j                  }t3        |||||d	      }| j4                  | _	        |S |rS| j                  t6              r>| j                         j
                  }t!        |||||d
	      }| j8                  | _	        |S |rS| j                  t:              r>| j                         j
                  }t3        |||||d
	      }| j<                  | _	        |S ||3t)        |||d
fd||      }| j                  j                         | _	        |S |rd}nd}| j                         }t        d|z  |d|j>                  z  |j
                        )Nzwhile parsing a nodezfound undefined tag handle %rr   TF)FTFF)styleT
flow_styleF rY   flowzwhile parsing a %s nodez'expected the node content, but found %r) r6   
AliasTokenr+   
AliasEventr'   r-   r.   r   rM   r   AnchorTokenTagTokenr   r   r;   BlockEntryTokenSequenceStartEventparse_indentless_sequence_entryScalarTokenplainScalarEventrd   FlowSequenceStartTokenparse_flow_sequence_first_entryFlowMappingStartTokenMappingStartEventparse_flow_mapping_first_keyBlockSequenceStartToken parse_block_sequence_first_entryBlockMappingStartTokenparse_block_mapping_first_keyrF   )r   rY   r_   r1   r2   anchortagr-   r.   tag_markrU   suffiximplicitnodes                 r   r[   zParser.parse_node  ss   J'NN$Eu{{E,<,<ennME*DJ~ { FC/33J3H,("--
 >>##H- NN,E$//H$~~H++C!!(+((-(8(88
X >>kk##K0 NN,E$~~H"[[F!$%T%5%55)*@* ?& H (* * **6269C C
 !(,(9(D(DD
XEt1sczH"t'7'7'H??,55*63"H.!AA
b _ ##K0 NN,E$~~Hs
#0#0#1'Xu{{&EE!%!2DJH G %%&<=#099H.vsH&TCE!%!E!EDJ> = %%&;<#099H-fc8&TCE!%!B!BDJ4 3 t//0GH#0;;H.vsH&UDE!%!F!FDJ* ) t//0FG#0;;H-fc8&UDE!%!C!CDJ   '3? (h5F&2E!%!2DJ  &% OO-E%&?$&F
EP!,,. .r   c                     | j                         }| j                  j                  |j                         | j	                         S r   )r+   r   r=   r-   parse_block_sequence_entryr   r1   s     r   ry   z'Parser.parse_block_sequence_first_entryx  s5     

%**+..00r   c                    | j                  t              r| j                         }| j                  t        t              s5| j                  j                  | j                         | j                         S | j                  | _        | j                  |j                        S | j                  t              sB| j                         }t        d| j                  d   d|j                  z  |j                        | j                         }t!        |j                  |j                        }| j                  j#                         | _        | j                  j#                          |S )Nz while parsing a block collection"expected <block end>, but found %r)r6   rm   r+   BlockEndTokenr   r=   r   r?   r   rL   r.   r;   r   r   rF   r-   SequenceEndEventrM   r0   s      r   r   z!Parser.parse_block_sequence_entry}  s   O,NN$E##O]C""4#B#BC,,..!<<
00@@.OO%E@$**R.8588CUEUEUW W  !1!15>>B[[__&


r   c                    | j                  t              r| j                         }| j                  t        t        t        t
              s5| j                  j                  | j                         | j                         S | j                  | _
        | j                  |j                        S | j                         }t        |j                  |j                        }| j                  j!                         | _
        |S r   )r6   rm   r+   KeyToken
ValueTokenr   r   r=   ro   r?   r   rL   r.   r;   r   r-   rM   r0   s      r   ro   z&Parser.parse_indentless_sequence_entry  s    O,NN$E##Oj-9""4#G#GH,,..!AA
00@@! !1!153C3CD[[__&
r   c                     | j                         }| j                  j                  |j                         | j	                         S r   )r+   r   r=   r-   parse_block_mapping_keyr   s     r   r{   z$Parser.parse_block_mapping_first_key  s5     

%**+++--r   c                    | j                  t              r| j                         }| j                  t        t        t              s5| j
                  j                  | j                         | j                         S | j                  | _	        | j                  |j                        S | j                  t              sB| j                         }t        d| j                  d   d|j                  z  |j                         | j                         }t#        |j                   |j                        }| j
                  j%                         | _	        | j                  j%                          |S )Nzwhile parsing a block mappingr   r   )r6   r   r+   r   r   r   r=   parse_block_mapping_valuer`   r   rL   r.   r;   r   r   rF   r-   MappingEndEventrM   r0   s      r   r   zParser.parse_block_mapping_key  s   H%NN$E##Hj-H""4#A#ABCCEE!;;
00@@.OO%E=tzz"~8588CUEUEUW W  0 0%..A[[__&


r   c                    | j                  t              r| j                         }| j                  t        t        t              s5| j
                  j                  | j                         | j                         S | j                  | _	        | j                  |j                        S | j                  | _	        | j                         }| j                  |j                        S r   )r6   r   r+   r   r   r   r=   r   r`   r   rL   r.   r;   r-   r   s     r   r   z Parser.parse_block_mapping_value  s    J'NN$E##Hj-H""4#?#?@CCEE!99
00@@55DJOO%E,,U-=-=>>r   c                     | j                         }| j                  j                  |j                         | j	                  d      S NT)first)r+   r   r=   r-   parse_flow_sequence_entryr   s     r   rt   z&Parser.parse_flow_sequence_first_entry  s:     

%**+--D-99r   c                 &   | j                  t              s|sh| j                  t              r| j                          nB| j	                         }t        d| j                  d   d|j                  z  |j                        | j                  t              rH| j	                         }t        d d d|j                  |j                  d      }| j                  | _        |S | j                  t              s5| j                  j                  | j                          | j#                         S | j                         }t%        |j                  |j                        }| j                  j'                         | _        | j                  j'                          |S )Nzwhile parsing a flow sequencer   zexpected ',' or ']', but got %rTre   )r6   FlowSequenceEndTokenFlowEntryTokenr+   r;   r   r   rF   r-   r   rv   r.   %parse_flow_sequence_entry_mapping_keyr   r   r=   r   r]   r   rM   r   r   r1   r2   s       r   r   z Parser.parse_flow_sequence_entry  s8    45##N3NN$ OO-E%&EtzzRT~=H%JZJZ\ \ )))$d((%..#') "GG
%%&:;""4#A#AB++--  !1!15>>B[[__&


r   c                 "   | j                         }| j                  t        t        t              s5| j
                  j                  | j                         | j                         S | j                  | _	        | j                  |j                        S r   )r+   r6   r   r   r   r   r=   'parse_flow_sequence_entry_mapping_valuer]   r   rL   r.   r   s     r   r   z,Parser.parse_flow_sequence_entry_mapping_key  sm     
 46KKtKKL''))EEDJ,,U^^<<r   c                    | j                  t              r| j                         }| j                  t        t              s5| j
                  j                  | j                         | j                         S | j                  | _	        | j                  |j                        S | j                  | _	        | j                         }| j                  |j                        S r   )r6   r   r+   r   r   r   r=   %parse_flow_sequence_entry_mapping_endr]   r   rL   r.   r;   r-   r   s     r   r   z.Parser.parse_flow_sequence_entry_mapping_value   s    J'NN$E##N4HI""4#M#MN++--!GG
00@@CCDJOO%E,,U-=-=>>r   c                     | j                   | _        | j                         }t        |j                  |j                        S r   )r   r   r;   r   r-   r   s     r   r   z,Parser.parse_flow_sequence_entry_mapping_end  s4    33
!u//1A1ABBr   c                     | j                         }| j                  j                  |j                         | j	                  d      S r   )r+   r   r=   r-   parse_flow_mapping_keyr   s     r   rw   z#Parser.parse_flow_mapping_first_key  s:     

%**+***66r   c                    | j                  t              sY|sh| j                  t              r| j                          nB| j	                         }t        d| j                  d   d|j                  z  |j                        | j                  t              r| j                         }| j                  t        t        t              s5| j                  j                  | j                         | j                         S | j                  | _        | j!                  |j"                        S | j                  t              s5| j                  j                  | j$                         | j                         S | j                         }t'        |j                  |j"                        }| j                  j)                         | _        | j                  j)                          |S )Nzwhile parsing a flow mappingr   zexpected ',' or '}', but got %r)r6   FlowMappingEndTokenr   r+   r;   r   r   rF   r-   r   r   r   r=   parse_flow_mapping_valuer]   r   rL   r.   parse_flow_mapping_empty_valuer   rM   r   s       r   r   zParser.parse_flow_mapping_key  s_    34##N3NN$ OO-E%&DdjjQSn=H%JZJZ\ \)(''
&(;=KK&&t'D'DE//11!%!>!>DJ44U^^DD%%&9:""4#F#FG++--  0 0%..A[[__&


r   c                    | j                  t              r| j                         }| j                  t        t              s5| j
                  j                  | j                         | j                         S | j                  | _	        | j                  |j                        S | j                  | _	        | j                         }| j                  |j                        S r   )r6   r   r+   r   r   r   r=   r   r]   r   rL   r.   r;   r-   r   s     r   r   zParser.parse_flow_mapping_value9  s    J'NN$E##N4GH""4#>#>?++--!88
00@@44DJOO%E,,U-=-=>>r   c                 v    | j                   | _        | j                  | j                         j                        S r   )r   r   rL   r;   r-   r   s    r   r   z%Parser.parse_flow_mapping_empty_valueG  s-    00
(():)E)EFFr   c                 "    t        d d dd||      S )Nrb   rg   )rr   )r   marks     r   rL   zParser.process_empty_scalarK  s    4}b$EEr   Nrc   )F)#r   r	   r
   r:   r   r   r"   r%   r(   r   r/   r@   r>   rG   rE   r?   r]   r`   r[   ry   r   ro   r{   r   r   rt   r   r   r   r   rw   r   r   r   rL   r   r   r   r   r   H   s    
 #L
-
"
/(>$+^+!EcN1
*(.
&?2:
4=?C7
6?GFr   N)__all__errorr   tokenseventsscannerr   r   r   r   r   <module>r      s8   | ]
# "   	/ 	DF DFr   