o
    Th+"                     @   sj   d Z ddlmZmZmZmZmZ ddlmZm	Z	m
Z
mZmZmZmZmZmZmZ dgZG dd deZdS )z
    pygments.lexers.prql
    ~~~~~~~~~~~~~~~~~~~~

    Lexer for the PRQL query language.

    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    )
RegexLexercombinedwordsincludebygroups)
CommentLiteralKeywordNameNumberOperatorPunctuationStringText
Whitespace	PrqlLexerc                   @   sl  e Zd ZdZdZdZdgZdgZddgZdZ	e
d	d
dZdd Zdd Zi ddejfdejfdefdeeejedfeejfdejfdejfededdefg
ddeejejeddfdeejejeddfd eejejedd!fd"eejejedd#fd$eejejed%dfd&eejejed%dfd'eejejed%d!fd(eejejed%d#fd)eejejd*fd+eejejd,fd-eejejd.fd/eejejd0fd1ejed%d*fd2ejed%d,fd3ejed%d.fd4ejed%d0fd5ejfd6ejfd7ejfd8efed9d:e fd;e fd<e!fed=d>e"j#fgd9d?e$j%fd@e$j%fdAe$j&fdBe$j'fdCe$j(fdDe$j)fgded%gdEdFej*fgd%dGej*fedEgdHeejdIeejdJeejdKeejd!d3ejdLfdMej*fedIgd#d4ejdLfdNej*fedHgd.d3ejdLfdMej*fedKgd0d4ejdLfdNej*fedJgdd1ejdLfedIdOejfgdd2ejdLfedHdOejfgd*d1ejdLfedKdOejfgd2ejdLfedJdOejfgdPe!dQfdRej+dLfdSej+dLfdefedgdPe!dQfdTe!dLfdefedge
dUd
defe
dVd
dej,fge
dWd
de"j-fgdXej.fdYej.dZfd[ej.fd\ej.dLfgd]e"j/dLfgd^Z0d_S )`r   z]
    For PRQL source code.

    grammar: https://github.com/PRQL/prql/tree/main/grammars
    PRQLzhttps://prql-lang.org/prqlz*.prqlzapplication/prqlzapplication/x-prqlz2.17)
boolintint8int16int32int64int128floattextsetz\b)suffixc                 C   s   dt jfd| fd| fd| fgS )Nz]\{((\w+)((\.\w+)|(\[[^\]]+\]))*)?(\:(.?[<>=\^])?[-+ ]?#?0?(\d+)?,?(\.\d+)?[E-GXb-gnosx%]?)?\}z[^\\\'"%{\n]+[\'"\\]z%|(\{{1,2})r   Interpolttype r$   U/home/air/segue/gemini/back/venv/lib/python3.10/site-packages/pygments/lexers/prql.pyinnerstring_rules(   s   zPrqlLexer.innerstring_rulesc                 C   s"   dt jfdt jdfd| fd| fgS )Nz\}z\{expr-inside-fstringz[^\\\'"{}\n]+r   r    r"   r$   r$   r%   fstring_rules5   s
   
zPrqlLexer.fstring_rulesrootz#!.*z#.*z\s+z^(\s*)(module)(\s*)importsz^prql letkeywordsexprz^[A-Za-z_][a-zA-Z0-9_]*z(f)(""")fstringescapetdqfz(f)(''')tsqfz(f)(")dqfz(f)(')sqfz(s)(""")stringescapez(s)(''')z(s)(")z(s)(')z(?i)(r)(""")tdqsz(?i)(r)(''')tsqsz
(?i)(r)(")dqsz
(?i)(r)(')sqsz"""z'''"'zQ@\d{4}-\d{2}-\d{2}T\d{2}(:\d{2})?(:\d{2})?(\.\d{1,6})?(Z|[+-]\d{1,2}(:\d{1,2})?)?z@\d{4}-\d{2}-\d{2}z?@\d{2}(:\d{2})?(:\d{2})?(\.\d{1,6})?(Z|[+-]\d{1,2}(:\d{1,2})?)?z[^\S\n]+numbersz&->|=>|==|!=|>=|<=|~=|&&|\|\||\?\?|\/\/z[-~+/*%=<>&^|.@]z[]{}:(),;[]	functionsz[A-Za-z_][a-zA-Z0-9_]*zT(\d(?:_?\d)*\.(?:\d(?:_?\d)*)?|(?:\d(?:_?\d)*)?\.\d(?:_?\d)*)([eE][+-]?\d(?:_?\d)*)?z!\d(?:_?\d)*[eE][+-]?\d(?:_?\d)*j?z0[oO](?:_?[0-7])+z0[bB](?:_?[01])+z0[xX](?:_?[a-fA-F0-9])+z\d(?:_?\d)*bytesescapez.\\([\\bfnrt"\']|\n|x[a-fA-F0-9]{2}|[0-7]{1,3})z"\\(N\{.*?\}|u\{[a-fA-F0-9]{1,6}\})zfstrings-singlezfstrings-doublezstrings-singlezstrings-doublez#popz\\\\|\\"|\\\nz\\\\|\\'|\\\nz\nz[{([]expr-inside-fstring-innerz	(=\s*)?\}z(=\s*)?:z[])}])intocasetypemoduleinternal)truefalsenull)minmaxsumaveragestddeveveryanyconcat_arraycountlagleadfirstlastrank
rank_dense
row_numberroundasintuple_every	tuple_map	tuple_zip_eq_is_null	from_textlowerupperread_parquetread_csvz-(?!\})z\{-commentz[^-}]z-\}z\w+(\.\w+)*)r5   r'   r=   r,   r;   rc   r*   N)1__name__
__module____qualname____doc__nameurlaliases	filenames	mimetypesversion_addedr   builtinTypesr&   r(   r   Docr   Singler   r   r	   	NamespaceTypeReservedDeclarationr   AffixDoubler   r   Dater   r   r   r
   Variabler   FloatOctBinHexIntegerEscaper!   ConstantFunction	MultilineClasstokensr$   r$   r$   r%   r      s   PY\_
c
d
e
fg
l
q
v
{
 
  
  



 N)rg   pygments.lexerr   r   r   r   r   pygments.tokenr   r   r	   r
   r   r   r   r   r   r   __all__r   r$   r$   r$   r%   <module>   s
    
0