File manager - Edit - /usr/local/CyberPanel/lib/python3.10/site-packages/jmespath/__pycache__/parser.cpython-310.pyc
Back
o �h�J � @ sp d Z ddlZddlmZ ddlmZ ddlmZ ddlmZ ddlmZ G dd � d e �Z eG d d� de ��ZdS )a� Top down operator precedence parser. This is an implementation of Vaughan R. Pratt's "Top Down Operator Precedence" parser. (http://dl.acm.org/citation.cfm?doid=512927.512931). These are some additional resources that help explain the general idea behind a Pratt parser: * http://effbot.org/zone/simple-top-down-parsing.htm * http://javascript.crockford.com/tdop/tdop.html A few notes on the implementation. * All the nud/led tokens are on the Parser class itself, and are dispatched using getattr(). This keeps all the parsing logic contained to a single class. * We use two passes through the data. One to create a list of token, then one pass through the tokens to create the AST. While the lexer actually yields tokens, we convert it to a list so we can easily implement two tokens of lookahead. A previous implementation used a fixed circular buffer, but it was significantly slower. Also, the average jmespath expression typically does not have a large amount of token so this is not an issue. And interestingly enough, creating a token list first is actually faster than consuming from the token iterator one token at a time. � N)�lexer)�with_repr_method)�ast)� exceptions)�visitorc @ sB e Zd Zi dd�dd�dd�dd�dd�dd�dd�d d�d d�dd�dd�d d�dd�dd�dd�dd�dd�ddddddddddddd��Zd Zi Zd!Zd�d"d#�Zd$d%� Zd&d'� Z d(d)� Z d�d*d+�Zd,d-� Zd.d/� Z d0d1� Zd2d3� Zd4d5� Zd6d7� Zd8d9� Zd:d;� Zd<d=� Zd>d?� Zd@dA� ZdBdC� ZdDdE� ZdFdG� ZdHdI� ZdJdK� ZdLdM� ZdNdO� ZdPdQ� ZdRdS� ZdTdU� Z dVdW� Z!dXdY� Z"dZd[� Z#d\d]� Z$d^d_� Z%d`da� Z&dbdc� Z'ddde� Z(dfdg� Z)dhdi� Z*djdk� Z+dldm� Z,dndo� Z-dpdq� Z.drds� Z/d�dudv�Z0dwdx� Z1dydz� Z2d{d|� Z3d}d~� Z4dd�� Z5d�d�� Z6d�d�� Z7d�d�� Z8e9d�d�� �Z:dtS )��Parser�eofr �unquoted_identifier�quoted_identifier�literal�rbracket�rparen�comma�rbrace�number�current�expref�colon�pipe� �or� �and� �eq� �gt� � � �( �- �2 �7 �<