Ë
    |í¼em  ã                   ó
  — d Z ddlZddl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dlmZ g d¢Z G d„ de«      Z G d	„ d
e«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Zy)zã
    pygments.lexers.basic
    ~~~~~~~~~~~~~~~~~~~~~

    Lexers for BASIC like languages (other than VB.net).

    :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    N)Ú
RegexLexerÚbygroupsÚdefaultÚwordsÚinclude)
ÚCommentÚErrorÚKeywordÚNameÚNumberÚPunctuationÚOperatorÚStringÚTextÚ
Whitespace)Ú_vbscript_builtins)ÚBlitzBasicLexerÚBlitzMaxLexerÚMonkeyLexerÚCbmBasicV2LexerÚQBasicLexerÚVBScriptLexerÚBBCBasicLexerc                    óÖ  — e Zd ZdZdZdZddgZdgZdgZdZ	d	Z
d
ZdZde›de
›de›de›d�	Zedz   Zej                   ej"                  z  Zdefd eee«      fdej.                  fdej0                  fdej4                  dfdej8                  fdej8                  fdej:                  fdej<                  fdej>                  fde	z  e fde!fde"jF                  fd ejH                  fd!ez   ee%jL                  ee!e"jN                  «      fd"e›d#e›d$� ee%jL                  ee%jP                  «      fe ee"jR                  ee%jT                  e ee!ee%jT                  e"jN                  ee%jT                  ee!«      fe ee"jV                  ee%jT                  e ee!ee%jT                  e"jN                  ee%jT                  «      fd%ez   ee%jL                  ee"jN                  «      fd&e%jT                  fd'e%jX                  fd(e%jZ                  f e.d)d*d*¬+«      e"j^                  f e.d,d*d*¬+«      e%jL                  fd-ez  e"jV                  fgd.ej4                  fd/ej4                  d0fd1ej4                  fgd2œZ0y3)4r   z>
    For BlitzMax source code.

    .. versionadded:: 1.4
    ÚBlitzMaxúhttp://blitzbasic.comÚblitzmaxÚbmaxz*.bmxz
text/x-bmxz\b(Shl|Shr|Sar|Mod)\bz@{1,2}|[!#$%]z&\b(Int|Byte|Short|Float|Double|Long)\bú	[a-z_]\w*ú(z)(?:(?:([ \t]*)(z?)|([ \t]*:[ \t]*\b(?:Shl|Shr|Sar|Mod)\b)|([ \t]*)(:)([ \t]*)(?:z|(z)))(?:([ \t]*)(Ptr))?)z?((?:[ \t]|\.\.\n)*)([(])ú\s+z
(\.\.)(\n)z'.*?\nz*([ \t]*)\bRem\n(\n|.)*?\s*\bEnd([ \t]*)Remú"Ústringú[0-9]+\.[0-9]*(?!\.)z\.[0-9]*(?!\.)ú[0-9]+ú\$[0-9a-f]+ú\%[10]+z9(?:(?:(:)?([ \t]*)(:?%s|([+\-*/&|~]))|Or|And|Not|[=<>^]))z[(),.:\[\]]z(?:#[\w \t]*)z(?:\?[\w \t]*)z\b(New)\b([ \t]?)([(]?)(%s)z$\b(Import|Framework|Module)([ \t]+)(z\.ú)z\b(Type|Extends)([ \t]+)(%s)z	\b(Ptr)\bz#\b(Pi|True|False|Null|Self|Super)\bz\b(Local|Global|Const|Field)\b)ÚTNullMethodExceptionÚTNullFunctionExceptionÚTNullObjectExceptionÚTArrayBoundsExceptionÚTRuntimeExceptionú\b©ÚprefixÚsuffix)EÚStrictÚSuperStrictÚModuleÚ
ModuleInfoÚEndÚReturnÚContinueÚExitÚPublicÚPrivateÚVarÚVarPtrÚChrÚLenÚAscÚSizeOfÚSgnÚAbsÚMinÚMaxÚNewÚReleaseÚDeleteÚIncbinÚ	IncbinPtrÚ	IncbinLenÚ	FrameworkÚIncludeÚImportÚExternÚ	EndExternÚFunctionÚEndFunctionÚTypeÚEndTypeÚExtendsÚMethodÚ	EndMethodÚAbstractÚFinalÚIfÚThenÚElseÚElseIfÚEndIfÚForÚToÚNextÚStepÚEachInÚWhileÚWendÚEndWhileÚRepeatÚUntilÚForeverÚSelectÚCaseÚDefaultÚ	EndSelectÚTryÚCatchÚEndTryÚThrowÚAssertÚGotoÚDefDataÚReadDataÚRestoreDataz(%s)ú""ú"C?ú#popz[^"]+©Úrootr#   N)1Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚurlÚaliasesÚ	filenamesÚ	mimetypesÚbmax_vopwordsÚbmax_sktypesÚbmax_lktypesÚ	bmax_nameÚbmax_varÚ	bmax_funcÚreÚ	MULTILINEÚ
IGNORECASEÚflagsr   r   r   r   ÚSingleÚ	Multiliner   ÚDoubler   ÚFloatÚIntegerÚHexÚBinr   r   r   ÚLabelÚPreprocr
   ÚReservedÚClassÚ	NamespacerQ   rS   ÚVariableÚConstantÚDeclarationr   Ú	ExceptionÚtokens© ó    ú7/usr/lib/python3/dist-packages/pygments/lexers/basic.pyr   r      sß  „ ñð €DØ
