�
���g�? � �\ � d Z ddlZddlZddlmZ ddlmZ ddlmZ i Z G d� d� � Z dS )zGprovides the Lexer class for parsing template strings into parse trees.� N)�
exceptions)� parsetree)�adjust_whitespacec � � e Zd Z dd�Zed� � � Zdd�Zd� Zd� Zd� Z e
j d� � Zd � Z
d
� Zd� Zd� Zd
� Zd� Zd� Zd� Zd� Zd� Zd� ZdS )�LexerNc �& � || _ || _ t j | j � � | _ d| _ d| _ d| _ d| _ g | _ g | _
g | _ || _ |� g | _
d S t |d� � s
|g| _
d S || _
d S )N� r �__iter__)�text�filenamer �TemplateNode�template�matched_lineno�matched_charpos�lineno�match_position�tag�control_line�
ternary_stack�encoding�preprocessor�hasattr)�selfr r �input_encodingr s �Z/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/mako/lexer.py�__init__zLexer.__init__ s� � � �� � ��
�!�.�t�}�=�=��
���� ������������������&��
��� "�D������z�2�2� -�!-��D���� ,�D���� c �8 � | j | j | j | j d�S )N)�sourcer �posr )r r r r )r s r �exception_kwargszLexer.exception_kwargs* s) � � �i��)��'��
�
�
�
r c �� � t ||f }nG# t $ r: |rt j ||� � nt j |� � }|t ||f<