Linux websever 5.15.0-153-generic #163-Ubuntu SMP Thu Aug 7 16:37:18 UTC 2025 x86_64
Apache/2.4.52 (Ubuntu)
: 192.168.3.70 | : 192.168.1.99
Cant Read [ /etc/named.conf ]
8.1.2-1ubuntu2.23
urlab
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
usr /
lib /
python3 /
dist-packages /
pygments /
lexers /
[ HOME SHELL ]
Name
Size
Permission
Action
__pycache__
[ DIR ]
drwxr-xr-x
__init__.py
11
KB
-rw-r--r--
_asy_builtins.py
26.65
KB
-rw-r--r--
_cl_builtins.py
13.67
KB
-rw-r--r--
_cocoa_builtins.py
102.72
KB
-rw-r--r--
_csound_builtins.py
17.84
KB
-rw-r--r--
_julia_builtins.py
11.6
KB
-rw-r--r--
_lasso_builtins.py
131.36
KB
-rw-r--r--
_lilypond_builtins.py
101.67
KB
-rw-r--r--
_lua_builtins.py
8.08
KB
-rw-r--r--
_mapping.py
62.33
KB
-rw-r--r--
_mql_builtins.py
24.13
KB
-rw-r--r--
_mysql_builtins.py
23.92
KB
-rw-r--r--
_openedge_builtins.py
48.24
KB
-rw-r--r--
_php_builtins.py
150.72
KB
-rw-r--r--
_postgres_builtins.py
11.9
KB
-rw-r--r--
_scilab_builtins.py
51.15
KB
-rw-r--r--
_sourcemod_builtins.py
26.42
KB
-rw-r--r--
_stan_builtins.py
10.21
KB
-rw-r--r--
_stata_builtins.py
26.59
KB
-rw-r--r--
_tsql_builtins.py
15.1
KB
-rw-r--r--
_usd_builtins.py
1.62
KB
-rw-r--r--
_vbscript_builtins.py
4.13
KB
-rw-r--r--
_vim_builtins.py
55.73
KB
-rw-r--r--
actionscript.py
11.31
KB
-rw-r--r--
agile.py
876
B
-rw-r--r--
algebra.py
7.59
KB
-rw-r--r--
ambient.py
2.54
KB
-rw-r--r--
amdgpu.py
1.57
KB
-rw-r--r--
ampl.py
4.05
KB
-rw-r--r--
apdlexer.py
26.04
KB
-rw-r--r--
apl.py
3.32
KB
-rw-r--r--
archetype.py
11.17
KB
-rw-r--r--
arrow.py
3.47
KB
-rw-r--r--
asc.py
1.54
KB
-rw-r--r--
asm.py
40.19
KB
-rw-r--r--
automation.py
19.34
KB
-rw-r--r--
bare.py
2.97
KB
-rw-r--r--
basic.py
27.22
KB
-rw-r--r--
bdd.py
1.59
KB
-rw-r--r--
bibtex.py
4.62
KB
-rw-r--r--
boa.py
3.87
KB
-rw-r--r--
business.py
27.4
KB
-rw-r--r--
c_cpp.py
15.67
KB
-rw-r--r--
c_like.py
28.45
KB
-rw-r--r--
capnproto.py
2.17
KB
-rw-r--r--
cddl.py
5.2
KB
-rw-r--r--
chapel.py
4.89
KB
-rw-r--r--
clean.py
6.24
KB
-rw-r--r--
compiled.py
1.33
KB
-rw-r--r--
configs.py
39.49
KB
-rw-r--r--
console.py
4.05
KB
-rw-r--r--
crystal.py
15.41
KB
-rw-r--r--
csound.py
16.56
KB
-rw-r--r--
css.py
31.15
KB
-rw-r--r--
d.py
9.61
KB
-rw-r--r--
dalvik.py
4.47
KB
-rw-r--r--
data.py
23.96
KB
-rw-r--r--
devicetree.py
3.92
KB
-rw-r--r--
diff.py
5.04
KB
-rw-r--r--
dotnet.py
28.47
KB
-rw-r--r--
dsls.py
35.45
KB
-rw-r--r--
dylan.py
10.16
KB
-rw-r--r--
ecl.py
6.09
KB
-rw-r--r--
eiffel.py
2.6
KB
-rw-r--r--
elm.py
3.08
KB
-rw-r--r--
elpi.py
5.83
KB
-rw-r--r--
email.py
4.97
KB
-rw-r--r--
erlang.py
18.76
KB
-rw-r--r--
esoteric.py
10.17
KB
-rw-r--r--
ezhil.py
3.27
KB
-rw-r--r--
factor.py
19.12
KB
-rw-r--r--
fantom.py
9.96
KB
-rw-r--r--
felix.py
9.41
KB
-rw-r--r--
floscript.py
2.6
KB
-rw-r--r--
forth.py
6.99
KB
-rw-r--r--
fortran.py
10.07
KB
-rw-r--r--
foxpro.py
25.6
KB
-rw-r--r--
freefem.py
26.43
KB
-rw-r--r--
functional.py
674
B
-rw-r--r--
futhark.py
3.64
KB
-rw-r--r--
gcodelexer.py
826
B
-rw-r--r--
gdscript.py
10.94
KB
-rw-r--r--
go.py
3.65
KB
-rw-r--r--
grammar_notation.py
7.83
KB
-rw-r--r--
graph.py
3.77
KB
-rw-r--r--
graphics.py
38.15
KB
-rw-r--r--
graphviz.py
1.83
KB
-rw-r--r--
gsql.py
3.68
KB
-rw-r--r--
haskell.py
31.98
KB
-rw-r--r--
haxe.py
30.21
KB
-rw-r--r--
hdl.py
21.99
KB
-rw-r--r--
hexdump.py
3.52
KB
-rw-r--r--
html.py
19.34
KB
-rw-r--r--
idl.py
14.87
KB
-rw-r--r--
igor.py
29.87
KB
-rw-r--r--
inferno.py
3.02
KB
-rw-r--r--
installers.py
12.8
KB
-rw-r--r--
int_fiction.py
55.32
KB
-rw-r--r--
iolang.py
1.84
KB
-rw-r--r--
j.py
4.4
KB
-rw-r--r--
javascript.py
58.67
KB
-rw-r--r--
jslt.py
3.61
KB
-rw-r--r--
julia.py
11
KB
-rw-r--r--
jvm.py
70.05
KB
-rw-r--r--
kuin.py
10.5
KB
-rw-r--r--
lilypond.py
8.26
KB
-rw-r--r--
lisp.py
139.4
KB
-rw-r--r--
make.py
7.26
KB
-rw-r--r--
markup.py
26.11
KB
-rw-r--r--
math.py
676
B
-rw-r--r--
matlab.py
129.3
KB
-rw-r--r--
maxima.py
2.65
KB
-rw-r--r--
meson.py
4.33
KB
-rw-r--r--
mime.py
7.36
KB
-rw-r--r--
ml.py
34.47
KB
-rw-r--r--
modeling.py
13.07
KB
-rw-r--r--
modula2.py
51.82
KB
-rw-r--r--
monte.py
6.14
KB
-rw-r--r--
mosel.py
8.97
KB
-rw-r--r--
ncl.py
62.46
KB
-rw-r--r--
nimrod.py
5
KB
-rw-r--r--
nit.py
2.66
KB
-rw-r--r--
nix.py
3.91
KB
-rw-r--r--
oberon.py
4.11
KB
-rw-r--r--
objective.py
22.26
KB
-rw-r--r--
ooc.py
2.91
KB
-rw-r--r--
other.py
1.7
KB
-rw-r--r--
parasail.py
2.65
KB
-rw-r--r--
parsers.py
25.27
KB
-rw-r--r--
pascal.py
31.84
KB
-rw-r--r--
pawn.py
7.96
KB
-rw-r--r--
perl.py
38.16
KB
-rw-r--r--
php.py
12.25
KB
-rw-r--r--
pointless.py
1.92
KB
-rw-r--r--
pony.py
3.17
KB
-rw-r--r--
praat.py
11.99
KB
-rw-r--r--
procfile.py
1.19
KB
-rw-r--r--
prolog.py
12.09
KB
-rw-r--r--
promql.py
4.63
KB
-rw-r--r--
python.py
51.49
KB
-rw-r--r--
qvt.py
5.93
KB
-rw-r--r--
r.py
6.02
KB
-rw-r--r--
rdf.py
15.42
KB
-rw-r--r--
rebol.py
18.16
KB
-rw-r--r--
resource.py
2.83
KB
-rw-r--r--
ride.py
4.93
KB
-rw-r--r--
rita.py
1.16
KB
-rw-r--r--
rnc.py
1.92
KB
-rw-r--r--
roboconf.py
2
KB
-rw-r--r--
robotframework.py
17.99
KB
-rw-r--r--
ruby.py
22.14
KB
-rw-r--r--
rust.py
7.99
KB
-rw-r--r--
sas.py
9.2
KB
-rw-r--r--
savi.py
4.24
KB
-rw-r--r--
scdoc.py
2.19
KB
-rw-r--r--
scripting.py
68.41
KB
-rw-r--r--
sgf.py
2
KB
-rw-r--r--
shell.py
35.06
KB
-rw-r--r--
sieve.py
2.24
KB
-rw-r--r--
slash.py
8.28
KB
-rw-r--r--
smalltalk.py
7.02
KB
-rw-r--r--
smithy.py
2.6
KB
-rw-r--r--
smv.py
2.71
KB
-rw-r--r--
snobol.py
2.67
KB
-rw-r--r--
solidity.py
3.1
KB
-rw-r--r--
sophia.py
3.29
KB
-rw-r--r--
special.py
3.37
KB
-rw-r--r--
spice.py
2.06
KB
-rw-r--r--
sql.py
33.42
KB
-rw-r--r--
srcinfo.py
1.63
KB
-rw-r--r--
stata.py
6.26
KB
-rw-r--r--
supercollider.py
3.61
KB
-rw-r--r--
tcl.py
5.27
KB
-rw-r--r--
teal.py
3.41
KB
-rw-r--r--
templates.py
69.96
KB
-rw-r--r--
teraterm.py
9.65
KB
-rw-r--r--
testing.py
10.52
KB
-rw-r--r--
text.py
1006
B
-rw-r--r--
textedit.py
7.44
KB
-rw-r--r--
textfmts.py
14.8
KB
-rw-r--r--
theorem.py
19.15
KB
-rw-r--r--
thingsdb.py
4.13
KB
-rw-r--r--
tnt.py
10.27
KB
-rw-r--r--
trafficscript.py
1.48
KB
-rw-r--r--
typoscript.py
8.01
KB
-rw-r--r--
unicon.py
18.08
KB
-rw-r--r--
urbi.py
5.9
KB
-rw-r--r--
usd.py
3.37
KB
-rw-r--r--
varnish.py
7.07
KB
-rw-r--r--
verification.py
3.82
KB
-rw-r--r--
web.py
894
B
-rw-r--r--
webassembly.py
5.56
KB
-rw-r--r--
webidl.py
10.23
KB
-rw-r--r--
webmisc.py
39.07
KB
-rw-r--r--
whiley.py
3.89
KB
-rw-r--r--
x10.py
1.84
KB
-rw-r--r--
xorg.py
865
B
-rw-r--r--
yang.py
4.42
KB
-rw-r--r--
zig.py
3.85
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : basic.py
""" 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. """ import re from pygments.lexer import RegexLexer, bygroups, default, words, include from pygments.token import Comment, Error, Keyword, Name, Number, \ Punctuation, Operator, String, Text, Whitespace from pygments.lexers import _vbscript_builtins __all__ = ['BlitzBasicLexer', 'BlitzMaxLexer', 'MonkeyLexer', 'CbmBasicV2Lexer', 'QBasicLexer', 'VBScriptLexer', 'BBCBasicLexer'] class BlitzMaxLexer(RegexLexer): """ For `BlitzMax <http://blitzbasic.com>`_ source code. .. versionadded:: 1.4 """ name = 'BlitzMax' aliases = ['blitzmax', 'bmax'] filenames = ['*.bmx'] mimetypes = ['text/x-bmx'] bmax_vopwords = r'\b(Shl|Shr|Sar|Mod)\b' bmax_sktypes = r'@{1,2}|[!#$%]' bmax_lktypes = r'\b(Int|Byte|Short|Float|Double|Long)\b' bmax_name = r'[a-z_]\w*' bmax_var = (r'(%s)(?:(?:([ \t]*)(%s)|([ \t]*:[ \t]*\b(?:Shl|Shr|Sar|Mod)\b)' r'|([ \t]*)(:)([ \t]*)(?:%s|(%s)))(?:([ \t]*)(Ptr))?)') % \ (bmax_name, bmax_sktypes, bmax_lktypes, bmax_name) bmax_func = bmax_var + r'?((?:[ \t]|\.\.\n)*)([(])' flags = re.MULTILINE | re.IGNORECASE tokens = { 'root': [ # Text (r'\s+', Whitespace), (r'(\.\.)(\n)', bygroups(Text, Whitespace)), # Line continuation # Comments (r"'.*?\n", Comment.Single), (r'([ \t]*)\bRem\n(\n|.)*?\s*\bEnd([ \t]*)Rem', Comment.Multiline), # Data types ('"', String.Double, 'string'), # Numbers (r'[0-9]+\.[0-9]*(?!\.)', Number.Float), (r'\.[0-9]*(?!\.)', Number.Float), (r'[0-9]+', Number.Integer), (r'\$[0-9a-f]+', Number.Hex), (r'\%[10]+', Number.Bin), # Other (r'(?:(?:(:)?([ \t]*)(:?%s|([+\-*/&|~]))|Or|And|Not|[=<>^]))' % (bmax_vopwords), Operator), (r'[(),.:\[\]]', Punctuation), (r'(?:#[\w \t]*)', Name.Label), (r'(?:\?[\w \t]*)', Comment.Preproc), # Identifiers (r'\b(New)\b([ \t]?)([(]?)(%s)' % (bmax_name), bygroups(Keyword.Reserved, Whitespace, Punctuation, Name.Class)), (r'\b(Import|Framework|Module)([ \t]+)(%s\.%s)' % (bmax_name, bmax_name), bygroups(Keyword.Reserved, Whitespace, Keyword.Namespace)), (bmax_func, bygroups(Name.Function, Whitespace, Keyword.Type, Operator, Whitespace, Punctuation, Whitespace, Keyword.Type, Name.Class, Whitespace, Keyword.Type, Whitespace, Punctuation)), (bmax_var, bygroups(Name.Variable, Whitespace, Keyword.Type, Operator, Whitespace, Punctuation, Whitespace, Keyword.Type, Name.Class, Whitespace, Keyword.Type)), (r'\b(Type|Extends)([ \t]+)(%s)' % (bmax_name), bygroups(Keyword.Reserved, Whitespace, Name.Class)), # Keywords (r'\b(Ptr)\b', Keyword.Type), (r'\b(Pi|True|False|Null|Self|Super)\b', Keyword.Constant), (r'\b(Local|Global|Const|Field)\b', Keyword.Declaration), (words(( 'TNullMethodException', 'TNullFunctionException', 'TNullObjectException', 'TArrayBoundsException', 'TRuntimeException'), prefix=r'\b', suffix=r'\b'), Name.Exception), (words(( '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', 'RestoreData'), prefix=r'\b', suffix=r'\b'), Keyword.Reserved), # Final resolve (for variable names and such) (r'(%s)' % (bmax_name), Name.Variable), ], 'string': [ (r'""', String.Double), (r'"C?', String.Double, '#pop'), (r'[^"]+', String.Double), ], } class BlitzBasicLexer(RegexLexer): """ For `BlitzBasic <http://blitzbasic.com>`_ source code. .. versionadded:: 2.0 """ name = 'BlitzBasic' aliases = ['blitzbasic', 'b3d', 'bplus'] filenames = ['*.bb', '*.decls'] mimetypes = ['text/x-bb'] bb_sktypes = r'@{1,2}|[#$%]' bb_name = r'[a-z]\w*' bb_var = (r'(%s)(?:([ \t]*)(%s)|([ \t]*)([.])([ \t]*)(?:(%s)))?') % \ (bb_name, bb_sktypes, bb_name) flags = re.MULTILINE | re.IGNORECASE tokens = { 'root': [ # Text (r'\s+', Whitespace), # Comments (r";.*?\n", Comment.Single), # Data types ('"', String.Double, 'string'), # Numbers (r'[0-9]+\.[0-9]*(?!\.)', Number.Float), (r'\.[0-9]+(?!\.)', Number.Float), (r'[0-9]+', Number.Integer), (r'\$[0-9a-f]+', Number.Hex), (r'\%[10]+', Number.Bin), # Other (words(('Shl', 'Shr', 'Sar', 'Mod', 'Or', 'And', 'Not', 'Abs', 'Sgn', 'Handle', 'Int', 'Float', 'Str', 'First', 'Last', 'Before', 'After'), prefix=r'\b', suffix=r'\b'), Operator), (r'([+\-*/~=<>^])', Operator), (r'[(),:\[\]\\]', Punctuation), (r'\.([ \t]*)(%s)' % bb_name, Name.Label), # Identifiers (r'\b(New)\b([ \t]+)(%s)' % (bb_name), bygroups(Keyword.Reserved, Whitespace, Name.Class)), (r'\b(Gosub|Goto)\b([ \t]+)(%s)' % (bb_name), bygroups(Keyword.Reserved, Whitespace, Name.Label)), (r'\b(Object)\b([ \t]*)([.])([ \t]*)(%s)\b' % (bb_name), bygroups(Operator, Whitespace, Punctuation, Whitespace, Name.Class)), (r'\b%s\b([ \t]*)(\()' % bb_var, bygroups(Name.Function, Whitespace, Keyword.Type, Whitespace, Punctuation, Whitespace, Name.Class, Whitespace, Punctuation)), (r'\b(Function)\b([ \t]+)%s' % bb_var, bygroups(Keyword.Reserved, Whitespace, Name.Function, Whitespace, Keyword.Type, Whitespace, Punctuation, Whitespace, Name.Class)), (r'\b(Type)([ \t]+)(%s)' % (bb_name), bygroups(Keyword.Reserved, Whitespace, Name.Class)), # Keywords (r'\b(Pi|True|False|Null)\b', Keyword.Constant), (r'\b(Local|Global|Const|Field|Dim)\b', Keyword.Declaration), (words(( 'End', 'Return', 'Exit', 'Chr', 'Len', 'Asc', 'New', 'Delete', 'Insert', 'Include', 'Function', 'Type', 'If', 'Then', 'Else', 'ElseIf', 'EndIf', 'For', 'To', 'Next', 'Step', 'Each', 'While', 'Wend', 'Repeat', 'Until', 'Forever', 'Select', 'Case', 'Default', 'Goto', 'Gosub', 'Data', 'Read', 'Restore'), prefix=r'\b', suffix=r'\b'), Keyword.Reserved), # Final resolve (for variable names and such) # (r'(%s)' % (bb_name), Name.Variable), (bb_var, bygroups(Name.Variable, Whitespace, Keyword.Type, Whitespace, Punctuation, Whitespace, Name.Class)), ], 'string': [ (r'""', String.Double), (r'"C?', String.Double, '#pop'), (r'[^"\n]+', String.Double), ], } class MonkeyLexer(RegexLexer): """ For `Monkey <https://en.wikipedia.org/wiki/Monkey_(programming_language)>`_ source code. .. versionadded:: 1.6 """ name = 'Monkey' aliases = ['monkey'] filenames = ['*.monkey'] mimetypes = ['text/x-monkey'] name_variable = r'[a-z_]\w*' name_function = r'[A-Z]\w*' name_constant = r'[A-Z_][A-Z0-9_]*' name_class = r'[A-Z]\w*' name_module = r'[a-z0-9_]*' keyword_type = r'(?:Int|Float|String|Bool|Object|Array|Void)' # ? == Bool // % == Int // # == Float // $ == String keyword_type_special = r'[?%#$]' flags = re.MULTILINE tokens = { 'root': [ # Text (r'\s+', Whitespace), # Comments (r"'.*", Comment), (r'(?i)^#rem\b', Comment.Multiline, 'comment'), # preprocessor directives (r'(?i)^(?:#If|#ElseIf|#Else|#EndIf|#End|#Print|#Error)\b', Comment.Preproc), # preprocessor variable (any line starting with '#' that is not a directive) (r'^#', Comment.Preproc, 'variables'), # String ('"', String.Double, 'string'), # Numbers (r'[0-9]+\.[0-9]*(?!\.)', Number.Float), (r'\.[0-9]+(?!\.)', Number.Float), (r'[0-9]+', Number.Integer), (r'\$[0-9a-fA-Z]+', Number.Hex), (r'\%[10]+', Number.Bin), # Native data types (r'\b%s\b' % keyword_type, Keyword.Type), # Exception handling (r'(?i)\b(?:Try|Catch|Throw)\b', Keyword.Reserved), (r'Throwable', Name.Exception), # Builtins (r'(?i)\b(?:Null|True|False)\b', Name.Builtin), (r'(?i)\b(?:Self|Super)\b', Name.Builtin.Pseudo), (r'\b(?:HOST|LANG|TARGET|CONFIG)\b', Name.Constant), # Keywords (r'(?i)^(Import)(\s+)(.*)(\n)', bygroups(Keyword.Namespace, Whitespace, Name.Namespace, Whitespace)), (r'(?i)^Strict\b.*\n', Keyword.Reserved), (r'(?i)(Const|Local|Global|Field)(\s+)', bygroups(Keyword.Declaration, Whitespace), 'variables'), (r'(?i)(New|Class|Interface|Extends|Implements)(\s+)', bygroups(Keyword.Reserved, Whitespace), 'classname'), (r'(?i)(Function|Method)(\s+)', bygroups(Keyword.Reserved, Whitespace), 'funcname'), (r'(?i)(?:End|Return|Public|Private|Extern|Property|' r'Final|Abstract)\b', Keyword.Reserved), # Flow Control stuff (r'(?i)(?:If|Then|Else|ElseIf|EndIf|' r'Select|Case|Default|' r'While|Wend|' r'Repeat|Until|Forever|' r'For|To|Until|Step|EachIn|Next|' r'Exit|Continue)(?=\s)', Keyword.Reserved), # not used yet (r'(?i)\b(?:Module|Inline)\b', Keyword.Reserved), # Array (r'[\[\]]', Punctuation), # Other (r'<=|>=|<>|\*=|/=|\+=|-=|&=|~=|\|=|[-&*/^+=<>|~]', Operator), (r'(?i)(?:Not|Mod|Shl|Shr|And|Or)', Operator.Word), (r'[(){}!#,.:]', Punctuation), # catch the rest (r'%s\b' % name_constant, Name.Constant), (r'%s\b' % name_function, Name.Function), (r'%s\b' % name_variable, Name.Variable), ], 'funcname': [ (r'(?i)%s\b' % name_function, Name.Function), (r':', Punctuation, 'classname'), (r'\s+', Whitespace), (r'\(', Punctuation, 'variables'), (r'\)', Punctuation, '#pop') ], 'classname': [ (r'%s\.' % name_module, Name.Namespace), (r'%s\b' % keyword_type, Keyword.Type), (r'%s\b' % name_class, Name.Class), # array (of given size) (r'(\[)(\s*)(\d*)(\s*)(\])', bygroups(Punctuation, Whitespace, Number.Integer, Whitespace, Punctuation)), # generics (r'\s+(?!<)', Whitespace, '#pop'), (r'<', Punctuation, '#push'), (r'>', Punctuation, '#pop'), (r'\n', Whitespace, '#pop'), default('#pop') ], 'variables': [ (r'%s\b' % name_constant, Name.Constant), (r'%s\b' % name_variable, Name.Variable), (r'%s' % keyword_type_special, Keyword.Type), (r'\s+', Whitespace), (r':', Punctuation, 'classname'), (r',', Punctuation, '#push'), default('#pop') ], 'string': [ (r'[^"~]+', String.Double), (r'~q|~n|~r|~t|~z|~~', String.Escape), (r'"', String.Double, '#pop'), ], 'comment': [ (r'(?i)^#rem.*?', Comment.Multiline, "#push"), (r'(?i)^#end.*?', Comment.Multiline, "#pop"), (r'\n', Comment.Multiline), (r'.+', Comment.Multiline), ], } class CbmBasicV2Lexer(RegexLexer): """ For CBM BASIC V2 sources. .. versionadded:: 1.6 """ name = 'CBM BASIC V2' aliases = ['cbmbas'] filenames = ['*.bas'] flags = re.IGNORECASE tokens = { 'root': [ (r'rem.*\n', Comment.Single), (r'\s+', Whitespace), (r'new|run|end|for|to|next|step|go(to|sub)?|on|return|stop|cont' r'|if|then|input#?|read|wait|load|save|verify|poke|sys|print#?' r'|list|clr|cmd|open|close|get#?', Keyword.Reserved), (r'data|restore|dim|let|def|fn', Keyword.Declaration), (r'tab|spc|sgn|int|abs|usr|fre|pos|sqr|rnd|log|exp|cos|sin|tan|atn' r'|peek|len|val|asc|(str|chr|left|right|mid)\$', Name.Builtin), (r'[-+*/^<>=]', Operator), (r'not|and|or', Operator.Word), (r'"[^"\n]*.', String), (r'\d+|[-+]?\d*\.\d*(e[-+]?\d+)?', Number.Float), (r'[(),:;]', Punctuation), (r'\w+[$%]?', Name), ] } def analyse_text(text): # if it starts with a line number, it shouldn't be a "modern" Basic # like VB.net if re.match(r'^\d+', text): return 0.2 class QBasicLexer(RegexLexer): """ For `QBasic <http://en.wikipedia.org/wiki/QBasic>`_ source code. .. versionadded:: 2.0 """ name = 'QBasic' aliases = ['qbasic', 'basic'] filenames = ['*.BAS', '*.bas'] mimetypes = ['text/basic'] declarations = ('DATA', 'LET') functions = ( 'ABS', 'ASC', 'ATN', 'CDBL', 'CHR$', 'CINT', 'CLNG', 'COMMAND$', 'COS', 'CSNG', 'CSRLIN', 'CVD', 'CVDMBF', 'CVI', 'CVL', 'CVS', 'CVSMBF', 'DATE$', 'ENVIRON$', 'EOF', 'ERDEV', 'ERDEV$', 'ERL', 'ERR', 'EXP', 'FILEATTR', 'FIX', 'FRE', 'FREEFILE', 'HEX$', 'INKEY$', 'INP', 'INPUT$', 'INSTR', 'INT', 'IOCTL$', 'LBOUND', 'LCASE$', 'LEFT$', 'LEN', 'LOC', 'LOF', 'LOG', 'LPOS', 'LTRIM$', 'MID$', 'MKD$', 'MKDMBF$', 'MKI$', 'MKL$', 'MKS$', 'MKSMBF$', 'OCT$', 'PEEK', 'PEN', 'PLAY', 'PMAP', 'POINT', 'POS', 'RIGHT$', 'RND', 'RTRIM$', 'SADD', 'SCREEN', 'SEEK', 'SETMEM', 'SGN', 'SIN', 'SPACE$', 'SPC', 'SQR', 'STICK', 'STR$', 'STRIG', 'STRING$', 'TAB', 'TAN', 'TIME$', 'TIMER', 'UBOUND', 'UCASE$', 'VAL', 'VARPTR', 'VARPTR$', 'VARSEG' ) metacommands = ('$DYNAMIC', '$INCLUDE', '$STATIC') operators = ('AND', 'EQV', 'IMP', 'NOT', 'OR', 'XOR') statements = ( 'BEEP', 'BLOAD', 'BSAVE', 'CALL', 'CALL ABSOLUTE', 'CALL INTERRUPT', 'CALLS', 'CHAIN', 'CHDIR', 'CIRCLE', 'CLEAR', 'CLOSE', 'CLS', 'COLOR', 'COM', 'COMMON', 'CONST', 'DATA', 'DATE$', 'DECLARE', 'DEF FN', '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', 'INPUT', 'INPUT #', 'IOCTL', 'KEY', 'KEY', 'KILL', 'LET', 'LINE', 'LINE INPUT', 'LINE INPUT #', 'LOCATE', 'LOCK', 'UNLOCK', 'LPRINT', 'LSET', 'MID$', 'MKDIR', 'NAME', 'ON COM', 'ON ERROR', 'ON KEY', 'ON PEN', 'ON PLAY', 'ON STRIG', 'ON TIMER', 'ON UEVENT', 'ON', 'OPEN', 'OPEN COM', 'OPTION BASE', 'OUT', 'PAINT', 'PALETTE', 'PCOPY', 'PEN', 'PLAY', 'POKE', 'PRESET', 'PRINT', 'PRINT #', 'PRINT USING', 'PSET', 'PUT', 'PUT', 'RANDOMIZE', 'READ', 'REDIM', 'REM', 'RESET', 'RESTORE', 'RESUME', 'RETURN', 'RMDIR', 'RSET', 'RUN', 'SCREEN', 'SEEK', 'SELECT CASE', 'SHARED', 'SHELL', 'SLEEP', 'SOUND', 'STATIC', 'STOP', 'STRIG', 'SUB', 'SWAP', 'SYSTEM', 'TIME$', 'TIMER', 'TROFF', 'TRON', 'TYPE', 'UEVENT', 'UNLOCK', 'VIEW', 'WAIT', 'WHILE', 'WEND', 'WIDTH', 'WINDOW', 'WRITE' ) keywords = ( 'ACCESS', 'ALIAS', 'ANY', 'APPEND', 'AS', 'BASE', 'BINARY', 'BYVAL', 'CASE', 'CDECL', 'DOUBLE', 'ELSE', 'ELSEIF', 'ENDIF', 'INTEGER', 'IS', 'LIST', 'LOCAL', 'LONG', 'LOOP', 'MOD', 'NEXT', 'OFF', 'ON', 'OUTPUT', 'RANDOM', 'SIGNAL', 'SINGLE', 'STEP', 'STRING', 'THEN', 'TO', 'UNTIL', 'USING', 'WEND' ) tokens = { 'root': [ (r'\n+', Text), (r'\s+', Text.Whitespace), (r'^(\s*)(\d*)(\s*)(REM .*)$', bygroups(Text.Whitespace, Name.Label, Text.Whitespace, Comment.Single)), (r'^(\s*)(\d+)(\s*)', bygroups(Text.Whitespace, Name.Label, Text.Whitespace)), (r'(?=[\s]*)(\w+)(?=[\s]*=)', Name.Variable.Global), (r'(?=[^"]*)\'.*$', Comment.Single), (r'"[^\n"]*"', String.Double), (r'(END)(\s+)(FUNCTION|IF|SELECT|SUB)', bygroups(Keyword.Reserved, Text.Whitespace, Keyword.Reserved)), (r'(DECLARE)(\s+)([A-Z]+)(\s+)(\S+)', bygroups(Keyword.Declaration, Text.Whitespace, Name.Variable, Text.Whitespace, Name)), (r'(DIM)(\s+)(SHARED)(\s+)([^\s(]+)', bygroups(Keyword.Declaration, Text.Whitespace, Name.Variable, Text.Whitespace, Name.Variable.Global)), (r'(DIM)(\s+)([^\s(]+)', bygroups(Keyword.Declaration, Text.Whitespace, Name.Variable.Global)), (r'^(\s*)([a-zA-Z_]+)(\s*)(\=)', bygroups(Text.Whitespace, Name.Variable.Global, Text.Whitespace, Operator)), (r'(GOTO|GOSUB)(\s+)(\w+\:?)', bygroups(Keyword.Reserved, Text.Whitespace, Name.Label)), (r'(SUB)(\s+)(\w+\:?)', bygroups(Keyword.Reserved, Text.Whitespace, Name.Label)), include('declarations'), include('functions'), include('metacommands'), include('operators'), include('statements'), include('keywords'), (r'[a-zA-Z_]\w*[$@#&!]', Name.Variable.Global), (r'[a-zA-Z_]\w*\:', Name.Label), (r'\-?\d*\.\d+[@|#]?', Number.Float), (r'\-?\d+[@|#]', Number.Float), (r'\-?\d+#?', Number.Integer.Long), (r'\-?\d+#?', Number.Integer), (r'!=|==|:=|\.=|<<|>>|[-~+/\\*%=<>&^|?:!.]', Operator), (r'[\[\]{}(),;]', Punctuation), (r'[\w]+', Name.Variable.Global), ], # can't use regular \b because of X$() # XXX: use words() here 'declarations': [ (r'\b(%s)(?=\(|\b)' % '|'.join(map(re.escape, declarations)), Keyword.Declaration), ], 'functions': [ (r'\b(%s)(?=\(|\b)' % '|'.join(map(re.escape, functions)), Keyword.Reserved), ], 'metacommands': [ (r'\b(%s)(?=\(|\b)' % '|'.join(map(re.escape, metacommands)), Keyword.Constant), ], 'operators': [ (r'\b(%s)(?=\(|\b)' % '|'.join(map(re.escape, operators)), Operator.Word), ], 'statements': [ (r'\b(%s)\b' % '|'.join(map(re.escape, statements)), Keyword.Reserved), ], 'keywords': [ (r'\b(%s)\b' % '|'.join(keywords), Keyword), ], } def analyse_text(text): if '$DYNAMIC' in text or '$STATIC' in text: return 0.9 class VBScriptLexer(RegexLexer): """ VBScript is scripting language that is modeled on Visual Basic. .. versionadded:: 2.4 """ name = 'VBScript' aliases = ['vbscript'] filenames = ['*.vbs', '*.VBS'] flags = re.IGNORECASE tokens = { 'root': [ (r"'[^\n]*", Comment.Single), (r'\s+', Whitespace), ('"', String.Double, 'string'), ('&h[0-9a-f]+', Number.Hex), # Float variant 1, for example: 1., 1.e2, 1.2e3 (r'[0-9]+\.[0-9]*(e[+-]?[0-9]+)?', Number.Float), (r'\.[0-9]+(e[+-]?[0-9]+)?', Number.Float), # Float variant 2, for example: .1, .1e2 (r'[0-9]+e[+-]?[0-9]+', Number.Float), # Float variant 3, for example: 123e45 (r'[0-9]+', Number.Integer), ('#.+#', String), # date or time value (r'(dim)(\s+)([a-z_][a-z0-9_]*)', bygroups(Keyword.Declaration, Whitespace, Name.Variable), 'dim_more'), (r'(function|sub)(\s+)([a-z_][a-z0-9_]*)', bygroups(Keyword.Declaration, Whitespace, Name.Function)), (r'(class)(\s+)([a-z_][a-z0-9_]*)', bygroups(Keyword.Declaration, Whitespace, Name.Class)), (r'(const)(\s+)([a-z_][a-z0-9_]*)', bygroups(Keyword.Declaration, Whitespace, Name.Constant)), (r'(end)(\s+)(class|function|if|property|sub|with)', bygroups(Keyword, Whitespace, Keyword)), (r'(on)(\s+)(error)(\s+)(goto)(\s+)(0)', bygroups(Keyword, Whitespace, Keyword, Whitespace, Keyword, Whitespace, Number.Integer)), (r'(on)(\s+)(error)(\s+)(resume)(\s+)(next)', bygroups(Keyword, Whitespace, Keyword, Whitespace, Keyword, Whitespace, Keyword)), (r'(option)(\s+)(explicit)', bygroups(Keyword, Whitespace, Keyword)), (r'(property)(\s+)(get|let|set)(\s+)([a-z_][a-z0-9_]*)', bygroups(Keyword.Declaration, Whitespace, Keyword.Declaration, Whitespace, Name.Property)), (r'rem\s.*[^\n]*', Comment.Single), (words(_vbscript_builtins.KEYWORDS, suffix=r'\b'), Keyword), (words(_vbscript_builtins.OPERATORS), Operator), (words(_vbscript_builtins.OPERATOR_WORDS, suffix=r'\b'), Operator.Word), (words(_vbscript_builtins.BUILTIN_CONSTANTS, suffix=r'\b'), Name.Constant), (words(_vbscript_builtins.BUILTIN_FUNCTIONS, suffix=r'\b'), Name.Builtin), (words(_vbscript_builtins.BUILTIN_VARIABLES, suffix=r'\b'), Name.Builtin), (r'[a-z_][a-z0-9_]*', Name), (r'\b_\n', Operator), (words(r'(),.:'), Punctuation), (r'.+(\n)?', Error) ], 'dim_more': [ (r'(\s*)(,)(\s*)([a-z_][a-z0-9]*)', bygroups(Whitespace, Punctuation, Whitespace, Name.Variable)), default('#pop'), ], 'string': [ (r'[^"\n]+', String.Double), (r'\"\"', String.Double), (r'"', String.Double, '#pop'), (r'\n', Error, '#pop'), # Unterminated string ], } class BBCBasicLexer(RegexLexer): """ 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 """ base_keywords = ['OTHERWISE', 'AND', 'DIV', 'EOR', 'MOD', 'OR', 'ERROR', 'LINE', 'OFF', 'STEP', 'SPC', 'TAB', 'ELSE', 'THEN', 'OPENIN', 'PTR', 'PAGE', 'TIME', 'LOMEM', 'HIMEM', 'ABS', 'ACS', 'ADVAL', 'ASC', 'ASN', 'ATN', 'BGET', 'COS', 'COUNT', 'DEG', 'ERL', 'ERR', 'EVAL', 'EXP', 'EXT', 'FALSE', 'FN', 'GET', 'INKEY', 'INSTR', 'INT', 'LEN', 'LN', 'LOG', 'NOT', 'OPENUP', 'OPENOUT', 'PI', 'POINT', 'POS', 'RAD', 'RND', 'SGN', 'SIN', 'SQR', 'TAN', 'TO', 'TRUE', 'USR', 'VAL', 'VPOS', 'CHR$', 'GET$', 'INKEY$', 'LEFT$', 'MID$', 'RIGHT$', 'STR$', 'STRING$', 'EOF', 'PTR', 'PAGE', 'TIME', 'LOMEM', 'HIMEM', 'SOUND', 'BPUT', 'CALL', 'CHAIN', 'CLEAR', 'CLOSE', 'CLG', 'CLS', 'DATA', 'DEF', 'DIM', 'DRAW', 'END', 'ENDPROC', 'ENVELOPE', 'FOR', 'GOSUB', 'GOTO', 'GCOL', 'IF', 'INPUT', 'LET', 'LOCAL', 'MODE', 'MOVE', 'NEXT', 'ON', 'VDU', 'PLOT', 'PRINT', 'PROC', 'READ', 'REM', 'REPEAT', 'REPORT', 'RESTORE', 'RETURN', 'RUN', 'STOP', 'COLOUR', 'TRACE', 'UNTIL', 'WIDTH', 'OSCLI'] basic5_keywords = ['WHEN', 'OF', 'ENDCASE', 'ENDIF', 'ENDWHILE', 'CASE', 'CIRCLE', 'FILL', 'ORIGIN', 'POINT', 'RECTANGLE', 'SWAP', 'WHILE', 'WAIT', 'MOUSE', 'QUIT', 'SYS', 'INSTALL', 'LIBRARY', 'TINT', 'ELLIPSE', 'BEATS', 'TEMPO', 'VOICES', 'VOICE', 'STEREO', 'OVERLAY', 'APPEND', 'AUTO', 'CRUNCH', 'DELETE', 'EDIT', 'HELP', 'LIST', 'LOAD', 'LVAR', 'NEW', 'OLD', 'RENUMBER', 'SAVE', 'TEXTLOAD', 'TEXTSAVE', 'TWIN', 'TWINO', 'INSTALL', 'SUM', 'BEAT'] name = 'BBC Basic' aliases = ['bbcbasic'] filenames = ['*.bbc'] tokens = { 'root': [ (r"[0-9]+", Name.Label), (r"(\*)([^\n]*)", bygroups(Keyword.Pseudo, Comment.Special)), default('code'), ], 'code': [ (r"(REM)([^\n]*)", bygroups(Keyword.Declaration, Comment.Single)), (r'\n', Whitespace, 'root'), (r'\s+', Whitespace), (r':', Comment.Preproc), # Some special cases to make functions come out nicer (r'(DEF)(\s*)(FN|PROC)([A-Za-z_@][\w@]*)', bygroups(Keyword.Declaration, Whitespace, Keyword.Declaration, Name.Function)), (r'(FN|PROC)([A-Za-z_@][\w@]*)', bygroups(Keyword, Name.Function)), (r'(GOTO|GOSUB|THEN|RESTORE)(\s*)(\d+)', bygroups(Keyword, Whitespace, Name.Label)), (r'(TRUE|FALSE)', Keyword.Constant), (r'(PAGE|LOMEM|HIMEM|TIME|WIDTH|ERL|ERR|REPORT\$|POS|VPOS|VOICES)', Keyword.Pseudo), (words(base_keywords), Keyword), (words(basic5_keywords), Keyword), ('"', String.Double, 'string'), ('%[01]{1,32}', Number.Bin), ('&[0-9a-f]{1,8}', Number.Hex), (r'[+-]?[0-9]+\.[0-9]*(E[+-]?[0-9]+)?', Number.Float), (r'[+-]?\.[0-9]+(E[+-]?[0-9]+)?', Number.Float), (r'[+-]?[0-9]+E[+-]?[0-9]+', Number.Float), (r'[+-]?\d+', Number.Integer), (r'([A-Za-z_@][\w@]*[%$]?)', Name.Variable), (r'([+\-]=|[$!|?+\-*/%^=><();]|>=|<=|<>|<<|>>|>>>|,)', Operator), ], 'string': [ (r'[^"\n]+', String.Double), (r'"', String.Double, '#pop'), (r'\n', Error, 'root'), # Unterminated string ], } def analyse_text(text): if text.startswith('10REM >') or text.startswith('REM >'): return 0.9
Close