Файловый менеджер - Редактировать - /opt/imh-python/lib/python3.9/site-packages/pygments/lexers/__pycache__/sql.cpython-39.pyc
Ðазад
a a�h� � @ sb d Z ddlZddlZddlmZmZmZmZmZ ddl m Z mZmZm Z mZmZmZmZmZmZmZ ddlmZmZ ddlmZmZmZmZmZ ddlmZm Z m!Z!m"Z"m#Z# ddlm$Z$ dd lm%Z% g d �Z&e�'d�Z(e�'d�Z)e�'d ej*�Z+e�'dej*�Z,e�'d�Z-e�'d�Z.e�'dej*�Z/e�'dej*�Z0e�'d�Z1e$j2e$j3 e$j4 Z5dd� Z6G dd� d�Z7G dd� de7e�Z8G dd� de7e�Z9G dd� de7e�Z:e�'d�Z;e�'d�Z<e�'d �Z=e�'d!�Z<e�'d"�Z>e�'d#�Z?G d$d%� d%�Z@G d&d'� d'e�ZAG d(d)� d)e�ZBG d*d+� d+e�ZCG d,d-� d-e�ZDG d.d/� d/e�ZEG d0d1� d1e�ZFG d2d3� d3e�ZGG d4d5� d5e�ZHdS )6a� pygments.lexers.sql ~~~~~~~~~~~~~~~~~~~ Lexers for various SQL dialects and related interactive sessions. Postgres specific lexers: `PostgresLexer` A SQL lexer for the PostgreSQL dialect. Differences w.r.t. the SQL lexer are: - keywords and data types list parsed from the PG docs (run the `_postgres_builtins` module to update them); - Content of $-strings parsed using a specific lexer, e.g. the content of a PL/Python function is parsed using the Python lexer; - parse PG specific constructs: E-strings, $-strings, U&-strings, different operators and punctuation. `PlPgsqlLexer` A lexer for the PL/pgSQL language. Adds a few specific construct on top of the PG SQL lexer (such as <<label>>). `PostgresConsoleLexer` A lexer to highlight an interactive psql session: - identifies the prompt and does its best to detect the end of command in multiline statement where not all the lines are prefixed by a prompt, telling them apart from the output; - highlights errors in the output and notification levels; - handles psql backslash commands. `PostgresExplainLexer` A lexer to highlight Postgres execution plan. The ``tests/examplefiles`` contains a few test files with data to be parsed by these lexers. :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. � N)�Lexer� RegexLexer� do_insertions�bygroups�words)�Punctuation� Whitespace�Text�Comment�Operator�Keyword�Name�String�Number�Generic�Literal)�get_lexer_by_name� ClassNotFound)�KEYWORDS� DATATYPES�PSEUDO_TYPES�PLPGSQL_KEYWORDS�EXPLAIN_KEYWORDS)�MYSQL_CONSTANTS�MYSQL_DATATYPES�MYSQL_FUNCTIONS�MYSQL_KEYWORDS�MYSQL_OPTIMIZER_HINTS)�_googlesql_builtins)�_tsql_builtins) �GoogleSqlLexer� PostgresLexer�PlPgsqlLexer�PostgresConsoleLexer�PostgresExplainLexer�SqlLexer�TransactSqlLexer� MySqlLexer�SqliteConsoleLexer�RqlLexerz.*? z^(?:sqlite| ...)>(?= )z\s+LANGUAGE\s+'?(\w+)'?z\bDO\bz\[[a-zA-Z_]\w*\]z`[a-zA-Z_]\w*`z\bgo\bz \bdeclare\s+@z@[a-zA-Z_]\w*\bc c s� d}t �| j|�� |�� d � �}|dur>| �|�d��}n|tt �| jtd|� � d �|� � � ��}|r�| �|d �d��}n8tt �| jtd|� � d �|� � � ��}|r�| �d�}|� d�t|�d�fV |� d�tj|�d�fV |� d �t|�d �fV |�r"|� |�d ��E dH n|� d �t|�d �fV |� d�t|�d�fV |� d�tj|�d�fV |� d �t|�d �fV dS )z�Parse the content of a $-string using a lexer The lexer is chosen looking for a nearby LANGUAGE or assumed as plpgsql if inside a DO statement and no LANGUAGE has been found. N�d � r ���� �plpgsql� � � � � � )�language_re�match�text�end� _get_lexer�group�list�finditer�max�start�do_rer � Delimiter�get_tokens_unprocessed)�lexerr6 �lx�m� rE ��/root/rpmbuild/BUILDROOT/imh-python39-modules-3.9.7-92.el8.x86_64/opt/imh-python/lib/python3.9/site-packages/pygments/lexers/sql.py�language_callbackY s. �� rG c s( e Zd ZdZ� fdd�Zdd� Z� ZS )�PostgresBasea� Base class for Postgres-related lexers. This is implemented as a mixin to avoid the Lexer metaclass kicking in. this way the different lexer don't have a common Lexer ancestor. If they had, _tokens could be created on this ancestor and not updated for the other classes, resulting e.g. in PL/pgSQL parsed as SQL. This shortcoming seem to suggest that regexp lexers are not really subclassable. c '