!€CØ˜6Ð"€GØ�	€IØ�€Ià,€MØ#€LØ<€LØ�Iò 
’L¢,²	ð;€Hð Ð7Ñ7€Ià�L‰L˜2Ÿ=™=Ñ(€Eð �ZÐ Ø™H T¨:Ó6Ð7à˜Ÿ™Ð'Ø:¸G×<MÑ<MÐNà�&—-‘- Ð*à$ f§l¡lÐ3Ø §¡Ð-Ø˜Ÿ™Ð'Ø˜VŸZ™ZÐ(Ø˜Ÿ™Ð$àIØñØ&ð(à˜[Ð)Ø˜tŸz™zÐ*Ø §¡Ð0à+¨yÑ9Ù�g×&Ñ&¨
°KÀÇÁÓLñNò šð$á�g×&Ñ&¨
°G×4EÑ4EÓFðHð ™ §¡°
¸G¿L¹LØ!)¨:°{ÀJØ!(§¡¨t¯z©z¸:Ø!(§¡¨z¸;óHð Ið ‘x §¡¨z¸7¿<¹<ÈØ *¨K¸ÀWÇ\Á\Ø $§
¡
¨J¸¿¹óFð Gð -°	Ñ:Ù�g×&Ñ&¨
°D·J±JÓ?ðAð ˜7Ÿ<™<Ð(Ø3°W×5EÑ5EÐFØ.°×0CÑ0CÐDÙð %ð .3¸5ôBð DHÇ>Á>ðSñ ð ð (-°Uô<ð ×Ñðð ˜	Ñ" D§M¡MÐ2ðu;
ðz �F—M‘MÐ"Ø�V—]‘] FÐ+Ø�v—}‘}Ð%ð
ñ{B�Fr¡   r   c                   ór  — e Zd ZdZdZdZg d¢ZddgZdgZdZ	d	Z
d
e
›de	›de
›d�Zej                  ej                  z  Zdefdej$                  fdej(                  dfdej,                  fdej,                  fdej.                  fdej0                  fdej2                  f eddd¬«      efdefdefde
z  ej<                  fde
z   ee jB                  eejD                  «      fde
z   ee jB                  eej<                  «      fde
z   eeeeeejD                  «      fd ez   eejF                  ee jH                  eeeejD                  ee«	      fd!ez   ee jB                  eejF                  ee jH                  eeeejD                  «	      fd"e
z   ee jB                  eejD                  «      fd#e jJ                  fd$e jL                  f ed%dd¬«      e jB                  fe eejN                  ee jH                  eeeejD                  «      fgd&ej(                  fd'ej(                  d(fd)ej(                  fgd*œZ(y+),r   z@
    For BlitzBasic source code.

    .. versionadded:: 2.0
    Ú
BlitzBasicr   )Ú
blitzbasicÚb3dÚbplusz*.bbz*.declsz	text/x-bbz@{1,2}|[#$%]z[a-z]\w*r    z)(?:([ \t]*)(z)|([ \t]*)([.])([ \t]*)(?:(z)))?r!   z;.*?\nr"   r#   r$   ú\.[0-9]+(?!\.)r%   r&   r'   )ÚShlÚShrÚSarÚModÚOrÚAndÚNotrC   rB   ÚHandleÚIntr’   ÚStrÚFirstÚLastÚBeforeÚAfterr.   r/   z([+\-*/~=<>^])z[(),:\[\]\\]z\.([ \t]*)(%s)z\b(New)\b([ \t]+)(%s)z\b(Gosub|Goto)\b([ \t]+)(%s)z'\b(Object)\b([ \t]*)([.])([ \t]*)(%s)\bz\b%s\b([ \t]*)(\()z\b(Function)\b([ \t]+)%sz\b(Type)([ \t]+)(%s)z\b(Pi|True|False|Null)\bz"\b(Local|Global|Const|Field|Dim)\b)#r6   r7   r9   r>   r?   r@   rF   rH   ÚInsertrM   rQ   rS   rZ   r[   r\   r]   r^   r_   r`   ra   rb   ÚEachrd   re   rg   rh   ri   rj   rk   rl   rs   ÚGosubÚDataÚReadÚRestorerw   rx   ry   ú[^"\n]+rz   N))r|   r}   r~   r   r€   r�   r‚   rƒ   r„   Ú
bb_sktypesÚbb_nameÚbb_varr‹   rŒ   r�   rŽ   r   r   r�   r   r‘   r   r’   r“   r”   r•   r   r   r   r   r–   r   r
   r˜   r™   rQ   rS   rœ   r�   r›   rŸ   r    r¡   r¢   r   r   s   sª  „ ñð €DØ
!€CÚ,€GØ˜Ð#€IØ�€Ià €JØ�Gâ’z¢7ð,€Fð �L‰L˜2Ÿ=™=Ñ(€Eð �ZÐ à˜Ÿ™Ð'à�&—-‘- Ð*à$ f§l¡lÐ3Ø §¡Ð-Ø˜Ÿ™Ð'Ø˜VŸZ™ZÐ(Ø˜Ÿ™Ð$áð 8ð  ¨ô/ð ð	ð
  Ð)Ø˜kÐ*Ø Ñ(¨$¯*©*Ð5à%¨Ñ1Ù�g×&Ñ&¨
°D·J±JÓ?ðAà,°Ñ8Ù�g×&Ñ&¨
°D·J±JÓ?ðAà7¸7ÑCÙ�h 
¨K¸ÀTÇZÁZÓPðRà" VÑ+Ù�d—m‘m Z°·±¸zÈ;Ø  $§*¡*¨j¸+óGðHð )¨6Ñ1Ù�g×&Ñ&¨
°D·M±MÀ:ÈwÏ|É|Ø  +¨z¸4¿:¹:óGðHð %¨Ñ0Ù�g×&Ñ&¨
°D·J±JÓ?ðAð )¨'×*:Ñ*:Ð;Ø2°G×4GÑ4GÐHÙð <ð
 EJÐRWôYð ×Ñðð ‘X˜dŸm™m¨Z¸¿¹Ø(¨+°zÀ4Ç:Á:óOð Pðc3
ðj �F—M‘MÐ"Ø�V—]‘] FÐ+Ø˜Ÿ™Ð'ð
ñk:�Fr¡   r   c                   óJ  — e Zd ZdZdZdgZdgZdgZdZdZ	dZ
dZd	Zd
ZdZej                   Zg def‘def‘dej(                  df‘dej*                  f‘dej*                  df‘dej.                  df‘dej2                  f‘dej2                  f‘dej4                  f‘dej6                  f‘dej8                  f‘dez  ej<                  f‘dej>                  f‘de jB                  f‘de jD                  f‘de jD                  jF                  f‘de jH                  f‘d  e%ejL                  ee jL                  e«      f‘d!ej>                  f‘d" e%ejN                  e«      df‘d# e%ej>                  e«      d$f‘d% e%ej>                  e«      d&f‘d'ej>                  f‘d(ej>                  f‘d)ej>                  f‘d*e(f‘d+e)f‘d,e)jT                  f‘d-e(f‘d.e
z  e jH                  f‘d.e	z  e jV                  f‘d.ez  e jX                  f‘d/e	z  e jV                  fd0e(d$fdefd1e(dfd2e(d3fgd4ez  e jL                  fd.ez  ej<                  fd.ez  e jZ                  fd5 e%e(eej4                  ee(«      fd6ed3fd7e(d8fd9e(d3fd:ed3f e.d3«      g	d.e
z  e jH                  fd.ez  e jX                  fd;ez  ej<                  fdefd0e(d$fd<e(d8f e.d3«      gd=ej.                  fd>ej^                  fdej.                  d3fgd?ej(                  d8fd@ej(                  d3fd:ej(                  fdAej(                  fgdBœZ0yC)Dr   z…
    For
    `Monkey <https://en.wikipedia.org/wiki/Monkey_(programming_language)>`_
    source code.

    .. versionadded:: 1.6
    ÚMonkeyÚmonkeyz*.monkeyztext/x-monkeyr   z[A-Z]\w*z[A-Z_][A-Z0-9_]*z
[a-z0-9_]*z+(?:Int|Float|String|Bool|Object|Array|Void)z[?%#$]r!   z'.*z(?i)^#rem\bÚcommentz6(?i)^(?:#If|#ElseIf|#Else|#EndIf|#End|#Print|#Error)\bz^#Ú	variablesr"   r#   r$   r¨   r%   z\$[0-9a-fA-Z]+r'   z\b%s\bz(?i)\b(?:Try|Catch|Throw)\bÚ	Throwablez(?i)\b(?:Null|True|False)\bz(?i)\b(?:Self|Super)\bz\b(?:HOST|LANG|TARGET|CONFIG)\bz(?i)^(Import)(\s+)(.*)(\n)z(?i)^Strict\b.*\nz#(?i)(Const|Local|Global|Field)(\s+)z1(?i)(New|Class|Interface|Extends|Implements)(\s+)Ú	classnamez(?i)(Function|Method)(\s+)ÚfuncnamezB(?i)(?:End|Return|Public|Private|Extern|Property|Final|Abstract)\bz‡(?i)(?:If|Then|Else|ElseIf|EndIf|Select|Case|Default|While|Wend|Repeat|Until|Forever|For|To|Until|Step|EachIn|Next|Exit|Continue)(?=\s)z(?i)\b(?:Module|Inline)\bz[\[\]]z.<=|>=|<>|\*=|/=|\+=|-=|&=|~=|\|=|[-&*/^+=<>|~]z(?i)(?:Not|Mod|Shl|Shr|And|Or)z[(){}!#,.:]z%s\bz(?i)%s\bú:z\(z\)ry   z%s\.z(\[)(\s*)(\d*)(\s*)(\])z\s+(?!<)ú<z#pushú>ú\nz%sú,z[^"~]+z~q|~n|~r|~t|~z|~~z(?i)^#rem.*?z(?i)^#end.*?z.+)r{   rÈ   rÇ   rÅ   r#   rÄ   N)1r|   r}   r~   r   r€   r‚   rƒ   r„   Úname_variableÚname_functionÚname_constantÚ
name_classÚname_moduleÚkeyword_typeÚkeyword_type_specialr‹   rŒ   rŽ   r   r   r�   r—   r   r‘   r   r’   r“   r”   r•   r
   rS   r˜   r   rž   ÚBuiltinÚPseudorœ   r   rš   r�   r   r   ÚWordrQ   r›   r™   r   ÚEscaperŸ   r    r¡   r¢   r   r   Ã   sÎ  „ ñð €DØˆj€GØ�€IØ Ð!€Ià €MØ€MØ'€MØ€JØ€KàA€Là$Ðà�L‰L€Eð:
à�ZÐ ð:
ð �WÐð	:
ð
 ˜W×.Ñ.°	Ð:ð:
ð GÈÏÉÐXð:
ð �G—O‘O [Ð1ð:
ð �&—-‘- Ð*ð:
ð % f§l¡lÐ3ð:
ð  §¡Ð-ð:
ð ˜Ÿ™Ð'ð:
ð   §
¡
Ð+ð!:
ð" ˜Ÿ™Ð$ð#:
ð& ˜Ñ% w§|¡|Ð4ð':
ð* ,¨W×-=Ñ-=Ð>ð+:
ð, ˜4Ÿ>™>Ð*ð-:
ð0 ,¨T¯\©\Ð:ð1:
ð2 '¨¯©×(;Ñ(;Ð<ð3:
ð4 0°·±Ð?ð5:
ð8 +Ù�g×'Ñ'¨°T·^±^ÀZÓPðRð9:
ð< " 7×#3Ñ#3Ð4ð=:
ð> 4Ù�g×)Ñ)¨:Ó6¸ðEð?:
ðB BÙ�g×&Ñ&¨
Ó3°[ðBðC:
ðF +Ù�g×&Ñ&¨
Ó3°ZðAðG:
ðJ"Ø#*×#3Ñ#3ð5ðK:
ðP%ð
 '.×&6Ñ&6ð8ðQ:
ð^ *¨7×+;Ñ+;Ð<ð_:
ðb ˜Ð$ðc:
ðf ?ÀÐIðg:
ðh /°·±Ð>ði:
ðj ˜[Ð)ðk:
ðn �}Ñ$ d§m¡mÐ4ðo:
ðp �}Ñ$ d§m¡mÐ4ðq:
ðr �}Ñ$ d§m¡mÐ4ðs:
ðx ˜=Ñ(¨$¯-©-Ð8Ø�; Ð,Ø�ZÐ Ø�K Ð-Ø�K Ð(ð
ð �{Ñ" D§N¡NÐ3Ø�|Ñ# W§\¡\Ð2Ø�zÑ! 4§:¡:Ð.à'Ù�k :¨v¯~©~¸zÈ;ÓWðYð ˜* fÐ-Ø�; Ð(Ø�; Ð'Ø�J Ð'Ù�F‹Oð
ð �}Ñ$ d§m¡mÐ4Ø�}Ñ$ d§m¡mÐ4ØÐ)Ñ)¨7¯<©<Ð8Ø�ZÐ Ø�; Ð,Ø�; Ð(Ù�F‹Oð
ð ˜Ÿ™Ð&Ø! 6§=¡=Ð1Ø�6—=‘= &Ð)ð
ð ˜g×/Ñ/°Ð9Ø˜g×/Ñ/°Ð8Ø�G×%Ñ%Ð&Ø�G×%Ñ%Ð&ð	
ñe�Fr¡   r   c                   ó   — e Zd ZdZdZdgZdgZej                  Z	dde
j                  fdefdej                  fd	ej                  fd
ej"                  fdefdej&                  fdefdej,                  fdefdefgiZd„ Zy)r   z>
    For CBM BASIC V2 sources.

    .. versionadded:: 1.6
    zCBM BASIC V2Úcbmbasú*.basr{   zrem.*\nr!   z–new|run|end|for|to|next|step|go(to|sub)?|on|return|stop|cont|if|then|input#?|read|wait|load|save|verify|poke|sys|print#?|list|clr|cmd|open|close|get#?zdata|restore|dim|let|def|fnzktab|spc|sgn|int|abs|usr|fre|pos|sqr|rnd|log|exp|cos|sin|tan|atn|peek|len|val|asc|(str|chr|left|right|mid)\$z
[-+*/^<>=]z
not|and|orz	"[^"\n]*.z\d+|[-+]?\d*\.\d*(e[-+]?\d+)?z[(),:;]z\w+[$%]?c                 ó2   — t        j                  d| «      ryy )Nz^\d+gš™™™™™É?)r‹   Úmatch©Útexts    r¢   Úanalyse_textzCbmBasicV2Lexer.analyse_textd  s   € ô �8‰8�G˜TÔ"Øð #r¡   N)r|   r}   r~   r   r€   r‚   rƒ   r‹   r�   rŽ   r   r�   r   r
   r˜   r�   r   rÕ   r   r×   r   r   r’   r   rŸ   rà   r    r¡   r¢   r   r   E  s½   „ ñð
 €DØˆj€GØ�	€Ià�M‰M€Eð 	Ø˜Ÿ™Ð(Ø�ZÐ ð/à07×0@Ñ0@ðBð ,¨W×-@Ñ-@ÐAð=Ø>B¿l¹lðLà˜HÐ%Ø˜HŸM™MÐ*Ø˜6Ð"Ø-¨v¯|©|Ð<Ø˜Ð%Ø˜$Ðð
ð€Fó&r¡   r   c                   ó´  — e Zd ZdZdZddgZddgZdgZdZd	Z	d
Z
dZdZdZdefdej                  fd eej                  ej$                  ej                  ej(                  «      fd eej                  ej$                  ej                  «      fdej*                  j,                  fdej(                  fdej0                  fd eej4                  ej                  ej4                  «      fd eej6                  ej                  ej*                  ej                  e«      fd eej6                  ej                  ej*                  ej                  ej*                  j,                  «      fd eej6                  ej                  ej*                  j,                  «      fd eej                  ej*                  j,                  ej                  e«      fd eej4                  ej                  ej$                  «      fd eej4                  ej                  ej$                  «      f ed«       ed«       ed«       ed«       ed «       ed!«      d"ej*                  j,                  fd#ej$                  fd$ej>                  fd%ej>                  fd&ej@                  jB                  fd&ej@                  fd'efd(e"fd)ej*                  j,                  fgd*d+jG                   e$e%jL                  e«      «      z  ej6                  fgd*d+jG                   e$e%jL                  e	«      «      z  ej4                  fgd*d+jG                   e$e%jL                  e
«      «      z  ejN                  fgd*d+jG                   e$e%jL                  e«      «      z  ejP                  fgd,d+jG                   e$e%jL                  e«      «      z  ej4                  fgd,d+jG                  e«      z  efgd-œZ)d.„ Z*y/)0r   zm
    For
    `QBasic <http://en.wikipedia.org/wiki/QBasic>`_
    source code.

    .. versionadded:: 2.0
    ÚQBasicÚqbasicÚbasicz*.BASrÛ   z
text/basic)ÚDATAÚLET)UÚABSÚASCÚATNÚCDBLúCHR$ÚCINTÚCLNGzCOMMAND$ÚCOSÚCSNGÚCSRLINÚCVDÚCVDMBFÚCVIÚCVLÚCVSÚCVSMBFúDATE$zENVIRON$ÚEOFÚERDEVzERDEV$ÚERLÚERRÚEXPÚFILEATTRÚFIXÚFREÚFREEFILEzHEX$úINKEY$ÚINPzINPUT$ÚINSTRÚINTzIOCTL$ÚLBOUNDzLCASE$úLEFT$ÚLENÚLOCÚLOFÚLOGÚLPOSzLTRIM$úMID$zMKD$zMKDMBF$zMKI$zMKL$zMKS$zMKSMBF$zOCT$ÚPEEKÚPENÚPLAYÚPMAPÚPOINTÚPOSúRIGHT$ÚRNDzRTRIM$ÚSADDÚSCREENÚSEEKÚSETMEMÚSGNÚSINzSPACE$ÚSPCÚSQRÚSTICKúSTR$ÚSTRIGúSTRING$ÚTABÚTANúTIME$ÚTIMERÚUBOUNDzUCASE$ÚVALÚVARPTRzVARPTR$ÚVARSEG)ú$DYNAMICz$INCLUDEú$STATIC)ÚANDÚEQVÚIMPÚNOTÚORÚXOR)�ÚBEEPÚBLOADÚBSAVEÚCALLzCALL ABSOLUTEzCALL INTERRUPTÚCALLSÚCHAINÚCHDIRÚCIRCLEÚCLEARÚCLOSEÚCLSÚCOLORÚCOMÚCOMMONÚCONSTrå   r÷   ÚDECLAREzDEF FNzDEF SEGÚDEFDBLÚDEFINTÚDEFLNGÚDEFSNGÚDEFSTRÚDEFÚDIMÚDOÚLOOPÚDRAWÚENDÚENVIRONÚERASEÚERRORÚEXITÚFIELDÚFILESÚFORÚNEXTÚFUNCTIONÚGETÚGOSUBÚGOTOÚIFÚTHENÚINPUTzINPUT #ÚIOCTLÚKEYr\  ÚKILLræ   ÚLINEz
LINE INPUTzLINE INPUT #ÚLOCATEÚLOCKÚUNLOCKÚLPRINTÚLSETr  ÚMKDIRÚNAMEzON COMzON ERRORzON KEYzON PENzON PLAYzON STRIGzON TIMERz	ON UEVENTÚONÚOPENzOPEN COMzOPTION BASEÚOUTÚPAINTÚPALETTEÚPCOPYr  r  ÚPOKEÚPRESETÚPRINTzPRINT #zPRINT USINGÚPSETÚPUTrp  Ú	RANDOMIZEÚREADÚREDIMÚREMÚRESETÚRESTOREÚRESUMEÚRETURNÚRMDIRÚRSETÚRUNr  r  zSELECT CASEÚSHAREDÚSHELLÚSLEEPÚSOUNDÚSTATICÚSTOPr  ÚSUBÚSWAPÚSYSTEMr#  r$  ÚTROFFÚTRONÚTYPEÚUEVENTra  ÚVIEWÚWAITÚWHILEÚWENDÚWIDTHÚWINDOWÚWRITE)#ÚACCESSÚALIASÚANYÚAPPENDÚASÚBASEÚBINARYÚBYVALÚCASEÚCDECLÚDOUBLEÚELSEÚELSEIFÚENDIFÚINTEGERÚISÚLISTÚLOCALÚLONGrI  ÚMODrS  ÚOFFrf  ÚOUTPUTÚRANDOMÚSIGNALÚSINGLEÚSTEPÚSTRINGrY  ÚTOÚUNTILÚUSINGrŒ  z\n+r!   z^(\s*)(\d*)(\s*)(REM .*)$z^(\s*)(\d+)(\s*)z(?=[\s]*)(\w+)(?=[\s]*=)z(?=[^"]*)\'.*$z	"[^\n"]*"z"(END)(\s+)(FUNCTION|IF|SELECT|SUB)z (DECLARE)(\s+)([A-Z]+)(\s+)(\S+)z (DIM)(\s+)(SHARED)(\s+)([^\s(]+)z(DIM)(\s+)([^\s(]+)z^(\s*)([a-zA-Z_]+)(\s*)(\=)z(GOTO|GOSUB)(\s+)(\w+\:?)z(SUB)(\s+)(\w+\:?)ÚdeclarationsÚ	functionsÚmetacommandsÚ	operatorsÚ
statementsÚkeywordsz[a-zA-Z_]\w*[$@#&!]z[a-zA-Z_]\w*\:z\-?\d*\.\d+[@|#]?z\-?\d+[@|#]z\-?\d+#?z'!=|==|:=|\.=|<<|>>|[-~+/\\*%=<>&^|?:!.]z[\[\]{}(),;]z[\w]+z\b(%s)(?=\(|\b)ú|z\b(%s)\b)r{   r®  r¯  r°  r±  r²  r³  c                 ó   — d| v sd| v ryy )Nr)  r*  çÍÌÌÌÌÌì?r    rÞ   s    r¢   rà   zQBasicLexer.analyse_textõ  s   € Ø˜Ñ ¨dÑ!2Øð "3r¡   N)+r|   r}   r~   r   r€   r‚   rƒ   r„   r®  r¯  r°  r±  r²  r³  r   r   r   r   r–   r   r�   r›   ÚGlobalr   r‘   r
   r˜   r�   r   r   r   r’   r“   ÚLongr   ÚjoinÚmapr‹   Úescaperœ   r×   rŸ   rà   r    r¡   r¢   r   r   k  sÌ  „ ñð €DØ˜Ð!€GØ˜'Ð"€IØ�€Ià"€Lð€Ið  7€Là9€Ið€Jð.€Hð �TˆNØ�T—_‘_Ð%Ø)Ù�d—o‘o t§z¡z°4·?±?Ø—n‘nó&ð'ð !Ù�d—o‘o t§z¡z°4·?±?ÓCðEà(¨$¯-©-×*>Ñ*>Ð?Ø §¡Ð/Ø˜6Ÿ=™=Ð)Ø2Ù�g×&Ñ&¨¯©¸×9IÑ9IÓJðLà0Ù�g×)Ñ)¨4¯?©?¸D¿M¹MØ—o‘o tó-ð.ð 1Ù�g×)Ñ)¨4¯?©?¸D¿M¹MØ—o‘o t§}¡}×';Ñ';ó=ð>ð $Ù�g×)Ñ)¨4¯?©?¸D¿M¹M×<PÑ<PÓQðSà+Ù�d—o‘o t§}¡}×';Ñ';¸T¿_¹_Øó ð!ð *Ù�g×&Ñ&¨¯©¸¿¹ÓDðFà"Ù�g×&Ñ&¨¯©¸¿¹ÓDðFá�NÓ#Ù�KÓ Ù�NÓ#Ù�KÓ Ù�LÓ!Ù�JÓØ# T§]¡]×%9Ñ%9Ð:Ø §
¡
Ð+Ø! 6§<¡<Ð0Ø˜VŸ\™\Ð*Ø˜&Ÿ.™.×-Ñ-Ð.Ø˜&Ÿ.™.Ð)Ø7¸ÐBØ˜kÐ*Ø�t—}‘}×+Ñ+Ð,ðU+
ð^   #§(¡(©3¨r¯y©y¸,Ó+GÓ"HÑHØ× Ñ ð"ð
ð
   #§(¡(©3¨r¯y©y¸)Ó+DÓ"EÑEØ×Ñðð
