B Ïñ¢d—cã@sNddgZddlmZddlTddlTddlTGdd„deƒZGdd„dƒZdS)ÚParserÚ ParserErroré)ÚMarkedYAMLError)Ú*c@s eZdZdS)rN)Ú__name__Ú __module__Ú __qualname__©r r ú2/tmp/pip-target-jj3kjtpb/lib/python/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:„ZdFd;d<„Zd=d>„Z d?d@„Z!dAdB„Z"dCS)Grú!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|_dS)N)rr)rr r r ÚdisposeYszParser.disposecGsN|jdkr|jr| ¡|_|jdk rJ|s,dSx|D]}t|j|ƒr2dSq2WdS)NTF)r rÚ isinstance)rÚchoicesÚchoicer r r Ú check_event^s     zParser.check_eventcCs |jdkr|jr| ¡|_|jS)N)r r)rr r r Ú peek_eventks  zParser.peek_eventcCs*|jdkr|jr| ¡|_|j}d|_|S)N)r 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_startcCs\| ttt¡sP|j|_| ¡}|j}}t||dd}|j   |j ¡|j |_ |S| ¡SdS)NF)Úexplicit)Ú check_tokenÚDirectiveTokenÚDocumentStartTokenÚStreamEndTokenÚ DEFAULT_TAGSrÚ peek_tokenrÚDocumentStartEventrÚappendÚparse_document_endÚparse_block_noderÚparse_document_start)rr"rr r#r r r r!‹s z$Parser.parse_implicit_document_startcCsÐx| t¡r| ¡qW| t¡sœ| ¡}|j}| ¡\}}| t¡sdtddd| ¡j | ¡jƒ‚| ¡}|j }t ||d||d}|j   |j¡|j|_n0| ¡}t|j|j ƒ}|j r¼t‚|jrÆt‚d|_|S)Nz)expected '', but found %rT)r$ÚversionÚtags)r%ÚDocumentEndTokenrr(r*rÚprocess_directivesr'rÚidr r+rr,r-Úparse_document_contentrZStreamEndEventÚAssertionErrorr)rr"rr0r1r r#r r r r/Ÿs.           zParser.parse_document_startcCsL| ¡}|j}}d}| t¡r2| ¡}|j}d}t|||d}|j|_|S)NFT)r$) r*rr%r2rr ZDocumentEndEventr/r)rr"rr r$r#r r r r-¾s  zParser.parse_document_endcCs<| tttt¡r0| | ¡j¡}|j  ¡|_ |S|  ¡SdS)N) r%r&r'r2r(Úprocess_empty_scalarr*rrÚpoprr.)rr#r r r r5Ðs   zParser.parse_document_contentcCsd|_i|_x¢| t¡r®| ¡}|jdkrp|jdk rDtddd|jƒ‚|j\}}|dkrftddd|jƒ‚|j|_q|jdkr|j\}}||jkr¢tddd||jƒ‚||j|<qW|jrÈ|j|j  ¡f}n |jdf}x(|j D]}||jkrÚ|j ||j|<qÚW|S)NÚYAMLzfound duplicate YAML directiverz:found incompatible YAML document (version 1.* is required)ZTAGzduplicate tag handle %r) r rr%r&rÚnamerrrÚcopyr))rr"ÚmajorÚminorÚhandleÚprefixrÚkeyr r r r3Ùs8            zParser.process_directivescCs |jddS)NT)Úblock)Ú parse_node)rr r r r.szParser.parse_block_nodecCs| ¡S)N)rB)rr r r Úparse_flow_node szParser.parse_flow_nodecCs|jdddS)NT)rAÚindentless_sequence)rB)rr r r Ú'parse_block_node_or_indentless_sequencesz.Parser.parse_block_node_or_indentless_sequenceFc CsR| t¡r4| ¡}t|j|j|jƒ}|j ¡|_ nd}d}d}}} | t ¡r’| ¡}|j}|j}|j}| t ¡rØ| ¡}|j} |j}|j}nF| t ¡rØ| ¡}|j}} |j}|j}| t ¡rØ| ¡}|j}|j}|dk r&|\} } | dk r"| |j krt d|d| | ƒ‚|j | | }n| }|dkr>| ¡j}}d}|dkpR|dk} |rŒ| t¡rŒ| ¡j}t||| ||ƒ}|j|_ nÂ| t¡r| ¡}|j}|jr¸|dksÂ|dkrÈd} n|dkrØd} nd} t||| |j|||jd}|j ¡|_ nH| t¡r<| ¡j}t||| ||dd }|j|_ n| t¡rp| ¡j}t||| ||dd }|j|_ nÞ|rª| t¡rª| ¡j}t||| ||d d }|j|_ n¤|rä| t¡rä| ¡j}t||| ||d d }|j|_ nj|dk sø|dk rt||| d fd ||ƒ}|j ¡|_ n2|r(d } nd } | ¡}t d| |d|j|jƒ‚|S)Nzwhile parsing a nodezfound undefined tag handle %rr )TF)FT)FF)ÚstyleT)Ú flow_styleFÚrAZflowzwhile parsing a %s nodez'expected the node content, but found %r) r%Z AliasTokenrZ AliasEventrrr rr8rZ AnchorTokenZTagTokenrrr*ÚBlockEntryTokenZSequenceStartEventÚparse_indentless_sequence_entryZ ScalarTokenÚplainÚ ScalarEventrFZFlowSequenceStartTokenÚparse_flow_sequence_first_entryZFlowMappingStartTokenÚMappingStartEventÚparse_flow_mapping_first_keyZBlockSequenceStartTokenÚ parse_block_sequence_first_entryZBlockMappingStartTokenÚparse_block_mapping_first_keyr4)rrArDr"r#ÚanchorÚtagrr Ztag_markr>ÚsuffixZimplicitÚnoder r r rBs®                               zParser.parse_nodecCs| ¡}|j |j¡| ¡S)N)rrr,rÚparse_block_sequence_entry)rr"r r r rPxsz'Parser.parse_block_sequence_first_entrycCs¦| t¡rH| ¡}| tt¡s4|j |j¡| ¡S|j|_|  |j ¡S| t¡sv|  ¡}t d|j dd|j|jƒ‚| ¡}t|j|j ƒ}|j ¡|_|j  ¡|S)Nz while parsing a block collectionéÿÿÿÿz"expected , but found %r)r%rIrÚ BlockEndTokenrr,rVr.rr7r r*rrr4rÚSequenceEndEventr8)rr"r#r r r rV}s        z!Parser.parse_block_sequence_entrycCsr| t¡rL| ¡}| tttt¡s8|j |j¡|  ¡S|j|_ |  |j ¡S|  ¡}t|j|jƒ}|j ¡|_ |S)N)r%rIrÚKeyTokenÚ ValueTokenrXrr,rJr.rr7r r*rYrr8)rr"r#r r r rJ’s    z&Parser.parse_indentless_sequence_entrycCs| ¡}|j |j¡| ¡S)N)rrr,rÚparse_block_mapping_key)rr"r r r rQ¦sz$Parser.parse_block_mapping_first_keycCs¨| t¡rJ| ¡}| ttt¡s6|j |j¡| ¡S|j|_ |  |j ¡S| t¡sx|  ¡}t d|jdd|j|jƒ‚| ¡}t|j|j ƒ}|j ¡|_ |j ¡|S)Nzwhile parsing a block mappingrWz"expected , but found %r)r%rZrr[rXrr,Úparse_block_mapping_valuerErr7r r*rrr4rÚMappingEndEventr8)rr"r#r r r r\«s       zParser.parse_block_mapping_keycCsl| t¡rL| ¡}| ttt¡s6|j |j¡| ¡S|j|_ |  |j ¡Sn|j|_ |  ¡}|  |j ¡SdS)N)r%r[rrZrXrr,r\rErr7r r*r)rr"r r r r]¾s z Parser.parse_block_mapping_valuecCs"| ¡}|j |j¡|jddS)NT)Úfirst)rrr,rÚparse_flow_sequence_entry)rr"r r r rM×sz&Parser.parse_flow_sequence_first_entrycCsÌ| t¡sœ|sF| t¡r"| ¡n$| ¡}td|jdd|j|jƒ‚| t ¡r|| ¡}t ddd|j|j dd}|j |_ |S| t¡sœ|j |j¡| ¡S| ¡}t|j|j ƒ}|j ¡|_ |j ¡|S)Nzwhile parsing a flow sequencerWzexpected ',' or ']', but got %rT)rG)r%ÚFlowSequenceEndTokenÚFlowEntryTokenrr*rrr4rrZrNr Ú%parse_flow_sequence_entry_mapping_keyrrr,r`rCrYr8)rr_r"r#r r r r`Üs,        z Parser.parse_flow_sequence_entrycCsD| ¡}| ttt¡s,|j |j¡| ¡S|j|_ |  |j ¡SdS)N) rr%r[rbrarr,Ú'parse_flow_sequence_entry_mapping_valuerCrr7r )rr"r r r rcösz,Parser.parse_flow_sequence_entry_mapping_keycCsj| t¡rJ| ¡}| tt¡s4|j |j¡| ¡S|j|_ |  |j ¡Sn|j|_ |  ¡}|  |j ¡SdS)N)r%r[rrbrarr,Ú%parse_flow_sequence_entry_mapping_endrCrr7r r*r)rr"r r r rds  z.Parser.parse_flow_sequence_entry_mapping_valuecCs|j|_| ¡}t|j|jƒS)N)r`rr*r^r)rr"r r r resz,Parser.parse_flow_sequence_entry_mapping_endcCs"| ¡}|j |j¡|jddS)NT)r_)rrr,rÚparse_flow_mapping_key)rr"r r r rOsz#Parser.parse_flow_mapping_first_keycCsâ| t¡s²|sF| t¡r"| ¡n$| ¡}td|jdd|j|jƒ‚| t ¡r’| ¡}| t tt¡s||j   |j ¡| ¡S|j |_| |j¡Sn | t¡s²|j   |j¡| ¡S| ¡}t|j|jƒ}|j  ¡|_|j ¡|S)Nzwhile parsing a flow mappingrWzexpected ',' or '}', but got %r)r%ÚFlowMappingEndTokenrbrr*rrr4rrZr[rr,Úparse_flow_mapping_valuerCrr7r Úparse_flow_mapping_empty_valuer^r8)rr_r"r#r r r rfs.        zParser.parse_flow_mapping_keycCsj| t¡rJ| ¡}| tt¡s4|j |j¡| ¡S|j|_ |  |j ¡Sn|j|_ |  ¡}|  |j ¡SdS)N)r%r[rrbrgrr,rfrCrr7r r*r)rr"r r r rh9s  zParser.parse_flow_mapping_valuecCs|j|_| | ¡j¡S)N)rfrr7r*r)rr r r riGsz%Parser.parse_flow_mapping_empty_valuecCstdddd||ƒS)N)TFrH)rL)rÚmarkr r r r7KszParser.process_empty_scalarN)FF)F)F)#rrrr)rrrrrrr!r/r-r5r3r.rCrErBrPrVrJrQr\r]rMr`rcrdrerOrfrhrir7r r r r rHsB    / g    N)Ú__all__ÚerrorrÚtokensÚeventsÚscannerrrr r r r Ú>s