Файловый менеджер - Редактировать - /home/digitalm/venv/lib/python3.7/site-packages/openpyxl/formula/__pycache__/tokenizer.cpython-37.pyc
Назад
B �5�g ; � @ s@ d Z ddlZG dd� de�ZG dd� de�ZG dd� de�ZdS ) z� This module contains a tokenizer for Excel formulae. The tokenizer is based on the Javascript tokenizer found at http://ewbi.blogs.com/develops/2004/12/excel_formula_p.html written by Eric Bachtal � Nc @ s e Zd ZdZdS )�TokenizerErrorz$Base class for all Tokenizer errors.N)�__name__� __module__�__qualname__�__doc__� r r �P/home/digitalm-up/venv/lib/python3.7/site-packages/openpyxl/formula/tokenizer.pyr s r c @ s� e Zd ZdZe�d�Ze�d�Ze�d�e�d�d�ZdZ dZ d d � Zdd� Zd d� Z dd� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Zd'd d!�Zd"d#� Zd$d%� Zd&S )(� Tokenizera^ A tokenizer for Excel worksheet formulae. Converts a str string representing an Excel formula (in A1 notation) into a sequence of `Token` objects. `formula`: The str string to tokenize Tokenizer defines a method `._parse()` to parse the formula into tokens, which can then be accessed through the `.items` attribute. z^[1-9](\.[0-9]+)?[Ee]$z[ \n]+z"(?:[^"]*"")*[^"]*"(?!")z'(?:[^']*'')*[^']*'(?!'))�"�')z#NULL!z#DIV/0!z#VALUE!z#REF!z#NAME?z#NUM!z#N/Az #GETTING_DATAz,;}) +-*/^&=><%c C s* || _ g | _g | _d| _g | _| �� d S )Nr )�formula�items�token_stack�offset�token�_parse)�selfr r r r �__init__. s zTokenizer.__init__c C sF | j r dS | jsdS | jd dkr2| j d7 _ n| j�t| jtj�� dS d| jfd| jfd| jfd| j fd | j fd | j fd| jfd| jfd | j ff }i }x"|D ]\}}|�t�||�� q�W xx| j t| j�k �r8| �� r�q�| j| j }|| jkr�| �� ||k�r| j || � 7 _ q�| j�|� | j d7 _ q�W | �� dS )z5Populate self.items with the tokens from the formula.Nr �=� z"'�[�#� � z +-*/^&=><%z{(z)}z;,)r r r �append�Token�LITERAL� _parse_string�_parse_brackets�_parse_error�_parse_whitespace�_parse_operator� _parse_opener� _parse_closer�_parse_separator�update�dict�fromkeys�len�check_scientific_notation�TOKEN_ENDERS� save_tokenr )r Z consumersZ dispatcher�charsZconsumer� curr_charr r r r 7 s>