Linux iad1-shared-b7-18 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64
Apache
: 67.205.6.31 | : 216.73.216.47
Cant Read [ /etc/named.conf ]
8.2.29
fernandoquevedo
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
usr /
share /
highlight /
langDefs /
[ HOME SHELL ]
Name
Size
Permission
Action
abap4.lang
3.96
KB
-rw-r--r--
abc.lang
831
B
-rw-r--r--
abnf.lang
565
B
-rw-r--r--
actionscript.lang
7.75
KB
-rw-r--r--
ada.lang
1.63
KB
-rw-r--r--
agda.lang
955
B
-rw-r--r--
algol.lang
857
B
-rw-r--r--
ampl.lang
1.91
KB
-rw-r--r--
amtrix.lang
2.41
KB
-rw-r--r--
applescript.lang
2.27
KB
-rw-r--r--
arc.lang
4.34
KB
-rw-r--r--
arm.lang
2.5
KB
-rw-r--r--
as400cl.lang
28.55
KB
-rw-r--r--
ascend.lang
1.37
KB
-rw-r--r--
asp.lang
1.1
KB
-rw-r--r--
aspect.lang
13.03
KB
-rw-r--r--
assembler.lang
4.14
KB
-rw-r--r--
ats.lang
1.39
KB
-rw-r--r--
autohotkey.lang
3.78
KB
-rw-r--r--
autoit.lang
5.66
KB
-rw-r--r--
avenue.lang
33.83
KB
-rw-r--r--
awk.lang
854
B
-rw-r--r--
bat.lang
2.12
KB
-rw-r--r--
bbcode.lang
160
B
-rw-r--r--
bcpl.lang
937
B
-rw-r--r--
bibtex.lang
519
B
-rw-r--r--
biferno.lang
7.26
KB
-rw-r--r--
bison.lang
1.79
KB
-rw-r--r--
blitzbasic.lang
7.71
KB
-rw-r--r--
bms.lang
2.55
KB
-rw-r--r--
bnf.lang
395
B
-rw-r--r--
boo.lang
1.11
KB
-rw-r--r--
c.lang
2.38
KB
-rw-r--r--
ceylon.lang
1.18
KB
-rw-r--r--
charmm.lang
1.1
KB
-rw-r--r--
chill.lang
1001
B
-rw-r--r--
chpl.lang
1.53
KB
-rw-r--r--
clean.lang
720
B
-rw-r--r--
clearbasic.lang
3.64
KB
-rw-r--r--
clipper.lang
4.21
KB
-rw-r--r--
clojure.lang
1.16
KB
-rw-r--r--
clp.lang
52.47
KB
-rw-r--r--
cmake.lang
1.06
KB
-rw-r--r--
cobol.lang
4.91
KB
-rw-r--r--
coffee.lang
1.61
KB
-rw-r--r--
coldfusion.lang
1.87
KB
-rw-r--r--
conf.lang
360
B
-rw-r--r--
crk.lang
1.25
KB
-rw-r--r--
cs_block_regex.lang
849
B
-rw-r--r--
csharp.lang
1.64
KB
-rw-r--r--
css.lang
597
B
-rw-r--r--
d.lang
7.23
KB
-rw-r--r--
dart.lang
937
B
-rw-r--r--
diff.lang
291
B
-rw-r--r--
docker.lang
433
B
-rw-r--r--
dts.lang
618
B
-rw-r--r--
dylan.lang
1.23
KB
-rw-r--r--
ebnf.lang
392
B
-rw-r--r--
eiffel.lang
1.05
KB
-rw-r--r--
elixir.lang
1.3
KB
-rw-r--r--
email.lang
348
B
-rw-r--r--
erlang.lang
1.62
KB
-rw-r--r--
euphoria.lang
2.74
KB
-rw-r--r--
express.lang
5.19
KB
-rw-r--r--
fame.lang
4.23
KB
-rw-r--r--
fasm.lang
37.5
KB
-rw-r--r--
felix.lang
1.42
KB
-rw-r--r--
fortran77.lang
792
B
-rw-r--r--
fortran90.lang
1.48
KB
-rw-r--r--
frink.lang
3.38
KB
-rw-r--r--
fsharp.lang
1.41
KB
-rw-r--r--
fstab.lang
623
B
-rw-r--r--
fx.lang
1.1
KB
-rw-r--r--
gambas.lang
2.98
KB
-rw-r--r--
gdb.lang
8.67
KB
-rw-r--r--
gdscript.lang
6.01
KB
-rw-r--r--
go.lang
1.15
KB
-rw-r--r--
graphviz.lang
4.18
KB
-rw-r--r--
haskell.lang
6.47
KB
-rw-r--r--
haxe.lang
1
KB
-rw-r--r--
hcl.lang
656
B
-rw-r--r--
html.lang
1.65
KB
-rw-r--r--
httpd.lang
5.06
KB
-rw-r--r--
icon.lang
751
B
-rw-r--r--
idl.lang
1.87
KB
-rw-r--r--
idlang.lang
10.34
KB
-rw-r--r--
inc_luatex.lang
1.58
KB
-rw-r--r--
informix.lang
3.15
KB
-rw-r--r--
ini.lang
344
B
-rw-r--r--
innosetup.lang
7.17
KB
-rw-r--r--
interlis.lang
2.31
KB
-rw-r--r--
io.lang
2.05
KB
-rw-r--r--
jasmin.lang
2.91
KB
-rw-r--r--
java.lang
1.04
KB
-rw-r--r--
js.lang
2.11
KB
-rw-r--r--
js_regex.lang
658
B
-rw-r--r--
json.lang
559
B
-rw-r--r--
jsp.lang
1.1
KB
-rw-r--r--
jsx.lang
702
B
-rw-r--r--
julia.lang
1.19
KB
-rw-r--r--
kotlin.lang
1.04
KB
-rw-r--r--
ldif.lang
2
KB
-rw-r--r--
less.lang
612
B
-rw-r--r--
lhs.lang
139
B
-rw-r--r--
lilypond.lang
523
B
-rw-r--r--
limbo.lang
516
B
-rw-r--r--
lindenscript.lang
483
B
-rw-r--r--
lisp.lang
869
B
-rw-r--r--
logtalk.lang
5.94
KB
-rw-r--r--
lotos.lang
1.16
KB
-rw-r--r--
lotus.lang
4.17
KB
-rw-r--r--
lua.lang
1.89
KB
-rw-r--r--
luban.lang
768
B
-rw-r--r--
make.lang
1.7
KB
-rw-r--r--
maple.lang
8.22
KB
-rw-r--r--
matlab.lang
5.06
KB
-rw-r--r--
maya.lang
12
KB
-rw-r--r--
md.lang
285
B
-rw-r--r--
mercury.lang
1.14
KB
-rw-r--r--
miranda.lang
1.67
KB
-rw-r--r--
mod2.lang
1.16
KB
-rw-r--r--
mod3.lang
1.35
KB
-rw-r--r--
modelica.lang
1.08
KB
-rw-r--r--
moon.lang
400
B
-rw-r--r--
ms.lang
1.27
KB
-rw-r--r--
msl.lang
1.32
KB
-rw-r--r--
mssql.lang
7.89
KB
-rw-r--r--
mxml.lang
520
B
-rw-r--r--
n3.lang
670
B
-rw-r--r--
nasal.lang
520
B
-rw-r--r--
nbc.lang
3.44
KB
-rw-r--r--
nemerle.lang
1.33
KB
-rw-r--r--
netrexx.lang
1.15
KB
-rw-r--r--
nginx.lang
437
B
-rw-r--r--
nice.lang
188
B
-rw-r--r--
nim.lang
1.46
KB
-rw-r--r--
nsis.lang
3.67
KB
-rw-r--r--
nxc.lang
1.18
KB
-rw-r--r--
oberon.lang
1017
B
-rw-r--r--
objc.lang
1.5
KB
-rw-r--r--
ocaml.lang
1.26
KB
-rw-r--r--
octave.lang
3.15
KB
-rw-r--r--
oorexx.lang
2.03
KB
-rw-r--r--
os.lang
773
B
-rw-r--r--
oz.lang
864
B
-rw-r--r--
paradox.lang
11.08
KB
-rw-r--r--
pas.lang
1.96
KB
-rw-r--r--
pdf.lang
1.66
KB
-rw-r--r--
perl.lang
5.11
KB
-rw-r--r--
php.lang
2.08
KB
-rw-r--r--
pike.lang
4.07
KB
-rw-r--r--
pl1.lang
8.04
KB
-rw-r--r--
plperl.lang
168
B
-rw-r--r--
plpython.lang
172
B
-rw-r--r--
pltcl.lang
166
B
-rw-r--r--
po.lang
387
B
-rw-r--r--
pony.lang
1.28
KB
-rw-r--r--
pov.lang
4.66
KB
-rw-r--r--
pro.lang
1.51
KB
-rw-r--r--
progress.lang
46.2
KB
-rw-r--r--
ps.lang
711
B
-rw-r--r--
ps1.lang
3.97
KB
-rw-r--r--
psl.lang
2.3
KB
-rw-r--r--
pure.lang
623
B
-rw-r--r--
purebasic.lang
15.92
KB
-rw-r--r--
pyrex.lang
1.68
KB
-rw-r--r--
python.lang
2.73
KB
-rw-r--r--
q.lang
930
B
-rw-r--r--
qmake.lang
671
B
-rw-r--r--
qml.lang
6.32
KB
-rw-r--r--
qu.lang
1.02
KB
-rw-r--r--
r.lang
507
B
-rw-r--r--
rebol.lang
484
B
-rw-r--r--
rexx.lang
3.94
KB
-rw-r--r--
rnc.lang
1.45
KB
-rw-r--r--
rpg.lang
1.88
KB
-rw-r--r--
rpl.lang
3.02
KB
-rw-r--r--
rs.lang
1.3
KB
-rw-r--r--
ruby.lang
3.6
KB
-rw-r--r--
s.lang
28.28
KB
-rw-r--r--
sas.lang
507
B
-rw-r--r--
scala.lang
360
B
-rw-r--r--
scilab.lang
3.41
KB
-rw-r--r--
scss.lang
728
B
-rw-r--r--
sh.lang
3.05
KB
-rw-r--r--
small.lang
641
B
-rw-r--r--
smalltalk.lang
749
B
-rw-r--r--
sml.lang
923
B
-rw-r--r--
snmp.lang
1.96
KB
-rw-r--r--
snobol.lang
746
B
-rw-r--r--
spec.lang
2.62
KB
-rw-r--r--
spn.lang
871
B
-rw-r--r--
sql.lang
9.5
KB
-rw-r--r--
squirrel.lang
651
B
-rw-r--r--
styl.lang
692
B
-rw-r--r--
svg.lang
609
B
-rw-r--r--
swift.lang
1.43
KB
-rw-r--r--
sybase.lang
371
B
-rw-r--r--
tcl.lang
2.81
KB
-rw-r--r--
tcsh.lang
1.05
KB
-rw-r--r--
tex.lang
824
B
-rw-r--r--
ts.lang
1.7
KB
-rw-r--r--
tsql.lang
5.25
KB
-rw-r--r--
ttcn3.lang
1.13
KB
-rw-r--r--
txt.lang
135
B
-rw-r--r--
upc.lang
382
B
-rw-r--r--
vala.lang
1.4
KB
-rw-r--r--
vb.lang
1.36
KB
-rw-r--r--
verilog.lang
1.98
KB
-rw-r--r--
vhd.lang
3.61
KB
-rw-r--r--
vimscript.lang
974
B
-rw-r--r--
whiley.lang
1.05
KB
-rw-r--r--
xml.lang
458
B
-rw-r--r--
xpp.lang
316
B
-rw-r--r--
yaiff.lang
476
B
-rw-r--r--
yaml.lang
5.96
KB
-rw-r--r--
yang.lang
1.73
KB
-rw-r--r--
znn.lang
1.57
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : purebasic.lang
--[[****************************************************************************** * * * PureBASIC Language Definition * * * * v1.7.1 - 2017/11/18 * * * ****************************************************************************** PureBASIC v5.00-5.61 -- The goal of this language definition is to emulate the way PureBASIC's native IDE highlights its code, including inline Assembly syntax coloring. When used with the "edit-purebasic" theme, PureBASIC code will be highlighted just like in its native IDE. Keywords from all PureBASIC versions (from 5.00 up to current) are added to the list (deprecated keywords are preserved) to ensure that any code written for PureBASIC >=5.00 will be parsed and highlighted correctly. Comments in color definitions refer to PureBASIC native IDE's default palette. ------------------------------------------------------------------------------ This language definition is maintained at the PureBASIC Archives project: https://github.com/tajmone/purebasic-archives/tree/master/syntax-highlighting/highlight (visit the above link for more info and resources on this lang definition) ------------------------------------------------------------------------------ Written by Tristano Ajmone: <tajmone@gmail.com> https://github.com/tajmone Released into the public domain according to the Unlicense terms: http://unlicense.org/ ------------------------------------------------------------------------------ ]] Description="PureBASIC" IgnoreCase=false Comments={ -- PB IDE color: #00AAAA (Persian Green/Tradewind) { Block=false, Nested=false, Delimiter = { [[ ; ]] } } } Strings={ -- PB IDE color: #0080FF (Azure Radiance) Delimiter=[[ " ]], Escape=[=[\\[abfnrtv"\\]]=], -- PB IDE color: same as String } --[[ STRINGS NOTE: There's more to PB strings than this delimiter definition. Escaped strings (~"") are handled via `Keyword Id=4` and custom code in the `OnStateChange()` function found below. --]] Operators=[[\&|<|>|\!|\||\=|\/|\*|\%|\+|\-|~]] -- PB IDE color: same as normal text (Black) -- NUMBERS > PB IDE color: same as normal text (Black) Digits=[[ (?x) # ============ HEX ============ # Pascal style ($FF): \$[0-9a-fA-F]+\b # ============ BINARY ============ | %[01]+\b # ============ FLOAT ============ # With decimal point separator: | \b[-]?\d+\.\d+(?:[eE][\-\+]?\d+)?[a-zA-Z]*\b # Without decimal point separator: | \b[-]?\d+(?:[eE][\-\+]?\d+)[a-zA-Z]*\b # ============ DECIMAL ============ | (?<!\$)\b\d+\b ]] -- FLOATS NOTE: PureBASIC strips and ignores all suffixes from float numbers. -- Therefore "1.575e+1" and "1.575e+1bananas" are both valid float values -- in PureBASIC code (both yelding the smae value of 15.75). Keywords={ { Id=1, -- PureBASIC Keywords > PB IDE color: #006666 (Blue Stone) + Bold List={ -- Keywords list built by parsing the tokens inside PureBASIC SDK's -- "SyntaxHilighting.dll" (from each PureBASIC version)... "Align", "And", "Array", "As", "Break", "CallDebugger", "Case", "CompilerCase", "CompilerDefault", "CompilerElse", "CompilerElseIf", "CompilerEndIf", "CompilerEndSelect", "CompilerError", "CompilerIf", "CompilerSelect", "CompilerWarning", "Continue", "Data", "DataSection", "Debug", "DebugLevel", "Declare", "DeclareC", "DeclareCDLL", "DeclareDLL", "DeclareModule", "Default", "Define", "Dim", "DisableASM", "DisableDebugger", "DisableExplicit", "Else", "ElseIf", "EnableASM", "EnableDebugger", "EnableExplicit", "End", "EndDataSection", "EndDeclareModule", "EndEnumeration", "EndIf", "EndImport", "EndInterface", "EndMacro", "EndModule", "EndProcedure", "EndSelect", "EndStructure", "EndStructureUnion", "EndWith", "Enumeration", "EnumerationBinary", "Extends", "FakeReturn", "For", "ForEach", "ForEver", "Global", "Gosub", "Goto", "If", "Import", "ImportC", "IncludeBinary", "IncludeFile", "IncludePath", "Interface", "List", "Macro", "MacroExpandedCount", "Map", "Module", "NewList", "NewMap", "Next", "Not", "Or", "Procedure", "ProcedureC", "ProcedureCDLL", "ProcedureDLL", "ProcedureReturn", "Protected", "Prototype", "PrototypeC", "ReDim", "Read", "Repeat", "Restore", "Return", "Runtime", "Select", "Shared", "Static", "Step", "Structure", "StructureUnion", "Swap", "Threaded", "To", "UndefineMacro", "Until", "Until ", "UnuseModule", "UseModule", "Wend", "While", "With", "XIncludeFile", "XOr", }, }, { Id=2, -- Constants > PB IDE color: #924B72 (Cannon Pink) Regex=[[ (#[a-zA-Z_]\w*\$?) ]] }, { Id=2, -- Inline ASM > PB IDE color: #924B72 (Cannon Pink) Regex=[[ ^\s*(![^;]*) ]], Group=1 }, { Id=2, -- ASM Keywords > PB IDE color: #924B72 (Cannon Pink) List={ -- Keywords list built by parsing the tokens inside PureBASIC SDK's -- "SyntaxHilighting.dll" (from each PureBASIC version)... "AAA", "AAD", "AAM", "AAS", "ADC", "ADD", "AND", "ARPL", "BOUND", "BSF", "BSR", "BSWAP", "BT", "BTC", "BTR", "BTS", "CALL", "CBW", "CDQ", "CLC", "CLD", "CLI", "CLTS", "CMC", "CMOVA", "CMOVAE", "CMOVB", "CMOVBE", "CMOVC", "CMOVE", "CMOVG", "CMOVGE", "CMOVL", "CMOVLE", "CMOVNA", "CMOVNAE", "CMOVNB", "CMOVNBE", "CMOVNC", "CMOVNE", "CMOVNG", "CMOVNGE", "CMOVNL", "CMOVNLE", "CMOVNO", "CMOVNP", "CMOVNS", "CMOVNZ", "CMOVO", "CMOVP", "CMOVPE", "CMOVPO", "CMOVS", "CMOVZ", "CMP", "CMPS", "CMPSB", "CMPSD", "CMPSW", "CMPXCHG", "CMPXCHG8B", "CWD", "CWDE", "DAA", "DAS", "DB", "DD", "DEC", "DIV", "DW", "EMMS", "ENTER", "ESC", "F2XM1", "FABS", "FADD", "FADDP", "FBLD", "FBSTP", "FCHS", "FCLEX", "FCMOVB", "FCMOVBE", "FCMOVE", "FCMOVNB", "FCMOVNBE", "FCMOVNE", "FCMOVNU", "FCMOVU", "FCOM", "FCOMI", "FCOMIP", "FCOMP", "FCOMPP", "FCOS", "FDECSTP", "FDIV", "FDIVP", "FDIVR", "FDIVRP", "FFREE", "FIADD", "FICOM", "FICOMP", "FIDIV", "FIDIVR", "FILD", "FIMUL", "FINCSTP", "FINIT", "FIST", "FISTP", "FISUB", "FISUBR", "FLD", "FLD1", "FLDCW", "FLDENV", "FLDL2E", "FLDL2T", "FLDLG2", "FLDLN2", "FLDPI", "FLDZ", "FMUL", "FMULP", "FNCLEX", "FNINIT", "FNOP", "FNSAVE", "FNSTCW", "FNSTENV", "FNSTSW", "FPATAN", "FPREM", "FPREM1", "FPTAN", "FRNDINT", "FRSTOR", "FSAVE", "FSCALE", "FSETPM", "FSIN", "FSINCOS", "FSQRT", "FST", "FSTCW", "FSTENV", "FSTP", "FSTSW", "FSUB", "FSUBP", "FSUBR", "FSUBRP", "FTST", "FUCOM", "FUCOMI", "FUCOMIP", "FUCOMP", "FUCOMPP", "FWAIT", "FXAM", "FXCH", "FXTRACT", "FYL2X", "FYL2XP1", "HLT", "IDIV", "IMUL", "IN", "INC", "INS", "INSB", "INSD", "INSW", "INT", "INTO", "INVD", "INVLPG", "IRET", "IRETD", "JA", "JAE", "JB", "JBE", "JC", "JCXZ", "JE", "JECXZ", "JG", "JGE", "JL", "JLE", "JMP", "JNA", "JNAE", "JNB", "JNBE", "JNC", "JNE", "JNG", "JNGE", "JNL", "JNLE", "JNO", "JNP", "JNS", "JNZ", "JO", "JP", "JPE", "JPO", "JS", "JZ", "LAHF", "LAR", "LDS", "LEA", "LEAVE", "LES", "LFS", "LGDT", "LGS", "LIDT", "LLDT", "LMSW", "LOCK", "LODS", "LODSB", "LODSD", "LODSW", "LOOP", "LOOPE", "LOOPNE", "LOOPNZ", "LOOPZ", "LSL", "LSS", "LTR", "MOV", "MOVD", "MOVQ", "MOVS", "MOVSB", "MOVSD", "MOVSW", "MOVSX", "MOVZX", "MUL", "NEG", "NOP", "NOT", "OR", "OUT", "OUTS", "OUTSB", "OUTSD", "OUTSW", "PACKSSDW", "PACKSSWB", "PACKUSWB", "PADDB", "PADDD", "PADDSB", "PADDSW", "PADDUSB", "PADDUSW", "PADDW", "PAND", "PANDN", "PCMPEQB", "PCMPEQD", "PCMPEQW", "PCMPGTB", "PCMPGTD", "PCMPGTW", "PMADDWD", "PMULHW", "POP", "POPA", "POPAD", "POPF", "POPFD", "POR", "PSLLD", "PSLLQ", "PSLLW", "PSRAD", "PSRAW", "PSRLD", "PSRLQ", "PSRLW", "PSUBB", "PSUBD", "PSUBSB", "PSUBSW", "PSUBUSB", "PSUBUSW", "PSUBW", "PUNPCKHBW", "PUNPCKHDQ", "PUNPCKHWD", "PUNPCKLBW", "PUNPCKLDQ", "PUNPCKLWD", "PUSH", "PUSHA", "PUSHAD", "PUSHF", "PUSHFD", "PXOR", "RCL", "RCR", "RDMSR", "RDPMC", "RDTSC", "REP", "REPE", "REPNE", "REPNZ", "REPZ", "RET", "RETF", "ROL", "ROR", "RSM", "SAHF", "SAL", "SAR", "SBB", "SCAS", "SCASB", "SCASD", "SCASW", "SETA", "SETAE", "SETB", "SETBE", "SETC", "SETE", "SETG", "SETGE", "SETL", "SETLE", "SETNA", "SETNAE", "SETNB", "SETNBE", "SETNC", "SETNE", "SETNG", "SETNGE", "SETNL", "SETNLE", "SETNO", "SETNP", "SETNS", "SETNZ", "SETO", "SETP", "SETPE", "SETPO", "SETS", "SETZ", "SGDT", "SHL", "SHLD", "SHR", "SHRD", "SIDT", "SLDT", "SMSW", "STC", "STD", "STI", "STOS", "STOSB", "STOSD", "STOSW", "STR", "SUB", "TEST", "UD2", "VERR", "VERW", "WAIT", "WBINVD", "WRMSR", "XADD", "XCHG", "XLAT", "XLATB", "XOR" }, }, { Id=3, -- Procedure calls > PB IDE color: #006666 (Blue Stone) Regex=[[ ([a-zA-Z_]\w*)(?:(?:\s*)\() ]], Group=1 }, { Id=4, -- Escaped-String Prefix ("~") > PB IDE color: same as strings Regex=[[ ~" ]], -- NOTE: In the final doc, this Keyword is converted to become -- part of the string [see OnStateChange() func below] }, } function OnStateChange(oldState, newState, token, kwgroup) --[[ Dismiss Escape-Sequences ========================= Currently, I couldn't find a way to preserve escape sequences without causing stray behaviour in string. So, for the time being they are just dismissed. ]] if newState==HL_ESC_SEQ then if oldState==HL_STRING then -- ESCAPE SEQUENCE FOUND INSIDE A STRING: if escapedString~=true then -- String is Literal (no escaping allowed)... escapeSeq = false if token=='\\"' then -- rejecting a \" will cause the \ to become part of the curr. string -- but the " will be thrown again to the parser, which will mistake it -- for a new string start. We'll use the `forceStringEnd` var to -- prevent this... forceStringEnd = true return HL_REJECT else -- all other escape sequences can be suppresed by assimilating -- them to the current string... forceStringEnd=false return HL_REJECT --HL_STRING end else -- String is Escapable... escapeSeq = true forceStringEnd=false return HL_ESC_SEQ end -- HANDLE TWO ESCAPRE SEQUENCES IN A ROW: elseif oldState==HL_ESC_SEQ then escapeSeq = true escapedString = true forceStringEnd=false return HL_ESC_SEQ else -- ESCAPE SEQUENCE FOUND OUTSIDE A STRING escapeSeq = false forceStringEnd=false escapedString = false return HL_REJECT end --[[ PB Escape Strings (~"...") ========================== Keyword 4 (~") is converted to string state, so the tilda becomes part of the actual string. The boolean var `escapedString` tracks this process. ]] elseif newState==HL_KEYWORD and kwgroup==4 then -- If ~" occurs inside a string, it's just a string with a tilda as last char... if oldState==HL_STRING then -- We use the `forceStringEnd` var trick here, like we did with -- rejected \" escape sequences above... forceStringEnd=true return HL_REJECT -- HL_STRING -- HL_REJECT -- In all other cases it's an escaped string delimiter (opening)... else escapedString = true escapeSeq = false forceStringEnd=false return HL_STRING end --[[ NEW STATE IS STRING: ]] elseif newState==HL_STRING then --[[ Handle The " After A Rejcted \" or ~" in Literal String ======================= A rejected \" or ~" led to a spurious " being fed to the parser which can be mistaken for a new string delimiter ]] if forceStringEnd==true then forceStringEnd=false return HL_STRING_END --[[ Sanitize String Starts ====================== Because Keyword 4 is converted to a string start, we must tell the parser to treat the next string delimiter as a string end! ]] elseif escapedString==true then escapedString = false return HL_STRING_END --[[ Sanitize String After Escape Sequence ===================================== Ensure that a " immediately following an escape sequence is treated as a string-end delimiter. ]] elseif token=='"' and escapeSeq==true then escapeSeq = false forceStringEnd=false escapedString = false return HL_STRING_END else escapeSeq = false forceStringEnd=false return HL_STRING end --[[ FOR ALL OTHER SYNTAX ITEMS:]] elseif oldState~=HL_STRING and oldState~=HL_ESC_SEQ then -- Reset all Trackers' States: This is required to avoid some edge-cases -- of strings corruption in complex source code... escapeSeq = false escapedString = false forceStringEnd=false return newState end end --[[========================================================================== CHANGELOG ============================================================================== v1.7.1 - 2017/11/18 (PureBASIC v5.61) - Syntax checked against new PureBASIC v5.61 (no changes detected) v1.7 - 2017/10/02 (PureBASIC v5.60) - IMPROVEMENTS: Escape sequences are now corretcly parsed and highlighted. v1.6 - 2017/09/30 (PureBASIC v5.60) - IMPROVEMENTS: Added numbers definition (hex, binary, floats an decimals) - BUG-FIX: String concatenations didn't always parse correctly; now this was fixed (at the expenses of escaped sequences). - ABROGATED: parsing of escape sequences is now disabled because it caused too many problems with strings. v1.5 - 2017/09/28 (PureBASIC v5.60) - IMPROVEMENTS: - Escaped-String Prefix (~) is no longer handled as a keyword (ID=4/kwd) but its recognized as a valid string delimiter. - Escape Sequences are further sanitized so that they can occur only inside strings with the ~" opening delimiter. - ABROGATED: - The lang definition no longer uses Keyword 4 (Escaped-String Prefix). v1.4 - 2017/09/27 (PureBASIC v5.60) - BUG-FIX: Added sanitize function to avoid false positive Escape Sequences in structured vars (eg: "\v" in "SomeStructure\var1"). (Thanks to André Simon -- see Issue #23:) -- https://github.com/andre-simon/highlight/issues/23 v1.3 - 2017/05/20 (PureBASIC v5.60) - fixed single line comment delimiter v1.2 - 2017/05/11 (PureBASIC v5.60) - Added ASM keywords and support for inline ASM (via "!" syntax). - BUG-FIXES: - Repaired missing or mispelled PB Keywords (something went wrong in the keywords list of the v1.1 of this lang definition, some tokens were lost, other fused into a single token -- sorry about that). v1.1 - 2017/04/30 (PureBASIC v5.60) - Keywords list now built by extracting them from the PureBASIC SDK's "SyntaxHilighting.dll" (from each PureBASIC version). Tokens from each version are added to the list, and renamed or removed tokens are kept for the sake of covering all versions of the language from PureBASIC v5.00 upward. (NOTE: currently, there are no renamed or deprecated tokens in the keywords list). For more info, see: -- http://www.purebasic.fr/english/viewtopic.php?&p=506269 -- https://github.com/tajmone/purebasic-archives/tree/master/syntax-highlighting/guidelines v1.0 - 2016/10/27 (PureBASIC v5.50) - First release. Keywords list taken and adapted from GuShH's PureBasic language file for GeSHi: -- https://github.com/easybook/geshi/blob/master/geshi/purebasic.php --]]
Close