ð
   #§(¡(©3¨r¯y©y¸,Ó+GÓ"HÑHØ×Ñðð
ð
   #§(¡(©3¨r¯y©y¸)Ó+DÓ"EÑEÀxÇ}Á}ÐUð
ð ˜3Ÿ8™8¡C¨¯	©	°:Ó$>Ó?Ñ?Ø×Ñðð
ð
 ˜3Ÿ8™8 HÓ-Ñ-¨wÐ7ð
ñEE€FóNr¡   r   c                   óî  — e Zd ZdZdZdgZddgZej                  Z	de
j                  fdefdej                  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ej*                  eej.                  «      dfd eej*                  eej0                  «      fd eej*                  eej2                  «      fd eej*                  eej4                  «      fd eeee«      fd eeeeeeeej$                  «      fd eeeeeeee«      fd eeee«      fd eej*                  eej*                  eej6                  «      fde
j                  f eej<                  d¬«      ef eej>                  «      e f eejB                  d¬«      e jD                  f eejF                  d¬«      ej4                  f eejH                  d¬«      ejJ                  f eejL                  d¬«      ejJ                  fdefde f ed«      e'fd e(fgd! eee'eej.                  «      f e)d"«      gd#ej                  fd$ej                  fdej                  d"fd%e(d"fgd&œZ*y')(r   zd
    VBScript is scripting language that is modeled on Visual Basic.

    .. versionadded:: 2.4
    ÚVBScriptÚvbscriptz*.vbsz*.VBSz'[^\n]*r!   r"   r#   z&h[0-9a-f]+z[0-9]+\.[0-9]*(e[+-]?[0-9]+)?z\.[0-9]+(e[+-]?[0-9]+)?z[0-9]+e[+-]?[0-9]+r%   z#.+#z(dim)(\s+)([a-z_][a-z0-9_]*)Údim_morez%(function|sub)(\s+)([a-z_][a-z0-9_]*)z(class)(\s+)([a-z_][a-z0-9_]*)z(const)(\s+)([a-z_][a-z0-9_]*)z/(end)(\s+)(class|function|if|property|sub|with)z#(on)(\s+)(error)(\s+)(goto)(\s+)(0)z((on)(\s+)(error)(\s+)(resume)(\s+)(next)z(option)(\s+)(explicit)z3(property)(\s+)(get|let|set)(\s+)([a-z_][a-z0-9_]*)zrem\s.*[^\n]*r.   )r1   z[a-z_][a-z0-9_]*z\b_\nz(),.:z.+(\n)?z(\s*)(,)(\s*)([a-z_][a-z0-9]*)ry   r½   z\"\"rÌ   )r{   r¿  r#   N)+r|   r}   r~   r   r€   r‚   rƒ   r‹   r�   rŽ   r   r�   r   r   r‘   r   r”   r’   r“   r   r
   r�   r   r›   rQ   r™   rœ   ÚPropertyr   r   ÚKEYWORDSÚ	OPERATORSr   ÚOPERATOR_WORDSr×   ÚBUILTIN_CONSTANTSÚBUILTIN_FUNCTIONSrÕ   ÚBUILTIN_VARIABLESr   r	   r   rŸ   r    r¡   r¢   r   r   ú  sÒ  „ ñð
 €DØˆl€GØ˜'Ð"€IØ�M‰M€Eð ˜Ÿ™Ð(Ø�ZÐ Ø�&—-‘- Ð*Ø˜FŸJ™JÐ'à-¨v¯|©|Ð<Ø'¨¯©Ð6Ø" F§L¡LÐ1Ø˜Ÿ™Ð'Ø�VÐØ,Ù�g×)Ñ)¨:°t·}±}ÓEÀzðSà5Ù�g×)Ñ)¨:°t·}±}ÓEðGà.Ù�g×)Ñ)¨:°t·z±zÓBðDà.Ù�g×)Ñ)¨:°t·}±}ÓEðGà?Ù�g˜z¨7Ó3ð5à3Ù�g˜z¨7°JÀÈÐU[×UcÑUcÓdðfà8Ù�g˜z¨7°JÀÈÐU\Ó]ð_à'©°'¸:ÀwÓ)OÐPØCÙ�g×)Ñ)¨:°w×7JÑ7JÈJÐX\×XeÑXeÓfðhà˜wŸ~™~Ð.ÙÐ%×.Ñ.°uÔ=¸wÐGÙÐ%×/Ñ/Ó0°(Ð;ÙÐ%×4Ñ4¸UÔCÀXÇ]Á]ÐSÙÐ%×7Ñ7ÀÔFÈÏÉÐVÙÐ%×7Ñ7ÀÔFÈÏÉÐUÙÐ%×7Ñ7ÀÔFÈÏÉÐUØ  $Ð'Ø�xÐ Ù�8‹_˜kÐ*Ø˜ÐðM'
