B \~!@s@ddlZddlZddlmZddlmZmZGdddeZdS)N)loads) LexerErrorEmptyExpressionErrorc @seZdZeejdZeejejdZeejZ edZ ddddddd d d d d Z ddZ ddZ ddZddZddZddZddZddZddZd S)!Lexer_z dotZstarZrbracketcommaZcoloncurrentZlparenZrparenZlbraceZrbrace) .*],:@(){}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[r flattenz[]?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_charpositionrL2/tmp/pip-build-uw_ogi45/jmespath/jmespath/lexer.pytokenizes                          zLexer.tokenizecCs.|j}|j}x||jkr(||j7}qW|S)N)r9r7r:rB)rGrrIrLrLrMrCqs zLexer._consume_numbercCs@|s td|_||_t|j|_|j|j|_t|j|_dS)Nr)rr9 _expressionlist_charsr7r=rF)rGrHrLrLrMr6xs z Lexer._initialize_for_expressioncCs:|j|jdkrd|_n|jd7_|j|j|_|jS)Nr)r9rFr7rQ)rGrLrLrMr:s z Lexer._nextcCs|j}d}|x`|j|krr|jdkr8|d7}||jdkr^t||j|dd|d||j7}|qW||S)Nr5\zUnclosed %s delimiter)r'r(r))r9r:r7rrO)rG delimiterrrIrLrLrM_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) r9rTreplacer ValueErrorlstripwarningswarnPendingDeprecationWarningrrO)rGrlexemeZ parsed_json token_lenrLrLrMrAs     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))r9rTrrWstrsplitr)rGrr\r]e error_messagerLrLrMrEs  z Lexer._consume_quoted_identifiercCs0|j}|ddd}|j|}d|||dS)Nrz\'rU)rrrr)r9rTrV)rGrr\r]rLrLrMr?s  z!Lexer._consume_raw_string_literalcCsH|j}|j}|}||kr:||||||ddS||||dS)Nr)rrrr)r9r7r:)rGexpectedZ match_typeZ else_typerr rJrLrLrMr@szLexer._match_or_elseN)__name__ __module__ __qualname__setstring ascii_lettersr;digitsr<rBr>r8rNrCr6r:rTrArEr?r@rLrLrLrMrs. W  r) rgrYjsonrZjmespath.exceptionsrrobjectrrLrLrLrMs