g Vc@sXddlZddlZddlmZddlmZmZdefdYZdS(iN(tloads(t LexerErrortEmptyExpressionErrortLexercBseZeejdZeejejdZeejdZeejZ edZ i dd6dd6dd6d d 6d d 6d d6dd6dd6dd6dd6Z dZ dZ dZdZdZdZdZdZRS(t_t-s tdott.tstart*trbrackett]tcommat,tcolont:tcurrentt@tlparent(trparent)tlbracet{trbracet}ccs|j|x|jdk r|j|jkrvi|j|jd6|jd6|jd6|jdd6V|jq|j|jkr|j}|j}x&|j|jkr||j7}qWidd6|d6|d6|t|d6Vq|j|j kr|jq|jdkr|j}|j}|dkrr|jid d6d d6|d6|d d6Vq|d kr|jid d6dd6|d6|d d6Vqidd6dd6|d6|dd6Vq|jdkr|j Vq|jdkr|j dddVq|jdkrA|j dddVq|jdkr^|j Vq|j|j kr|j}|j}x&|j|jkr||j7}qWidd6t|d6|d6|t|d6Vq|jdkr|jVq|jdkr"|j dddVq|jdkrH|j ddd Vq|jd!krn|j dd"d#Vq|jdkr|j dd$d%Vqtd&|jd'|jd(d)|jqWid*d6d+d6|jd6|jd6VdS(,Nttypetvaluetstartitendtunquoted_identifiert[R tflattens[]it?tfilters[?tlbrackett't|tortpipet&tandtexpreft`tnumbert"ttgtetgtt!tnetnotteqtunknowntlexer_positiont lexer_valuetmessagesUnknown token %steoft(t_initialize_for_expressiont_currenttNonet SIMPLE_TOKENSt _positiont_nexttSTART_IDENTIFIERtVALID_IDENTIFIERtlent WHITESPACEt_consume_raw_string_literalt_match_or_elset_consume_literalt START_NUMBERt VALID_NUMBERtintt_consume_quoted_identifierRt_length(tselft expressionRtbufft next_char((s//usr/lib/fence-agents/bundled/jmespath/lexer.pyttokenizesv               cCs_|stnd|_||_t|j|_|j|j|_t|j|_dS(Ni(RRCt _expressiontlistt_charsR@RGRP(RQRR((s//usr/lib/fence-agents/bundled/jmespath/lexer.pyR?Zs   cCsK|j|jdkr"d|_n"|jd7_|j|j|_|jS(Ni(RCRPRAR@RX(RQ((s//usr/lib/fence-agents/bundled/jmespath/lexer.pyRDcs  cCs|j}d}|jx|j|kr|jdkrQ|d7}|jn|jdkrtd|d|jdd|n||j7}|jqW|j|S(NR>s\R:R;R<sUnclosed %s delimiter(RCRDR@RARRV(RQt delimiterRRS((s//usr/lib/fence-agents/bundled/jmespath/lexer.pyt_consume_untilks        cCs|j}|jdjdd}yt|}Wnqtk ry*td|j}tjdtWqtk rt d|d|j dd|qXnX|j|}id d 6|d 6|d 6|d 6S(NR+s\`s"%s"s deprecated string literal syntaxR:R;R<s Bad token %stliteralRRRR( RCRZtreplaceRt ValueErrortlstriptwarningstwarntPendingDeprecationWarningRRV(RQRtlexemet parsed_jsont token_len((s//usr/lib/fence-agents/bundled/jmespath/lexer.pyRKs         cCs|j}d|jdd}y7|j|}idd6t|d6|d6|d6SWnGtk r}t|jdd}td |d |d |nXdS( NR-tquoted_identifierRRRRRiR:R;R<(RCRZRR]tstrtsplitR(RQRRbRdtet error_message((s//usr/lib/fence-agents/bundled/jmespath/lexer.pyROs   cCsQ|j}|jdjdd}|j|}idd6|d6|d6|d6S(NR$s\'R[RRRR(RCRZR\(RQRRbRd((s//usr/lib/fence-agents/bundled/jmespath/lexer.pyRIs   cCs||j}|j}|j}||kr\|ji|d6||d6|d6|dd6Si|d6|d6|d6|d6S(NRRRiR(RCR@RD(RQtexpectedt match_typet else_typeRRRT((s//usr/lib/fence-agents/bundled/jmespath/lexer.pyRJs     (t__name__t __module__tsettstringt ascii_lettersREtdigitsRFRLRMRHRBRUR?RDRZRKRORIRJ(((s//usr/lib/fence-agents/bundled/jmespath/lexer.pyRs0   ?    ( RpR_tjsonRtjmespath.exceptionsRRtobjectR(((s//usr/lib/fence-agents/bundled/jmespath/lexer.pyts