o
    ‡ÎÖaâl  ã                   @   sà   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„ deƒZG d	d
„ d
eƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZdS )zã
    pygments.lexers.basic
    ~~~~~~~~~~~~~~~~~~~~~

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

    :copyright: Copyright 2006-2021 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                   @   sØ  e 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e	e
ef Zed ZejejB Zdefdeeeƒfdejfdej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 efde fde!j"fdej#fde ee$j%ee e!j&ƒfdeef ee$j%ee$j'ƒfeee!j(ee$j)eee ee$j)e!j&ee$j)ee ƒfeee!j*ee$j)eee ee$j)e!j&ee$j)ƒfde ee$j%ee!j&ƒfde$j)fd e$j+fd!e$j,fe-d"d#d#d$�e!j.fe-d%d#d#d$�e$j%fd&e e!j*fgd'ejfd(ejd)fd*ejfgd+œZ/d,S )-r   zY
    For `BlitzMax <http://blitzbasic.com>`_ source code.

    .. versionadded:: 1.4
    ÚBlitzMaxÚ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*zp(%s)(?:(?:([ \t]*)(%s)|([ \t]*:[ \t]*\b(?:Shl|Shr|Sar|Mod)\b)|([ \t]*)(:)([ \t]*)(?:%s|(%s)))(?:([ \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]+)(%s\.%s)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)0Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚ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Ú	NamespacerL   rN   ÚVariableÚConstantÚDeclarationr   Ú	ExceptionÚtokens© rš   rš   ú7/usr/lib/python3/dist-packages/pygments/lexers/basic.pyr      s’    
þ
ÿÿÿÿþ
ý

þÿýýõôÆ=
ý
Ãr   c                   @   sº  e Zd ZdZdZg d¢ZddgZdgZdZdZ	d	e	ee	f Z
ejejB 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jfdejfedddd�efdefdefde	 ejfde	 eej eej!ƒfde	 eej eejƒfde	 eeeeeej!ƒfde
 eej"eej#eeeej!eeƒ	fde
 eej eej"eej#eeeej!ƒ	fde	 eej eej!ƒfdej$fd ej%fed!ddd�ej fe
eej&eej#eeeej!ƒfgd"ejfd#ejd$fd%ejfgd&œZ'd'S )(r   z[
    For `BlitzBasic <http://blitzbasic.com>`_ source code.

    .. versionadded:: 2.0
    Ú
BlitzBasic)Ú
blitzbasicÚb3dÚbplusz*.bbz*.declsz	text/x-bbz@{1,2}|[#$%]z[a-z]\w*z3(%s)(?:([ \t]*)(%s)|([ \t]*)([.])([ \t]*)(?:(%s)))?r   z;.*?\nr   r   r    ú\.[0-9]+(?!\.)r!   r"   r#   )ÚShlÚShrÚSarÚModÚOrÚAndÚNotr>   r=   Ú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)#r1   r2   r4   r9   r:   r;   rA   rC   ÚInsertrH   rL   rN   rU   rV   rW   rX   rY   rZ   r[   r\   r]   ÚEachr_   r`   rb   rc   rd   re   rf   rg   rn   ÚGosubÚDataÚReadÚRestorerr   rs   rt   ú[^"\n]+ru   N)(rw   rx   ry   rz   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“   rL   rN   r–   r—   r•   r™   rš   rš   rš   r›   r   r   s„    ÿ
ýüÿÿÿ
ÿÿ
ÿÿÿûú	
ÿÏ5
ý
Ër   c                   @   sÒ  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jf‘dejf‘dejf‘dejf‘dejf‘de ejf‘dejf‘de j!f‘de j"f‘de j"j#f‘de j$f‘d e%ej&ee j&eƒf‘d!ejf‘d"e%ej'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)j*f‘d-e(f‘d.e
 e j$f‘d.e	 e j+f‘d.e e j,f‘d/e	 e j+fd0e(d$fdefd1e(dfd2e(d3fgd4e e j&fd.e ejfd.e e j-fd5e%e(eejee(ƒfd6ed3fd7e(d8fd9e(d3fd:ed3fe.d3ƒg	d.e
 e j$fd.e e j,fd;e 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œZ0dCS )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\)rt   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.+)rv   r¿   r¾   r¼   r   r»   N)1rw   rx   ry   rz   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	   rN   r’   r
   r˜   ÚBuiltinÚPseudor–   r   r”   r—   r   r   ÚWordrL   r•   r“   r   ÚEscaper™   rš   rš   rš   r›   r   Á   sþ    þü
ûù
	÷
õóòñðïíëêè
çæÿäâÿá!ÿß#ÿÝ%ÿÛ(ûØ/Ñ1Ï3Í4Ì5Ë7É8È9Ç<ûÿôù

ý

ü
¡r   c                   @   s„   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d„ ZdS )r   z>
    For CBM BASIC V2 sources.

    .. versionadded:: 1.6
    zCBM BASIC V2Úcbmbasú*.basrv   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                 C   s   t  d| ¡rdS d S )Nz^\d+gš™™™™™É?)r…   Úmatch©Útextrš   rš   r›   Úanalyse_textb  s   ÿzCbmBasicV2Lexer.analyse_textN)rw   rx   ry   rz   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   C  s2    þÿòÿr   c                   @   sT  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jfdeejejejƒfdeejejejejeƒfdeejejejejejjƒfdeejejejjƒfdeejejjejeƒfdeejejejƒfdeej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 j!fd&ej fd'efd(e"fd)ejjfgd*d+ #e$e%j&eƒ¡ ejfgd*d+ #e$e%j&e	ƒ¡ ejfgd*d+ #e$e%j&e
