
    |e                     l    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e      Zy)z
    pygments.lexers.ecl
    ~~~~~~~~~~~~~~~~~~~

    Lexers for the ECL language.

    :copyright: Copyright 2006-2023 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                      e Zd ZdZdZdZdgZdgZdgZe	j                  e	j                  z  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j6                  fgdej:                  fd eej>                  e      fg e dd       ejB                  f e d!d       ejB                  fg e d"d       ejD                  fgded#fded#fd$efgd%Z#d& Z$y')(r   zU
    Lexer for the declarative big-data ECL language.

    .. versionadded:: 1.5
    ECLzJhttps://hpccsystems.com/training/documentation/ecl-language-reference/htmleclz*.eclzapplication/x-ecl
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AVErB   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/   GRAPHrT   HASHHASH32HASH64HASHCRCHASHMD5HAVINGIFINDEX	INTFORMATISVALIDITERATEJOIN
KEYUNICODELENGTHLIBRARYr`   LNrb   LOGLOOPMAPMATCHEDMATCHLENGTHMATCHPOSITION	MATCHTEXTMATCHUNICODEMAXMERGE	MERGEJOINMINNOLOCALNONEMPTY	NORMALIZEPARSEr{   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STEPPEDr5   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                 @    d}d| v r|dz  }d| v r|dz  }d| v r|dz  }|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results     5/usr/lib/python3/dist-packages/pygments/lexers/ecl.pyanalyse_textzECLLexer.analyse_text   s>     4<dNFd?dNFD=dNF    N)%__name__
__module____qualname____doc__nameurlaliases	filenames	mimetypes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      s    D
VCgG	I$%IMMBLL(E L!L!

 Z ',g.?.?@
 GJK FO68$FH%2FLLA'6 &**-fjj)&..)"H-{+4 
" w'
  3 348 gllJ/1
    )./   "  +0!1" #
<  6, ?D-E. ]]/
6 66"FF# 
w`FDr  )r  r%  pygments.lexerr   r   r   r   pygments.tokenr   r   r	   r
   r   r   r   r   __all__r   r  r  r  <module>r8     s;    
 ? ?$ $ $ ,}z }r  