o
    ‡ÎÖaA-  ã                   @   s”   d Z ddlZddl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 g d¢ZG dd„ deƒZG dd	„ d	eƒZG d
d„ deƒZdS )zÞ
    pygments.lexers.actionscript
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Lexers for ActionScript and MXML.

    :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    N)Ú
RegexLexerÚbygroupsÚusingÚthisÚwordsÚdefault)	ÚTextÚCommentÚOperatorÚKeywordÚNameÚStringÚNumberÚPunctuationÚ
Whitespace)ÚActionScriptLexerÚActionScript3LexerÚ	MxmlLexerc                   @   sà   e Zd ZdZdZddgZdgZg d¢Zej	Z
ddefd	ejfd
ejfdejfdefdefeddd�efeddd�ejfdejfeddd�ejfeddd�ejfdejfdejfdejfdejfdejfdejfgiZ dd„ Z!dS )r   zB
    For ActionScript source code.

    .. versionadded:: 0.9
    ÚActionScriptÚactionscriptÚasú*.as)zapplication/x-actionscriptztext/x-actionscriptztext/actionscriptÚrootú\s+ú//.*?\nú	/\*.*?\*/z /(\\\\|\\[^\\]|[^/\\\n])*/[gim]*z[~^*!%&<>|+=:;,/?\\-]+z[{}\[\]();.]+)Úcaser   ÚforÚeachÚinÚwhileÚdoÚbreakÚreturnÚcontinueÚifÚelseÚthrowÚtryÚcatchÚvarÚwithÚnewÚtypeofÚ	argumentsÚ