ƒ¡ ej'fgd*d+ #e$e%j&eƒ¡ ej(fgd,d+ #e$e%j&eƒ¡ ejfgd,d+ #e¡ efgd-œZ)d.d/„ Z*d0S )1r   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ÚKEYrP  Ú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ÚPUTrd  Ú	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ÚUEVENTrU  Ú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ÚLONGr=  ÚMODrG  ÚOFFrZ  ÚOUTPUTÚRANDOMÚSIGNALÚSINGLEÚSTEPÚSTRINGrM  Ú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)rv   r¢  r£  r¤  r¥  r¦  r§  c                 C   s   d| v sd| v r
dS d S )Nr  r  çÍÌÌÌÌÌì?rš   rÓ   rš   rš   r›   rÕ   ó  s   ÿzQBasicLexer.analyse_textN)+rw   rx   ry   rz   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   i  s´    
ÿÿÿ
ÿÿÿ
ÿÿÿÿÿÿÿ


Ö/ÿÿÿÿÿÿÿÿÿÿ¾Gr   c                   @   sè  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jƒfdeejeejƒfdeejeejƒ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jƒfde
jfeejdd�efeejƒe feej!dd�e j"feej#dd�ejfeej$dd�ej%feej&dd�ej%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*d'S )(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)   )r,   z[a-z_][a-z0-9_]*z\b_\nz(),.:z.+(\n)?z(\s*)(,)(\s*)([a-z_][a-z0-9]*)rt   rµ   z\"\"rÃ   )rv   r±  r   N)+rw   rx   ry   rz   r{   r|   r}   r…   r‡   rˆ   r   r‰   r   r   r‹   r   rŽ   rŒ   r�   r   r	   r—   r
   r•   rL   r“   r–   ÚPropertyr   r   ÚKEYWORDSÚ	OPERATORSr   ÚOPERATOR_WORDSrÎ   ÚBUILTIN_CONSTANTSÚBUILTIN_FUNCTIONSrÌ   ÚBUILTIN_VARIABLESr   r   r   r™   rš   rš   rš   r›   r   ø  s~    
ÿÿÿÿ
ÿÿÿÿ
Ú)ÿý
ü
Òr   c                   @   sB  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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jfde	jfde fgdejfdejdfde!dfgd œZ"d!d"„ Z#d#S )$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#  rB  rR  r˜  r�  r  r  r�  rM  ÚOPENINÚPTRÚPAGEÚTIMEÚLOMEMÚHIMEMrÛ   ÚACSÚADVALrÜ   ÚASNrÝ   ÚBGETrâ   ÚCOUNTÚDEGrî   rï   ÚEVALrð   ÚEXTÚFALSEÚFNrI  Ú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Á  rs  ÚBPUTr(  r*  r-  r.  ÚCLGr/  rÙ   r:  r;  r>  r?  ÚENDPROCÚENVELOPErF  rJ  rK  ÚGCOLrL  rN  rÚ   r•  ÚMODEÚMOVErG  rZ  ÚVDUÚPLOTrb  ÚPROCrf  rh  ÚREPEATÚREPORTrj  rl  ro  ru  ÚCOLOURÚTRACEr   r�  ÚOSCLI)/ÚWHENÚOFÚENDCASEr‘  ÚENDWHILErŒ  r,  ÚFILLÚORIGINr  Ú	RECTANGLErw  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Ã   rv   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µ   rt   )rv   r
  r   c                 C   s   |   d¡s
|   d¡rdS d S )Nz10REM >zREM >r©  )Ú
startswithrÓ   rš   rš   r›   rÕ   “  s   ÿzBBCBasicLexer.analyse_textN)$rw   rx   ry   rz   Úbase_keywordsÚbasic5_keywordsr{   r|   r}   r
   r�   r   r	   rÍ   r   ÚSpecialr   r—   r‰   r   r‘   rL   r–   r   r   r‹   r   r�   rŽ   rŒ   r�   r•   r   r   r™   rÕ   rš   rš   rš   r›   r   :  s`    
ÿüÿÿ
ÿÿ


ß$
ýÕ2r   )rz   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š   r›   Ú<module>   s    
0[O & B