B -<`~!@s@ddlZddlZddlmZddlmZmZGdddeZdS)N)loads) LexerErrorEmptyExpressionErrorc @seZdZeejdZeejejdZeejZ edZ ddddddd d d d d Z ddZ ddZ ddZddZddZddZddZddZddZd S)!Lexer_z dotZstarZrbracketcommacoloncurrentZlparenZrparenZlbracerbrace) .*],:@(){}ccsF||x |jdk r,|j|jkrR|j|j|j|j|jddV|q|j|jkr|j}|j}x||jkr||j7}qlWd|||t|dVq|j|jkr|q|jdkr6|j}|}|dkr|dd||ddVn<|d kr |d d ||ddVnd d||ddVq|jd krN| Vq|jdkrl| dddVq|jdkr| dddVq|jdkr| Vq|j|j kr|j}| }dt|||t|dVq|jdkr6|j}| }t|dkr"dt|||t|dVnt||d|dq|jdkrN|Vq|jdkrl| dddVq|jdkr| ddd Vq|jd!kr| dd"d#Vq|jdkr|dkrd$d%|jd|jdV|n,|jdkr|j}n |jd}t|dd&dqt|j|jd'|jdqWd(d)|j|jdVdS)*N)typevaluestartendZunquoted_identifier[rflattenz[]?filterz[?Zlbracket'|orpipe&andZexpref`number-zUnknown token '%s')lexer_position lexer_valuemessage"<=Zltelt>Zgtegt!nenoteqz==zUnknown token '='zUnknown token %seof)_initialize_for_expression_current SIMPLE_TOKENS _position_nextSTART_IDENTIFIERVALID_IDENTIFIERlen WHITESPACE_consume_raw_string_literal_match_or_else_consume_literal VALID_NUMBER_consume_numberintr_consume_quoted_identifier_length)self expressionrbuff next_charpositionrN5/tmp/pip-target-7cdyy134/lib/python/jmespath/lexer.pytokenizes                          zLexer.tokenizecCs.|j}|j}x||jkr(||j7}qW|S)N)r;r9r<rD)rIrrKrNrNrOrEqs zLexer._consume_numbercCs@|s td|_||_t|j|_|j|j|_t|j|_dS)Nr)rr; _expressionlist_charsr9r?rH)rIrJrNrNrOr8xs z Lexer._initialize_for_expressioncCs:|j|jdkrd|_n|jd7_|j|j|_|jS)Nr)r;rHr9rS)rIrNrNrOr<s z Lexer._nextcCs|j}d}|x`|j|krr|jdkr8|d7}||jdkr^t||j|dd|d||j7}|qW||S)Nr7\zUnclosed %s delimiter)r)r*r+)r;r<r9rrQ)rI delimiterrrKrNrNrO_consume_untils       zLexer._consume_untilc Cs|j}|ddd}y t|}Wnftk ry td|}tdtWn0tk rt ||j |dd|dYnXYnX|j|}d|||dS) Nr&z\`z"%s"z deprecated string literal syntaxz Bad token %s)r)r*r+literal)rrrr) r;rVreplacer ValueErrorlstripwarningswarnPendingDeprecationWarningrrQ)rIrlexemeZ parsed_json token_lenrNrNrOrCs     zLexer._consume_literalc Cs||j}d|dd}y|j|}dt|||dStk rv}z$t|dd}t|||dWdd}~XYnXdS)Nr,Zquoted_identifier)rrrrrr)r)r*r+)r;rVrrYstrsplitr)rIrr^r_e error_messagerNrNrOrGs  z Lexer._consume_quoted_identifiercCs0|j}|ddd}|j|}d|||dS)Nr z\'rW)rrrr)r;rVrX)rIrr^r_rNrNrOrAs  z!Lexer._consume_raw_string_literalcCsH|j}|j}|}||kr:||||||ddS||||dS)Nr)rrrr)r;r9r<)rIexpectedZ match_typeZ else_typerr rLrNrNrOrBszLexer._match_or_elseN)__name__ __module__ __qualname__setstring ascii_lettersr=digitsr>rDr@r:rPrEr8r<rVrCrGrArBrNrNrNrOrs. W  r) rir[jsonrZjmespath.exceptionsrrobjectrrNrNrNrOs