instanceofr   Úswitchz\b)Úsuffix)ÚclassÚpublicÚfinalÚinternalÚnativeÚoverrideÚprivateÚ	protectedÚstaticÚimportÚextendsÚ
implementsÚ	interfaceÚ	intrinsicr#   ÚsuperÚdynamicÚfunctionÚconstÚgetÚ	namespaceÚpackageÚsetz9(true|false|null|NaN|Infinity|-Infinity|undefined|Void)\b)ÆÚAccessibilityÚAccessibilityPropertiesÚActionScriptVersionÚActivityEventÚAntiAliasTypeÚApplicationDomainÚAsBroadcasterÚArrayÚAsyncErrorEventÚ	AVM1MovieÚBevelFilterÚBitmapÚ
BitmapDataÚBitmapDataChannelÚBitmapFilterÚBitmapFilterQualityÚBitmapFilterTypeÚ	BlendModeÚ
BlurFilterÚBooleanÚ	ByteArrayÚCameraÚCapabilitiesÚ	CapsStyleÚClassÚColorÚColorMatrixFilterÚColorTransformÚContextMenuÚContextMenuBuiltInItemsÚContextMenuEventÚContextMenuItemÚConvultionFilterÚCSMSettingsÚ	DataEventÚDateÚDefinitionErrorÚDeleteObjectSampleÚ
DictionaryÚDisplacmentMapFilterÚDisplayObjectÚDisplacmentMapFilterModeÚDisplayObjectContainerÚDropShadowFilterÚEndianÚEOFErrorÚErrorÚ
ErrorEventÚ	EvalErrorÚEventÚEventDispatcherÚ
EventPhaseÚExternalInterfaceÚ
FileFilterÚFileReferenceÚFileReferenceListÚFocusDirectionÚ
FocusEventÚFontÚ	FontStyleÚFontTypeÚ
FrameLabelÚFullScreenEventÚFunctionÚ
GlowFilterÚGradientBevelFilterÚGradientGlowFilterÚGradientTypeÚGraphicsÚGridFitTypeÚHTTPStatusEventÚIBitmapDrawableÚID3InfoÚ
IDataInputÚIDataOutputÚ,IDynamicPropertyOutputIDynamicPropertyWriterÚIEventDispatcherÚIExternalizableÚIllegalOperationErrorÚIMEÚIMEConversionModeÚIMEEventÚintÚInteractiveObjectÚInterpolationMethodÚInvalidSWFErrorÚInvokeEventÚIOErrorÚIOErrorEventÚ
JointStyleÚKeyÚKeyboardÚKeyboardEventÚKeyLocationÚLineScaleModeÚLoaderÚLoaderContextÚ
LoaderInfoÚLoadVarsÚLocalConnectionÚLocaleÚMathÚMatrixÚMemoryErrorÚ
MicrophoneÚ
MorphShapeÚMouseÚ
MouseEventÚ	MovieClipÚMovieClipLoaderÚ	NamespaceÚNetConnectionÚNetStatusEventÚ	NetStreamÚNewObjectSampler   ÚObjectÚObjectEncodingÚPixelSnappingÚPointÚPrintJobÚPrintJobOptionsÚPrintJobOrientationÚProgressEventÚProxyÚQNameÚ
RangeErrorÚ	RectangleÚReferenceErrorÚRegExpÚ	ResponderÚSampleÚSceneÚScriptTimeoutErrorÚSecurityÚSecurityDomainÚSecurityErrorÚSecurityErrorEventÚSecurityPanelÚ	SelectionÚShapeÚSharedObjectÚSharedObjectFlushStatusÚSimpleButtonÚSocketÚSoundÚSoundChannelÚSoundLoaderContextÚ
SoundMixerÚSoundTransformÚSpreadMethodÚSpriteÚ
StackFrameÚStackOverflowErrorÚStageÚ
StageAlignÚStageDisplayStateÚStageQualityÚStageScaleModeÚ
StaticTextÚStatusEventr   Ú
StyleSheetÚ
SWFVersionÚ	SyncEventÚSyntaxErrorÚSystemÚTextColorTypeÚ	TextFieldÚTextFieldAutoSizeÚTextFieldTypeÚ
TextFormatÚTextFormatAlignÚTextLineMetricsÚTextRendererÚTextSnapshotÚTimerÚ
TimerEventÚ	TransformÚ	TypeErrorÚuintÚURIErrorÚ	URLLoaderÚURLLoaderDataFormatÚ
URLRequestÚURLRequestHeaderÚURLRequestMethodÚ	URLStreamÚURLVariabelesÚVerifyErrorÚVideoÚXMLÚXMLDocumentÚXMLListÚXMLNodeÚXMLNodeTypeÚ	XMLSocketÚXMLUI)Ú	decodeURIÚdecodeURIComponentÚ	encodeURIÚescapeÚevalÚisFiniteÚisNaNÚ	isXMLNameÚclearIntervalÚ	fscommandÚgetTimerÚgetURLÚ
getVersionÚ
parseFloatÚparseIntÚsetIntervalÚtraceÚupdateAfterEventÚunescapeú[$a-zA-Z_]\w*ú%[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?ú0x[0-9a-f]+ú[0-9]+ú"(\\\\|\\[^\\]|[^"\\])*"ú'(\\\\|\\[^\\]|[^'\\])*'c                 C   s   dS )zÈThis is only used to disambiguate between ActionScript and
        ActionScript3. We return 0 here; the ActionScript3 lexer will match
        AS3 variable definitions and that will hopefully suffice.r   © ©Útextr%  r%  ú>/usr/lib/python3/dist-packages/pygments/lexers/actionscript.pyÚanalyse_textp   s   zActionScriptLexer.analyse_textN)"Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚaliasesÚ	filenamesÚ	mimetypesÚreÚDOTALLÚflagsr   r	   ÚSingleÚ	Multiliner   ÚRegexr
   r   r   r   ÚDeclarationÚConstantr   ÚBuiltinr‡   ÚOtherr   ÚFloatÚHexÚIntegerÚDoubleÚtokensr)  r%  r%  r%  r(  r      s\    üûüûÿ'Ù(Ø)üû·ÿNr   c                   @   sæ  e Zd ZdZdZddgZdgZg d¢ZdZed Z	e
je
jB Zd	efd
e d eejejeeƒdfde d e	 d eejeeeeeejƒfde d eeeejeƒfde	 d eeeejeeƒfdejfdejfdejfde d eeejƒfdefdejfdejfdejfeefde j!fde j"fde j#fdej$fdejfd efgd	efd!e d e	 d" eeeeeeeejeƒd#fd$ed%fgd&e	 d' eeeeejƒd(fd	ed(fe%d(ƒgd)eeee&e'ƒeeƒd*fd+ed*fe%d*ƒgd,œZ(d-d.„ Z)d/S )0r   zE
    For ActionScript 3 source code.

    .. versionadded:: 0.11
    zActionScript 3Úactionscript3Úas3r   )zapplication/x-actionscript3ztext/x-actionscript3ztext/actionscript3r  z(?:\.<\w+>)?r   z(function\s+)(z
)(\s*)(\()Ú
funcparamsz(var|const)(\s+)(z)(\s*)(:)(\s*)(ú)z(import|package)(\s+)((?:z|\.)+)(\s*)z(new)(\s+)(r   r   z /(\\\\|\\[^\\]|[^\\\n])*/[gisx]*z(\.)(z™(case|default|for|each|in|while|do|break|return|continue|if|else|throw|try|catch|with|new|typeof|arguments|instanceof|this|switch|import|include|as|is)\bz´(class|public|final|internal|native|override|private|protected|static|import|extends|implements|interface|intrinsic|return|super|dynamic|function|const|get|namespace|package|set)\bz9(true|false|null|NaN|Infinity|-Infinity|undefined|void)\bzË(decodeURI|decodeURIComponent|encodeURI|escape|eval|isFinite|isNaN|isXMLName|clearInterval|fscommand|getTimer|getURL|getVersion|isFinite|parseFloat|parseInt|setInterval|trace|updateAfterEvent|unescape)\br   r!  r"  r#  r$  z[~^*!%&<>|+=:;,/?\\{}\[\]().-]+z(\s*)(\.\.\.)?(z	|\*)(\s*)Údefvalz\)Útypez(\s*)(:)(\s*)(z|\*)z#pop:2z(=)(\s*)([^(),]+)(\s*)(,?)ú#popú,)r   rC  rF  rE  c                 C   s   t  d| ¡rdS dS )Nz\w+\s*:\s*\wg333333Ó?r   )r2  Úmatchr&  r%  r%  r(  r)  Å   s   zActionScript3Lexer.analyse_textN)*r*  r+  r,  r-  r.  r/  r0  r1  Ú
identifierÚtypeidentifierr2  r3  Ú	MULTILINEr4  r   r   r   r8  r   r‡   r   r
   r   ÚTyper¶   r	   r5  r6  r   r7  Ú	Attributer9  r   r<  r=  r>  r?  r   r   r   r@  r)  r%  r%  r%  r(  r   v   s     
þ
ÿÿÿþ
ÿ
ÿýýÿýÛ(
ÿÿÿýú
	ÿüÿüÊ>r   c                	   @   sØ   e Zd ZdZejejB ZdZdgZ	dgZ
ddgZdefdejfd	eeeeƒeƒfd
edfdejfdejfdejdfdejfgdefdedfdefgdefdejdfdejdfgdefdedfdedfdedfgdœZdS )r   z~
    For MXML markup.
    Nested AS3 in <script> tags is highlighted by the appropriate lexer.

    .. versionadded:: 1.1
    ÚMXMLÚmxmlz*.mxmlztext/xmlzapplication/xmlz[^<&]+z&\S*?;z(\<\!\[CDATA\[)(.*?)(\]\]\>)z<!--Úcommentz	<\?.*?\?>z<![^>]*>z<\s*[\w:.-]+Útagz<\s*/\s*[\w:.-]+\s*>z[^-]+z-->rG  ú-r   z[\w.:-]+\s*=Úattrz/?\s*>z".*?"z'.*?'z[^\s>]+)r   rQ  rR  rT  N)r*  r+  r,  r-  r2  rL  r3  r4  r.  r/  r0  Ú	mimetimesr   r   ÚEntityr   r   r   r   r	   ÚPreprocÚTagr   rN  r@  r%  r%  r%  r(  r   Ë   s@    ÿ
÷ý

ýü
êr   )r-  r2  Úpygments.lexerr   r   r   r   r   r   Úpygments.tokenr   r	   r
   r   r   r   r   r   r   Ú__all__r   r   r   r%  r%  r%  r(  Ú<module>   s    
 ,bU