ðR /Ù�j +¨z¸4¿=¹=ÓIðKá�F‹Oð
ð ˜Ÿ™Ð'Ø�f—m‘mÐ$Ø�6—=‘= &Ð)Ø�E˜6Ð"ð	
ñ]4�Fr¡   r   c                   ó  — e Zd ZdZg d¢Zg d¢ZdZdgZdgZde	j                  fd eej                  ej                  «      f ed	«      gd
 eej"                  ej$                  «      fdedfdefdej(                  fd eej"                  eej"                  e	j*                  «      fd eee	j*                  «      fd eeee	j                  «      fdej,                  fdej                  f ee«      ef ee«      efdej2                  dfdej6                  fdej8                  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j2                  fdej2                  dfde!dfgd œZ"d!„ Z#y")#r   z”
    BBC Basic was supplied on the BBC Micro, and later Acorn RISC OS.
    It is also used by BBC Basic For Windows.

    .. versionadded:: 2.4
    )wÚ	OTHERWISEr+  ÚDIVÚEORr£  r/  rN  r^  r¤  r©  r  r!  r›  rY  ÚOPENINÚPTRÚPAGEÚTIMEÚLOMEMÚHIMEMrç   ÚACSÚADVALrè   ÚASNré   ÚBGETrî   ÚCOUNTÚDEGrú   rû   ÚEVALrü   ÚEXTÚFALSEÚFNrU  ÚINKEYr  r  r  ÚLNr
  r.  ÚOPENUPÚOPENOUTÚPIr  r  ÚRADr  r  r  r  r"  r«  ÚTRUEÚUSRr&  ÚVPOSrë   zGET$r  r  r  r  r  r   rø   rÌ  rÍ  rÎ  rÏ  rÐ  r  ÚBPUTr4  r6  r9  r:  ÚCLGr;  rå   rF  rG  rJ  rK  ÚENDPROCÚENVELOPErR  rV  rW  ÚGCOLrX  rZ  ræ   r¡  ÚMODEÚMOVErS  rf  ÚVDUÚPLOTrn  ÚPROCrr  rt  ÚREPEATÚREPORTrv  rx  r{  r�  ÚCOLOURÚTRACEr¬  r�  ÚOSCLI)/ÚWHENÚOFÚENDCASEr�  ÚENDWHILEr˜  r8  ÚFILLÚORIGINr  Ú	RECTANGLErƒ  r‹  rŠ  ÚMOUSEÚQUITÚSYSÚINSTALLÚLIBRARYÚTINTÚELLIPSEÚBEATSÚTEMPOÚVOICESÚVOICEÚSTEREOÚOVERLAYr“  ÚAUTOÚCRUNCHÚDELETEÚEDITÚHELPr   ÚLOADÚLVARÚNEWÚOLDÚRENUMBERÚSAVEÚTEXTLOADÚTEXTSAVEÚTWINÚTWINOrý  ÚSUMÚBEATz	BBC BasicÚbbcbasicz*.bbcr%   z(\*)([^\n]*)Úcodez(REM)([^\n]*)rÌ   r{   r!   rÉ   z%(DEF)(\s*)(FN|PROC)([A-Za-z_@][\w@]*)z(FN|PROC)([A-Za-z_@][\w@]*)z#(GOTO|GOSUB|THEN|RESTORE)(\s*)(\d+)z(TRUE|FALSE)z>(PAGE|LOMEM|HIMEM|TIME|WIDTH|ERL|ERR|REPORT\$|POS|VPOS|VOICES)r"   r#   z%[01]{1,32}z&[0-9a-f]{1,8}z"[+-]?[0-9]+\.[0-9]*(E[+-]?[0-9]+)?z[+-]?\.[0-9]+(E[+-]?[0-9]+)?z[+-]?[0-9]+E[+-]?[0-9]+z[+-]?\d+z([A-Za-z_@][\w@]*[%$]?)z1([+\-]=|[$!|?+\-*/%^=><();]|>=|<=|<>|<<|>>|>>>|,)r½   ry   )r{   r  r#   c                 óJ   — | j                  d«      s| j                  d«      ryy )Nz10REM >zREM >r¶  )Ú
