B d~!@s@ddlZddlZddlmZddlmZmZGdddeZdS)N)loads) LexerErrorEmptyExpressionErrorc @seZdZeejdZeejejdZeejZ edZ ddddddd d d d d Z ddZ ddZ ddZddZddZddZddZddZddZd S)!Lexer_z dotstarZrbracketcommacoloncurrentZlparenZrparenZlbracerbrace) .*],:@(){}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_charpositionrO5/tmp/pip-target-jj3kjtpb/lib/python/jmespath/lexer.pytokenizes                          zLexer.tokenizecCs.|j}|j}x||jkr(||j7}qW|S)N)r<r:r=rE)rJrrLrOrOrPrFqs zLexer._consume_numbercCs@|s td|_||_t|j|_|j|j|_t|j|_dS)Nr)rr< _expressionlist_charsr:r@rI)rJrKrOrOrPr9xs z Lexer._initialize_for_expressioncCs:|j|jdkrd|_n|jd7_|j|j|_|jS)Nr)r<rIr:rT)rJrOrOrPr=s z Lexer._nextcCs|j}d}|x`|j|krr|jdkr8|d7}||jdkr^t||j|dd|d||j7}|qW||S)Nr8\zUnclosed %s delimiter)r*r+r,)r<r=r:rrR)rJ delimiterrrLrOrOrP_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<rWreplacer ValueErrorlstripwarningswarnPendingDeprecationWarningrrR)rJrlexemeZ parsed_json token_lenrOrOrPrDs     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<rWrrZstrsplitr)rJrr_r`e error_messagerOrOrPrHs  z Lexer._consume_quoted_identifiercCs0|j}|ddd}|j|}d|||dS)Nr!z\'rX)rrrr)r<rWrY)rJrr_r`rOrOrPrBs  z!Lexer._consume_raw_string_literalcCsH|j}|j}|}||kr:||||||ddS||||dS)Nr)rrrr)r<r:r=)rJexpectedZ match_typeZ else_typerr rMrOrOrPrCszLexer._match_or_elseN)__name__ __module__ __qualname__setstring ascii_lettersr>digitsr?rErAr;rQrFr9r=rWrDrHrBrCrOrOrOrPrs. W  r) rjr\jsonrZjmespath.exceptionsrrobjectrrOrOrOrPs