U
    luf,"                     @   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-2023 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                   @   s   e Zd ZdZdZdZdgZdgZddgZe	dd	d
Z
dd Zdd Z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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d.fd/ejed#d(fd0ejed#d*fd1ejed#d,fd2ejed#d.fd3ejfd4ejfd5ejfd6efed7d8efd9efd:e fed;d<e!j"fgd=e#j$fd>e#j$fd?e#j%fd@e#j&fdAe#j'fdBe#j(fged#gdCej)fgdDej)fedEgeejeejeejeejd1ejdFfdGej)fedHgd2ejdFfdIej)fedJgd1ejdFfdGej)fedKgd2ejdFfdIej)fedLgd/ejdFfedHdMejfgd0ejdFfedJdMejfgd/ejdFfedKdMejfgd0ejdFfedLdMejfgdNe dOfdPej*dFfdQej*dFfdefedgdNe dOfdRe dFfdefedge	dSd	d
efe	dTd	d
ej+fge	dUd	d
e!j,fgdVej-fdWej-dXfdYej-fdZej-dFfgd[e!j.dFfgd\Z/d]S )^r   zy
    For PRQL source code.

    .. versionadded:: 2.17

    grammar: https://github.com/PRQL/prql/tree/main/grammars
    ZPRQLzhttps://prql-lang.org/Zprqlz*.prqlzapplication/prqlzapplication/x-prql)
boolintZint8Zint16Zint32Zint64Z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   8/tmp/pip-unpacked-wheel-7eq1ciah/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_rules6   s
    
zPrqlLexer.fstring_rulesz#!.*z#.*z\s+z^(\s*)(module)(\s*)importsz^prql Z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)*z.\\([\\bfnrt"\']|\n|x[a-fA-F0-9]{2}|[0-7]{1,3})z"\\(N\{.*?\}|u\{[a-fA-F0-9]{1,6}\})bytesescapez#popz\\\\|\\"|\\\nfstrings-doublez\\\\|\\'|\\\nfstrings-singlestrings-doublestrings-singlez\nz[{([]expr-inside-fstring-innerz	(=\s*)?\}z(=\s*)?:z[])}])ZintoZcasetypemoduleZinternal)truefalsenull)minmaxsumZaveragestddevZeveryanyZconcat_arraycountZlagZleadfirstlastZrankZ
rank_denseZ
row_numberroundasinZtuple_everyZ	tuple_mapZ	tuple_zip_eqZ_is_nullZ	from_textlowerupperZread_parquetZread_csvz-(?!\})z\{-commentz[^-}]z-\}z\w+(\.\w+)*)rootr$   r1   r%   r3   r*   r5   r4   r7   r6   r(   r)   r-   r.   r&   r'   r+   r,   r    r8   r#   r2   rL   r"   N)0__name__
__module____qualname____doc__nameurlaliases	filenames	mimetypesr   ZbuiltinTypesr   r!   r   ZDocr   Singler   r   r	   	NamespaceTypeZReservedZDeclarationr   ZAffixDoubler   r   Dater   r   r   r
   Variabler   ZFloatOctZBinZHexZIntegerZEscaper   ConstantZFunctionZ	MultilineZClasstokensr   r   r   r   r      sV      5








  


 N)rQ   Zpygments.lexerr   r   r   r   r   Zpygments.tokenr   r   r	   r
   r   r   r   r   r   r   __all__r   r   r   r   r   <module>   s   
0