startswithrÞ   s    r¢   rà   zBBCBasicLexer.analyse_text—  s"   € Ø�?‰?˜9Ô%¨¯©¸Ô)AØð *Br¡   N)$r|   r}   r~   r   Úbase_keywordsÚbasic5_keywordsr€   r‚   rƒ   r   r–   r   r
   rÖ   r   ÚSpecialr   r�   r�   r   r—   rQ   rœ   r   r   r‘   r   r•   r”   r’   r“   r›   r   r	   rŸ   rà   r    r¡   r¢   r   r   <  sÝ  „ ñò9€Mò$B€Oð €DØˆl€GØ�	€Ið ˜Ÿ
™
Ð#ØÙ�g—n‘n g§o¡oÓ6ð8á�F‹Oð	
ð Ù�g×)Ñ)¨7¯>©>Ó:ð<à�J Ð'Ø�ZÐ Ø�7—?‘?Ð#ð 6Ù�g×)Ñ)¨:Ø×)Ñ)¨4¯=©=ó:ð;ð ,Ù�g˜tŸ}™}Ó-ð/ð 4Ù�g˜z¨4¯:©:Ó6ð8ð ˜g×.Ñ.Ð/ØNØ�^‰^ðñ �=Ó! 7Ð+Ù�?Ó# WÐ-à�&—-‘- Ð*à˜FŸJ™JÐ'Ø˜vŸz™zÐ*à2°F·L±LÐAØ,¨f¯l©lÐ;Ø'¨¯©Ð6Ø˜&Ÿ.™.Ð)à'¨¯©Ð7ØAÀ8ÐLðG$
ðL ˜Ÿ™Ð'Ø�6—=‘= &Ð)Ø�E˜6Ð"ð
ñ[2€Fóhr¡   r   )r   r‹   Úpygments.lexerr   r   r   r   r   Úpygments.tokenr   r	   r
   r   r   r   r   r   r   r   Úpygments.lexersr   Ú__all__r   r   r   r   r   r   r   r    r¡   r¢   ú<module>r#     s’   ðñó 
ç HÕ H÷4÷ 4÷ 4å .ò<€ôY�Jô YôxM�jô Mô`�*ô ôD#�jô #ôLL�*ô Lô^?�Jô ?ôD]�Jõ ]r¡   