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_tokenZStreamStartEventÚ 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-r/r"Úprocess_directivesr,rÚidr#r0rr1r2Úparse_document_contentrZStreamEndEventr)rr&r"r5r6r#r'r r r r4Ÿs8  ÿ   ÿýÿû  zParser.parse_document_startcCsL| ¡}|j}}d}| t¡r| ¡}|j}d}t|||d}|j|_|S)NFTr() r/r"r*r7r!r#ZDocumentEndEventr4r)rr&r"r#r)r'r r r r2¾s  ÿzParser.parse_document_endcCs8| tttt¡r| | ¡j¡}|j  ¡|_ |S|  ¡Sr ) r*r+r,r7r-Úprocess_empty_scalarr/r"rÚpoprr3)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)NZYAMLzfound duplicate YAML directiverz:found incompatible YAML document (version 1.* is required)ZTAGzduplicate tag handle %r) rrr*r+r!Únamerr"rÚcopyr.)rr&ÚmajorÚminorÚhandleÚprefixrÚkeyr r r r8ÙsB   ÿ þ    þ  î   €zParser.process_directivescCs |jddS)NT)Úblock©Ú parse_noderr r r r3s zParser.parse_block_nodecCs| ¡Sr rErr r r Úparse_flow_node szParser.parse_flow_nodecCs|jdddS)NT)rDÚindentless_sequencerErr 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©Z flow_styleFÚrDZflowzwhile parsing a %s nodez'expected the node content, but found %r) r*Z AliasTokenr!Z AliasEventrr"r#rr<rZ AnchorTokenZTagTokenrrr/ÚBlockEntryTokenZSequenceStartEventÚparse_indentless_sequence_entryZ ScalarTokenZplainÚ ScalarEventrLZFlowSequenceStartTokenÚparse_flow_sequence_first_entryZFlowMappingStartTokenÚMappingStartEventÚparse_flow_mapping_first_keyZBlockSequenceStartTokenÚ parse_block_sequence_first_entryZBlockMappingStartTokenÚparse_block_mapping_first_keyr9)rrDrHr&r'ZanchorÚtagr"r#Ztag_markrAÚsuffixZimplicitZnoder r r rFsÐ  _£   €    þ ÿ1 Ñ ÿ $ Ý ÿ â ÿç ÿì ÿñÿ  ø þzParser.parse_nodecCó| ¡}|j |j¡| ¡Sr )r!rr1r"Úparse_block_sequence_entry©rr&r r r rUxó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*rOr!Ú BlockEndTokenrr1rZr3rr;r#r/rrr9r"ÚSequenceEndEventr<r%r r r rZ}s"      ÿ  z!Parser.parse_block_sequence_entrycCsr| t¡r&| ¡}| tttt¡s|j |j¡|  ¡S|j|_ |  |j ¡S|  ¡}t|j|jƒ}|j ¡|_ |Sr )r*rOr!ÚKeyTokenÚ ValueTokenr_rr1rPr3rr;r#r/r`r"r<r%r r r rP’s ÿ  z&Parser.parse_indentless_sequence_entrycCrYr )r!rr1r"Úparse_block_mapping_keyr[r r r rV¦r\z$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 mappingr]r^)r*rar!rbr_rr1Úparse_block_mapping_valuerIrr;r#r/rrr9r"ÚMappingEndEventr<r%r r r rc«s"     ÿ  zParser.parse_block_mapping_keycCsf| t¡r%| ¡}| ttt¡s|j |j¡| ¡S|j|_ |  |j ¡S|j|_ |  ¡}|  |j ¡Sr )r*rbr!rar_rr1rcrIrr;r#r/r"r[r r r rd¾s   z Parser.parse_block_mapping_valuecCó"| ¡}|j |j¡|jddS©NT)Úfirst)r!rr1r"Úparse_flow_sequence_entryr[r r r rR×ó 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 sequencer]zexpected ',' or ']', but got %rTrM)r*ÚFlowSequenceEndTokenÚFlowEntryTokenr!r/rrr9r"rarSr#Ú%parse_flow_sequence_entry_mapping_keyrrr1rirGr`r<©rrhr&r'r r r riÜs0     ÿ þ   z Parser.parse_flow_sequence_entrycCs@| ¡}| ttt¡s|j |j¡| ¡S|j|_ |  |j ¡Sr ) r!r*rbrlrkrr1Ú'parse_flow_sequence_entry_mapping_valuerGrr;r#r[r r r rmösÿ z,Parser.parse_flow_sequence_entry_mapping_keycCód| t¡r$| ¡}| tt¡s|j |j¡| ¡S|j|_ |  |j ¡S|j|_ |  ¡}|  |j ¡Sr )r*rbr!rlrkrr1Ú%parse_flow_sequence_entry_mapping_endrGrr;r#r/r"r[r r r roó    z.Parser.parse_flow_sequence_entry_mapping_valuecCs|j|_| ¡}t|j|jƒSr )rirr/rer"r[r r r rqsz,Parser.parse_flow_sequence_entry_mapping_endcCrfrg)r!rr1r"Úparse_flow_mapping_keyr[r r r rTrjz#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 mappingr]zexpected ',' or '}', but got %r)r*ÚFlowMappingEndTokenrlr!r/rrr9r"rarbrr1Úparse_flow_mapping_valuerGrr;r#Úparse_flow_mapping_empty_valuerer<rnr r r rss2     ÿ ÿ    zParser.parse_flow_mapping_keycCrpr )r*rbr!rlrtrr1rsrGrr;r#r/r"r[r r r ru9rrzParser.parse_flow_mapping_valuecCs|j|_| | ¡j¡Sr )rsrr;r/r"rr r r rvGsz%Parser.parse_flow_mapping_empty_valuecCstdddd||ƒS)NrJrN)rQ)rZmarkr r r r;KszParser.process_empty_scalarNrK)F)#rrrr.rrrrrrr$r4r2r:r8r3rGrIrFrUrZrPrVrcrdrRrirmrorqrTrsrurvr;r r r r rHsFþ    / g    N)Ú__all__ÚerrorrÚtokensZeventsÚscannerrrr r r r Ús=