U C^~!@s@ddlZddlZddlmZddlmZmZGdddeZdS)N)loads) LexerErrorEmptyExpressionErrorc @seZdZeejdZeejejdZeejZ edZ ddddddd d d d d Z ddZ ddZ ddZddZddZddZddZddZddZd S)!Lexer_z dotZstarZrbracketcommacoloncurrentZlparenZrparenZlbracerbrace) .*],:@(){}ccs<|||jdk r$|j|jkrN|j|j|j|j|jddV|q |j|jkr|j}|j}||jkr||j7}qfd|||t|dVq |j|jkr|q |jdkr.|j}|}|dkr|dd||ddVn<|d kr|d d ||ddVnd d||ddVq |jd krF| Vq |jdkrd| dddVq |jdkr| dddVq |jdkr| Vq |j|j kr|j}| }dt|||t|dVq |jdkr.|j}| }t|dkrdt|||t|dVnt||d|dq |jdkrF|Vq |jdkrd| dddVq |jdkr| ddd Vq |jd!kr| dd"d#Vq |jdkr |dkrd$d%|jd|jdV|n,|jdkr|j}n |jd}t|dd&dq t|j|jd'|jdq d(d)|j|jdVdS)*NtypevaluestartendZunquoted_identifier[rflattenz[]?filterz[?Zlbracket'|orpipe&andZexpref`number-zUnknown token '%s'Zlexer_positionZ 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_charpositionrN4/tmp/pip-install-6_kvzl1k/jmespath/jmespath/lexer.pytokenizes                                 zLexer.tokenizecCs*|j}|j}||jkr&||j7}q |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}||j|krp|jdkr6|d7}||jdkr\t||j|dd|d||j7}|q||S)Nr7\zUnclosed %s delimiterr*)r;r<r9rrQ)rI delimiterrrKrNrNrO_consume_untils       zLexer._consume_untilc Cs|j}|ddd}z t|}Wnftk rz td|}tdtWn0tk rt ||j |dd|dYnXYnX|j|}d|||dS) Nr'z\`z"%s"z deprecated string literal syntaxz Bad token %sr*literalr) r;rVreplacer ValueErrorlstripwarningswarnPendingDeprecationWarningrrQ)rIrlexemeZ parsed_json token_lenrNrNrOrCs(   zLexer._consume_literalc Cs~|j}d|dd}z|j|}dt|||dWStk rx}z$t|dd}t|||dW5d}~XYnXdS)Nr,Zquoted_identifierrrrr*)r;rVrrYstrsplitr)rIrr^r_e error_messagerNrNrOrGs z Lexer._consume_quoted_identifiercCs0|j}|ddd}|j|}d|||dS)Nr!z\'rWr)r;rVrX)rIrr^r_rNrNrOrAs z!Lexer._consume_raw_string_literalcCsH|j}|j}|}||kr:||||||ddS||||dS)Nrr)r;r9r<)rIexpectedZ match_typeZ else_typerr rLrNrNrOrBszLexer._match_or_elseN)__name__ __module__ __qualname__setstring ascii_lettersr=digitsr>rDr@r:rPrEr8r<rVrCrGrArBrNrNrNrOrs0  W  r) rir[jsonrZjmespath.exceptionsrrobjectrrNrNrNrOs