
    |e'                         d Z ddlmZ ddlmZmZ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e      Zy)z
    pygments.lexers.fantom
    ~~~~~~~~~~~~~~~~~~~~~~

    Lexer for the Fantom language.

    :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    )Template)
RegexLexerincludebygroupsusingthisdefaultwords)
TextCommentOperatorKeywordNameStringNumberPunctuationLiteral
WhitespaceFantomLexerc            !       J
   e Zd ZdZdZdgZdgZdgZd Zi dde	j                  fd	e	j                  fd
e	j                  fde	j                  fgddefdefdej                  fdej                  fdej                   fdej$                  fdedfdedfdej*                  fd eej0                  eej2                  eee      fd eej0                  eej2                  eej4                        fdef ed       e eed      e      fdef ed       e eed      e      fgdd ej<                  fd!ej<                  fd"ej<                  fd#ej>                  fd$ej>                  fded%fd&efgdd ej<                  fd!ej<                  fd"ej<                  fd#ej>                  fd$ej>                  fded%fd&ej@                  fgd'd(efgd)d*efgd+d,efgd-d.efgd/ e!d0d1d12      efd3ejD                  jF                  fgd4d5e$fgdd6ef ed7      ej2                  f e%d%      gd8 e&d       e&d'       e&d)       e&d+       e&d-       e&d       e&d/       e&d4      d9ej0                  d:fd;ejN                  d<fd= eee(ej2                        d>f ed?       e eed      e(ejR                  e(e$      f ed@       eejR                  e(e$      f edA       ee$ej4                  e(e      dBf edC       ee$ej4                        fdD eee(ej4                  e(e      dEf edF       e eed      e(ej4                  e(e      dEf edG       e eed      e(ejR                  e(e      f edH       e eed      e(ejR                  e(ee( eed      e      f edI       e eed      e(ejR                  e(e      f edJ       e eed      e(ejR                        fdKedBfdLedMfdNe(fd&e*fgdBdOed%f e&d8      gdEdOed%f edP       e eed      e(ejR                  e(e      d%f e&d8      gdMdQed%f e&d8      gd>dNe(fdRefdS eej0                  eej2                        fdLed%fgd:dTe(fdU eee	j                  e      fdV eeej0                  e      fdWedXf e%d%      gdTe(fdY eejV                  e(ej2                        dZfd[ej2                  f e%dZ      gdNe(fdLed\f e%d%      g e&d       e&d       e&d4      dNe(fd] ee(ee(e$      fdQed%fdNe(fd&e*fgd^Z,y_)`r   z<
    For Fantom source code.

    .. versionadded:: 1.5
    Fantomfanz*.fanzapplication/x-fantomc                 P    t        |       j                  t        dddd            S )Nz	[\"\w\.]+z\n|;z[a-zA-Z_]\w*z#(?:\[|[a-zA-Z_]|\|)[:\w\[\]|\->?]*?)podeosidtype)r   
substitutedict)strs    8/usr/lib/python3/dist-packages/pygments/lexers/fantom.pyszFantomLexer.s!   s/    }'' " <	
 		
    commentsz(?s)/\*.*?\*/z//.*?$z\*\*.*?$z#.*$literalsz \b-?[\d_]+(ns|ms|sec|min|hr|day)z(\b-?[\d_]*\.[\d_]+(ns|ms|sec|min|hr|day)z\b-?(\d+)?\.\d+(f|F|d|D)?z\b-?0x[0-9a-fA-F_]+z
\b-?[\d_]+z'\\.'|'[^\\]'|'\\u[0-9a-f]{4}'"	insideStr`	insideUriz\b(true|false|null)\bz"(?:(\w+)(::))?(\w+)(<\|)(.*?)(\|>)z(?:(\w+)(::))?(\w+)?(#)(\w+)?z\[,\]z($type)(\[,\])inType)statez\[:\]z($type)(\[:\])z\\\\z\\"z\\`z\$\w+z	\$\{.*?\}z#pop.protectionKeywordsz'\b(public|protected|private|internal)\btypeKeywordsz,\b(abstract|final|const|native|facet|enum)\bmethodKeywordsz8\b(abstract|native|once|override|static|virtual|final)\bfieldKeywordszB\b(abstract|const|final|native|override|static|virtual|readonly)\botherKeywords)trycatchthrowfinallyforifelsewhileasisisnotswitchcaser	   continuebreakdoreturngetsetz\b)prefixsuffixz\b(it|this|super)\b	operatorsz4\+\+|\-\-|\+|\-|\*|/|\|\||&&|<=>|<=|<|>=|>|=|!|\[|\]z[\[\]|\->:?]z$idrootzusing\br   z@\w+facetz(class|mixin)(\s+)(\w+)inheritancez($type)([ \t]+)($id)(\s*)(:=)z($id)(\s*)(:=)z(\.|(?:\->))($id)(\s*)(\()insideParenz(\.|(?:\->))($id)z(new)(\s+)(make\w*)(\s*)(\()insideMethodDeclArgsz($type)([ \t]+)($id)(\s*)(\()z($type)(\s+)($id)(\s*)(,)z+($type)(\s+)($id)(\s*)(\->)(\s*)($type)(\|)z($type)(\s+)($id)(\s*)(\|)z($type)([ \t]+)($id)z\(z\{insideBracez\s+z\)z($type)(\s+)($id)(\s*)(\))z\}z:|,z(?:(\w+)(::))?(\w+)z[ \t]+z(\[)(\w+)(\])z(\")?([\w.]+)(\")?z::
usingClassz(as)(\s+)(\w+)z#pop:2z[\w$]+facetFieldsz(\s*)(\w+)(\s*)(=))rN   rI   rO   N)-__name__
__module____qualname____doc__namealiases	filenames	mimetypesr"   r   	MultilineSingleSpecialr   FloatHexIntegerr   Charr   r   Constantr   r   	NamespaceClassFunctionr   r   r   EscapeInterpolBacktickr
   BuiltinPseudor   r	   r   	Decoratorr   Variabler   Declarationtokens r#   r!   r   r      s   
 DgG	I'(I

Nw001''//*gnn%
N 	0&98&A)6<<8#VZZ0FNN+.<;,;,%w'7'782dnnk4::!6;89 .dnnk4::!4==23 w !eD17;=w !eD17;=)
N> 	fmm$V]]#V]]#v'6??+;'6N
?NP 	fmm$V]]#V]]#v'6??+;'6??#
QNb 	7A
cNh 	<gF
iNn 	H
oNv 	$&
wN~ 	 7 @EUT 	
 $T\\%8%89
NN 	DhO
ONT 	k*vY

#FO
UN` 	J()N#$%O$JO$K **G4dnng.'':tzz)R /0eD1:mmZ;<
  !dmmZ:< ,-hz;G
 #$h.0 -gz4==*kR#%
  ! "eD1:mmZ>#	% +,eD1:t}} +/0 =>eD1:t}} +z5X;V!#$ ,-eD1:t}} +/0
 &'eD1:mm%& K/K/Z 4LOH
aNr 	K(FO
sNz 	K(,-eD1:t}} +/068 FO!
{NH 	K(FO
INP 	Z [!#dnnk4::>@K(
QN^ 	
#k7??K@B"k4>>;?AK.FO
_Nr 
#g)):tzzBHN

#H
 Z K/FO
 JJK Z "HZz8$TUK(Z 4L	
INFr#   N)rS   stringr   pygments.lexerr   r   r   r   r   r	   r
   pygments.tokenr   r   r   r   r   r   r   r   r   r   __all__r   rl   r#   r!   <module>rq      sD      - - - /f* fr#   