o
    ‡ÎÖaÕ'  ã                   @   s~   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„ deƒZdS )zÏ
    pygments.lexers.fantom
    ~~~~~~~~~~~~~~~~~~~~~~

    Lexer for the Fantom language.

    :copyright: Copyright 2006-2021 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                    @   sâ  e Zd ZdZdZdgZdgZdgZd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jeejeeeƒfdeejeejeejƒfdefedƒeeedd�eƒfdefed ƒeeed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“d0e!d1d2d2d3�efd4ej"j#fg“d5d6e$fg“dd7efed8ƒejfe%d&ƒg“d9e&dƒe&d(ƒe&d*ƒe&d,ƒe&d.ƒe&dƒe&d0ƒe&d5ƒd:ejd;fd<ej'd=fd>eee(ejƒd?fed@ƒeeedd�e(ej)e(e$ƒfedAƒeej)e(e$ƒfedBƒee$eje(eƒdCfedDƒee$ejƒfdEeee(eje(eƒdFfedGƒeeedd�e(eje(eƒdFfedHƒeeedd�e(ej)e(eƒfedIƒeeedd�e(ej)e(ee(eedd�eƒfedJƒeeedd�e(ej)e(eƒfedKƒeeedd�e(ej)ƒfdLedCfdMedNfdOe(fd'e*fg“dCdPed&fe&d9ƒg“dFdPed&fedQƒeeedd�e(ej)e(eƒd&fe&d9ƒg“dNdRed&fe&d9ƒg“d?dOe(fdSefdTeejeejƒfdMed&fg“d;dUe(fdVeee	jeƒfdWeeejeƒfdXedYfe%d&ƒg“dUe(fdZeej+e(ejƒd[fd\ejfe%d[ƒgdOe(fdMed]fe%d&ƒge&dƒe&dƒe&d5ƒdOe(fd^ee(ee(e$ƒfdRed&fdOe(fd'e*fgd_œ¥Z,d`S )ar   z<
    For Fantom source code.

    .. versionadded:: 1.5
    ÚFantomÚfanz*.fanzapplication/x-fantomc                 C   s   t | ƒ td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)Ústr© r   ú8/usr/lib/python3/dist-packages/pygments/lexers/fantom.pyÚs!   s   úÿzFantomLexer.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*)(=))rK   rF   rL   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Útokensr   r   r   r   r      sê   ûÿÿÿÿÿÿÿìøùá(ùØ1ÿÏ4ÿÌ7ÿÿÉ;ÿÿÅ?ýü
úÁGÿ¹Jý¶P

ÿÿÿÿþ
ÿþÿüÿÿþÿÿÿÿÿ¹° þ �æ ÿþû �â %þ �Û )ÿû �× 0ÿÿù �Ð :ÿûýø �»N)rP   Ústringr   Úpygments.lexerr   r   r   r   r   r   r	   Úpygments.tokenr
   r   r   r   r   r   r   r   r   r   Ú__all__r   r   r   r   r   Ú<module>   s    
$0