o
    Th                     @   sf   d Z ddlZddl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 dgZG dd deZdS )z
    pygments.lexers.ecl
    ~~~~~~~~~~~~~~~~~~~

    Lexers for the ECL language.

    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    N)
RegexLexerincludebygroupswords)CommentOperatorKeywordNameStringNumberPunctuation
WhitespaceECLLexerc                   @   s@  e Zd ZdZdZdZdgZdgZdgZdZ	e
je
jB Zeded	gd
efdejfdejfgededededdedfdedfdejfdejfdejfdejfdejfdefdefdefgdejfgdejfdeej efge!dd d!ej"fe!d"d d!ej"fge!d#d d!ej#fgded$fded$fd%efgd&Z$d'd( Z%d)S )*r   z:
    Lexer for the declarative big-data ECL language.
    ECLzJhttps://hpccsystems.com/training/documentation/ecl-language-reference/htmleclz*.eclzapplication/x-eclz1.5
whitespace
statementsz\s+z\/\/.*z/(\\\n)?\*(.|\n)*?\*(\\\n)?/typeskeywords	functionshash"stringz\'z"(\d+\.\d*|\.\d+|\d+)e[+-]?\d+[lu]*z(\d+\.\d*|\.\d+|\d+f)f?z0x[0-9a-f]+[lu]*z0[0-7]+[lu]*z\d+[lu]*z[~!%^&*+=|?:<>/-]+z[{}()\[\],.;]z	[a-z_]\w*z^#.*$z(RECORD|END)\Dz((?:ASCII|BIG_ENDIAN|BOOLEAN|DATA|DECIMAL|EBCDIC|INTEGER|PATTERN|QSTRING|REAL|RECORD|RULE|SET OF|STRING|TOKEN|UDECIMAL|UNICODE|UNSIGNED|VARSTRING|VARUNICODE)\d*)(\s+))APPLYASSERTBUILD
BUILDINDEXEVALUATEFAILKEYDIFFKEYPATCHLOADXMLNOTHORNOTIFYOUTPUTPARALLEL
SEQUENTIALSOAPCALL
CHECKPOINT
DEPRECATEDFAILCODEFAILMESSAGEFAILUREGLOBALINDEPENDENT	ONWARNINGPERSISTPRIORITYRECOVERYSTOREDSUCCESSWAITWHENz\b)suffix)eALLANDANYASATMOSTBEFOREzBEGINC++BESTBETWEENCASECONSTCOUNTERCSVDESCENDENCRYPTzENDC++ENDMACROEXCEPT	EXCLUSIVEEXPIREEXPORTEXTENDFALSEFEWFIRSTFLATFULLFUNCTIONGROUPHEADERHEADINGHOLEIFBLOCKIMPORTINJOINEDKEEPKEYEDLASTLEFTLIMITLOADLOCALLOCALELOOKUPMACROMANYMAXCOUNT	MAXLENGTHzMIN SKEWMODULE	INTERFACENAMEDNOCASENOROOTNOSCANNOSORTNOTOFONLYOPTOROUTER	OVERWRITEPACKED	PARTITIONPENALTYPHYSICALLENGTHPIPEQUOTERELATIONSHIPREPEATRETURNRIGHTSCANSELF	SEPARATORSERVICESHAREDSKEWSKIPSQLSTORE
TERMINATORTHOR	THRESHOLDTOKEN	TRANSFORMTRIMTRUETYPEUNICODEORDERUNSORTEDVALIDATEVIRTUALWHOLEWILDWITHINXMLXPATH__COMPRESSED__)ABSACOSALLNODESASCIIASINASSTRINGATANATAN2AVEr@   CHOOSECHOOSEN
CHOOSESETSCLUSTERSIZECOMBINECORRELATIONCOSCOSHCOUNT
COVARIANCECRONDATASETDEDUPDEFINEDENORMALIZE
DISTRIBUTEDISTRIBUTEDDISTRIBUTIONEBCDICENTHERRORr   EVENT
EVENTEXTRA	EVENTNAMEEXISTSEXPr*   r+   FETCHFROMUNICODE
GETISVALIDr-   GRAPHrR   HASHHASH32HASH64HASHCRCHASHMD5HAVINGIFINDEX	INTFORMATISVALIDITERATEJOIN
KEYUNICODELENGTHLIBRARYr^   LNr`   LOGLOOPMAPMATCHEDMATCHLENGTHMATCHPOSITION	MATCHTEXTMATCHUNICODEMAXMERGE	MERGEJOINMINNOLOCALNONEMPTY	NORMALIZEPARSEry   POWERPRELOADPROCESSPROJECTPULLRANDOMRANGERANKRANKED
REALFORMATRECORDOF	REGEXFINDREGEXREPLACEREGROUPREJECTEDROLLUPROUNDROUNDUPROWROWDIFFSAMPLESETSINSINHSIZEOFr'   SORTSORTEDSQRTSTEPPEDr3   SUMTABLETANTANHTHISNODETOPN	TOUNICODETRANSFERr   TRUNCATETYPEOFUNGROUPr   VARIANCEWHICHWORKUNIT	XMLDECODE	XMLENCODEXMLTEXT
XMLUNICODEz#popz[^"\']+)rootr   r   r   r   r   r   r   c                 C   s8   d}d| v r
|d7 }d| v r|d7 }d| v r|d7 }|S )zThis is very difficult to guess relative to other business languages.
        -> in conjunction with BEGIN/END seems relatively rare though.r   z->g{Gz?BEGINEND )textresultr  r  T/home/air/segue/gemini/back/venv/lib/python3.10/site-packages/pygments/lexers/ecl.pyanalyse_text   s   zECLLexer.analyse_textN)&__name__
__module____qualname____doc__nameurlaliases	filenames	mimetypesversion_addedre
IGNORECASE	MULTILINEflagsr   r   r   Single	Multiliner
   r   FloatHexOctIntegerr   r   r	   Preprocr   Declarationr   Typer   ReservedFunctiontokensr  r  r  r  r  r      sz    
	b)r  r"  pygments.lexerr   r   r   r   pygments.tokenr   r   r   r	   r
   r   r   r   __all__r   r  r  r  r  <module>   s    
(