o ¬£`—cã@sNddgZddlmZddlTddlTddlTGdd„deƒZGdd„dƒZdS)ÚParserÚ ParserErroré)ÚMarkedYAMLError)Ú*c@s eZdZdS)rN)Ú__name__Ú __module__Ú __qualname__©r r ú-/usr/lib/python3/dist-packages/yaml/parser.pyrEsc@seZdZdddœZdd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„ZdDd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„ZdEd1d2„Zd3d4„Zd5d6„Zd7d8„Zd9d:„ZdEd;d<„Zd=d>„Z d?d@„Z!dAdB„Z"dCS)Frú!ztag:yaml.org,2002:)r z!!cCs*d|_d|_i|_g|_g|_|j|_dS©N)Ú current_eventÚ yaml_versionÚ tag_handlesÚstatesÚmarksÚparse_stream_startÚstate©Úselfr r r Ú__init__Qs  zParser.__init__cCsg|_d|_dSr )rrrr r r ÚdisposeYs zParser.disposecGsL|jdur |jr | ¡|_|jdur$|sdS|D] }t|j|ƒr#dSqdS)NTF)r rÚ isinstance)rÚchoicesÚchoicer r r Ú check_event^s    ÿzParser.check_eventcCs |jdur |jr | ¡|_|jSr ©r rrr r r Ú peek_eventks  zParser.peek_eventcCs*|jdur |jr | ¡|_|j}d|_|Sr r)rÚvaluer r r Ú get_eventrs  zParser.get_eventcCs(| ¡}t|j|j|jd}|j|_|S)N)Úencoding)Ú get_tokenÚStreamStartEventÚ start_markÚend_markr Úparse_implicit_document_startr©rÚtokenÚeventr r r rs  ÿzParser.parse_stream_startcCsX| ttt¡s(|j|_| ¡}|j}}t||dd}|j   |j ¡|j |_ |S| ¡S)NF©Úexplicit)Ú check_tokenÚDirectiveTokenÚDocumentStartTokenÚStreamEndTokenÚ DEFAULT_TAGSrÚ peek_tokenr#ÚDocumentStartEventrÚappendÚparse_document_endÚparse_block_noderÚparse_document_start)rr'r#r$r(r r r r%‹sÿ ÿz$Parser.parse_implicit_document_startcCsÖ| t¡r| ¡| t¡s| t¡sQ| ¡}|j}| ¡\}}| t¡s4tddd| ¡j | ¡jƒ‚| ¡}|j }t ||d||d}|j   |j¡|j|_|S| ¡}t|j|j ƒ}|j raJ‚|jrfJ‚d|_|S)Nz)expected '', but found %rT)r*ÚversionÚtags)r+ÚDocumentEndTokenr!r.r0r#Úprocess_directivesr-rÚidr$r1rr2r3Úparse_document_contentrÚStreamEndEventr)rr'r#r6r7r$r(r r r r5Ÿs8  ÿ   ÿýÿû  zParser.parse_document_startcCsL| ¡}|j}}d}| t¡r| ¡}|j}d}t|||d}|j|_|S)NFTr)) r0r#r+r8r!r$ÚDocumentEndEventr5r)rr'r#r$r*r(r r r r3¾s  ÿzParser.parse_document_endcCs8| tttt¡r| | ¡j¡}|j  ¡|_ |S|  ¡Sr ) r+r,r-r8r.Úprocess_empty_scalarr0r#rÚpoprr4)rr(r r r r;Ðsÿ zParser.parse_document_contentcCsd|_i|_| t¡rZ| ¡}|jdkr7|jdur!tddd|jƒ‚|j\}}|dkr2tddd|jƒ‚|j|_n|jdkrU|j\}}||jvrPtddd||jƒ‚||j|<| t¡s |jrf|j|j  ¡f}n|jdf}|j D]}||jvr}|j ||j|<qn|S)NÚYAMLzfound duplicate YAML directiverz:found incompatible YAML document (version 1.* is required)ÚTAGzduplicate tag handle %r) rrr+r,r!Únamerr#rÚcopyr/)rr'ÚmajorÚminorÚhandleÚprefixrÚkeyr r r r9ÙsB   ÿ þ    þ  î   €zParser.process_directivescCs |jddS)NT)Úblock©Ú parse_noderr r r r4s zParser.parse_block_nodecCs| ¡Sr rJrr r r Úparse_flow_node szParser.parse_flow_nodecCs|jdddS)NT)rIÚindentless_sequencerJrr r r Ú'parse_block_node_or_indentless_sequencesz.Parser.parse_block_node_or_indentless_sequenceFc Cs>| t¡r| ¡}t|j|j|jƒ}|j ¡|_ |Sd}d}d}}} | t ¡rI| ¡}|j}|j}|j}| t ¡rH| ¡}|j} |j}|j}n#| t ¡rl| ¡}|j}} |j}|j}| t ¡rl| ¡}|j}|j}|dur|\} } | durŽ| |j vr†t d|d| | ƒ‚|j | | }n| }|dur›| ¡j}}d}|dup¤|dk} |r¿| t¡r¿| ¡j}t||| ||ƒ}|j|_ |S| t¡r÷| ¡}|j}|jrÒ|dusÖ|dkrÙd} n |duràd} nd} t||| |j|||jd}|j ¡|_ |S| t¡r| ¡j}t||| ||dd }|j|_ |S| t¡r-| ¡j}t||| ||dd }|j|_ |S|rK| t¡rK| ¡j}t||| ||d d }|j|_ |S|ri| t¡ri| ¡j}t||| ||d d }|j|_ |S|duss|dur†t||| d fd ||ƒ}|j ¡|_ |S|rŒd } nd } | ¡}t d| |d|j|jƒ‚)Nzwhile parsing a nodezfound undefined tag handle %rr ©TF)FT©FF)ÚstyleT©Ú flow_styleFÚrIÚflowzwhile parsing a %s nodez'expected the node content, but found %r) r+Ú AliasTokenr!Ú AliasEventrr#r$rr?rÚ AnchorTokenÚTagTokenrrr0ÚBlockEntryTokenÚSequenceStartEventÚparse_indentless_sequence_entryÚ ScalarTokenÚplainÚ ScalarEventrQÚFlowSequenceStartTokenÚparse_flow_sequence_first_entryÚFlowMappingStartTokenÚMappingStartEventÚparse_flow_mapping_first_keyÚBlockSequenceStartTokenÚ parse_block_sequence_first_entryÚBlockMappingStartTokenÚparse_block_mapping_first_keyr:)rrIrMr'r(ÚanchorÚtagr#r$Útag_markrFÚsuffixÚimplicitÚnoder r r rKsÐ  _£   €    þ ÿ1 Ñ ÿ $ Ý ÿ â ÿç ÿì ÿñÿ  ø þzParser.parse_nodecCó| ¡}|j |j¡| ¡Sr )r!rr2r#Úparse_block_sequence_entry©rr'r r r rfxóz'Parser.parse_block_sequence_first_entrycCs¦| t¡r$| ¡}| tt¡s|j |j¡| ¡S|j|_|  |j ¡S| t¡s;|  ¡}t d|j dd|j|jƒ‚| ¡}t|j|j ƒ}|j ¡|_|j  ¡|S)Nz while parsing a block collectionéÿÿÿÿú"expected , but found %r)r+rZr!Ú BlockEndTokenrr2rpr4rr>r$r0rrr:r#ÚSequenceEndEventr?r&r r r rp}s"      ÿ  z!Parser.parse_block_sequence_entrycCsr| t¡r&| ¡}| tttt¡s|j |j¡|  ¡S|j|_ |  |j ¡S|  ¡}t|j|jƒ}|j ¡|_ |Sr )r+rZr!ÚKeyTokenÚ ValueTokenrurr2r\r4rr>r$r0rvr#r?r&r r r r\’s ÿ  z&Parser.parse_indentless_sequence_entrycCror )r!rr2r#Úparse_block_mapping_keyrqr r r rh¦rrz$Parser.parse_block_mapping_first_keycCs¨| t¡r%| ¡}| ttt¡s|j |j¡| ¡S|j|_ |  |j ¡S| t¡s<|  ¡}t d|jdd|j|jƒ‚| ¡}t|j|j ƒ}|j ¡|_ |j ¡|S)Nzwhile parsing a block mappingrsrt)r+rwr!rxrurr2Úparse_block_mapping_valuerNrr>r$r0rrr:r#ÚMappingEndEventr?r&r r r ry«s"     ÿ  zParser.parse_block_mapping_keycCsf| t¡r%| ¡}| ttt¡s|j |j¡| ¡S|j|_ |  |j ¡S|j|_ |  ¡}|  |j ¡Sr )r+rxr!rwrurr2ryrNrr>r$r0r#rqr r r rz¾s   z Parser.parse_block_mapping_valuecCó"| ¡}|j |j¡|jddS©NT)Úfirst)r!rr2r#Úparse_flow_sequence_entryrqr r r ra×ó z&Parser.parse_flow_sequence_first_entrycCsÌ| t¡sN|s#| t¡r| ¡n| ¡}td|jdd|j|jƒ‚| t ¡r>| ¡}t ddd|j|j dd}|j |_ |S| t¡sN|j |j¡| ¡S| ¡}t|j|j ƒ}|j ¡|_ |j ¡|S)Nzwhile parsing a flow sequencerszexpected ',' or ']', but got %rTrR)r+ÚFlowSequenceEndTokenÚFlowEntryTokenr!r0rrr:r#rwrcr$Ú%parse_flow_sequence_entry_mapping_keyrrr2rrLrvr?©rr~r'r(r r r rÜs0     ÿ þ   z Parser.parse_flow_sequence_entrycCs@| ¡}| ttt¡s|j |j¡| ¡S|j|_ |  |j ¡Sr ) r!r+rxr‚rrr2Ú'parse_flow_sequence_entry_mapping_valuerLrr>r$rqr r r rƒösÿ z,Parser.parse_flow_sequence_entry_mapping_keycCód| t¡r$| ¡}| tt¡s|j |j¡| ¡S|j|_ |  |j ¡S|j|_ |  ¡}|  |j ¡Sr )r+rxr!r‚rrr2Ú%parse_flow_sequence_entry_mapping_endrLrr>r$r0r#rqr r r r…ó    z.Parser.parse_flow_sequence_entry_mapping_valuecCs|j|_| ¡}t|j|jƒSr )rrr0r{r#rqr r r r‡sz,Parser.parse_flow_sequence_entry_mapping_endcCr|r})r!rr2r#Úparse_flow_mapping_keyrqr r r rdr€z#Parser.parse_flow_mapping_first_keycCsà| t¡sX|s#| t¡r| ¡n| ¡}td|jdd|j|jƒ‚| t ¡rH| ¡}| t tt¡s>|j   |j ¡| ¡S|j |_| |j¡S| t¡sX|j   |j¡| ¡S| ¡}t|j|jƒ}|j  ¡|_|j ¡|S)Nzwhile parsing a flow mappingrszexpected ',' or '}', but got %r)r+ÚFlowMappingEndTokenr‚r!r0rrr:r#rwrxrr2Úparse_flow_mapping_valuerLrr>r$Úparse_flow_mapping_empty_valuer{r?r„r r r r‰s2     ÿ ÿ    zParser.parse_flow_mapping_keycCr†r )r+rxr!r‚rŠrr2r‰rLrr>r$r0r#rqr r r r‹9rˆzParser.parse_flow_mapping_valuecCs|j|_| | ¡j¡Sr )r‰rr>r0r#rr r r rŒGsz%Parser.parse_flow_mapping_empty_valuecCstdddd||ƒS)NrOrT)r_)rÚmarkr r r r>KszParser.process_empty_scalarNrP)F)#rrrr/rrrrrrr%r5r3r;r9r4rLrNrKrfrpr\rhryrzrarrƒr…r‡rdr‰r‹rŒr>r r r r rHsFþ    / g    N)Ú__all__ÚerrorrÚtokensÚeventsÚscannerrrr r r r Ús=