New version file purebasic.php for GeSHi.
Code: Select all
<?php
$language_data = array (
'LANG_NAME' => 'PureBasic',
'COMMENT_SINGLE' => array( 1 => ";"),
'COMMENT_MULTI' => array( ),
'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
'QUOTEMARKS' => array('"', "'"),
'ESCAPE_CHAR' => '',
'KEYWORDS' => array(
1 => array(
// Keywords
'And', 'Array', 'As', 'Align', 'Break', 'CallDebugger', 'Case', 'CompilerCase', 'CompilerDefault', 'CompilerElse', 'CompilerElseIf', 'CompilerEndIf', 'CompilerEndSelect',
'CompilerError', 'CompilerIf', 'CompilerSelect', 'Continue', 'Data', 'DataSection', 'EndDataSection', 'Debug', 'DebugLevel', 'Declare', 'DeclareC',
'DeclareCDLL', 'DeclareDLL', 'Default', 'Define', 'Dim', 'DisableASM', 'DisableDebugger', 'DisableExplicit', 'DeclareModule', 'Else', 'ElseIf', 'EnableASM',
'EnableDebugger', 'EnableExplicit', 'End', 'EndEnumeration', 'EndIf', 'EndImport', 'EndInterface', 'EndMacro', 'EndProcedure', 'EndDeclareModule', 'EndModule',
'EndSelect', 'EndStructure', 'EndStructureUnion', 'EndWith', 'Enumeration', 'Extends', 'FakeReturn', 'For', 'Next', 'ForEach',
'ForEver', 'Global', 'Gosub', 'Goto', 'If', 'Import', 'ImportC', 'IncludeBinary', 'IncludeFile', 'IncludePath', 'Interface', 'List', 'Macro', 'Map', 'MacroExpandedCount',
'Module', 'NewList', 'Not', 'Or', 'Procedure', 'ProcedureC', 'ProcedureCDLL', 'ProcedureDLL', 'ProcedureReturn', 'Protected', 'Prototype',
'PrototypeC', 'Read', 'ReDim', 'Repeat', 'Until', 'Restore', 'Return', 'Runtime', 'Select','Shared', 'Static', 'Step', 'Structure', 'StructureUnion',
'Swap', 'To', 'Wend', 'While', 'With', 'XIncludeFile', 'XOr','UseModule', 'UnuseModule', 'UndefineMacro'
),
2 => array(
// some ASM instructions
'AAA', 'AAD', 'AAM', 'AAS', 'ADC', 'ADD', 'AND', 'ARPL', 'BOUND', 'BSF', 'BSR', 'BSWAP', 'BT', 'BTC', 'BTR',
'BTS', 'CALL ', 'CBW', 'CDQ', 'CLC', 'CLD', 'CLI', 'CLTS', 'CMC', 'CMP', 'CMPS', 'CMPXCHG', 'CWD', 'CWDE',
'DAA', 'DAS', 'DB', 'DD', 'DEC', 'DIV', 'DW', 'ENTER', 'ESC', 'F2XM1', 'FABS', 'FADD', 'FCHS', 'FCLEX',
'FCOM', 'FDIV', 'FDIVR', 'FFREE', 'FINCSTP', 'FINIT', 'FLD', 'FLD1', 'FLDCW', 'FMUL', 'FNOP', 'FPATAN',
'FPREM', 'FRNDINT', 'FSAVE', 'FSCALE', 'FSETPM', 'FSIN', 'FSQRT', 'FST', 'FSTENV', 'FSTSW', 'FSUB',
'FSUBR', 'FTST', 'FUCOM', 'FWAIT', 'FXAM', 'FXCH', 'FXTRACT', 'FYL2X', 'FYL2XP1', 'HLT', 'IDIV', 'IMUL',
'IN ', 'INC ', 'INS', 'INT ', 'INTO', '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', 'LOOP', 'LOOPE', 'LOOPNE', 'LOOPNZ', 'LOOPZ', 'LSL', 'LSS', 'LTR',
'MOV', 'MOVS', 'MOVSX', 'MOVZX', 'MUL', 'NEG', 'NOP', 'NOT', 'OR', 'OUT', 'OUTS', 'POP', 'POPA', 'POPAD',
'POPF', 'POPFD', 'PUSH', 'PUSHA', 'PUSHAD', 'PUSHF', 'PUSHFD', 'RCL', 'RCR', 'REP', 'REPE', 'REPNE',
'REPNZ', 'REPZ', 'RET', 'RETF', 'ROL', 'ROR', 'SAHF', 'SAL', 'SAR', 'SBB', 'SCAS', 'SETAE', 'SETB', 'SETBE',
'SETC', 'SETE', 'SETG', 'SETGE', 'SETL', 'SETLE', 'SETNA', 'SETNAE', 'SETNB', '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', 'STR ', 'SUB', 'TEST ', 'VERR', 'VERW', 'WAIT', 'WBINVD', 'XCHG', 'XLAT', 'XLATB', 'XOR '
)
),
'SYMBOLS' => array(
'(', ')', '+', '-', '*', '/', '>', '<', '=', '<=', '>=', '&', '|', '!', '~', '<>', '>>', '<<', '%', '[', ']', ":", '?', '@', '\\', '.', ','
),
'CASE_SENSITIVE' => array(
GESHI_COMMENTS => false,
1 => false,
2 => false,
),
'STYLES' => array(
'KEYWORDS' => array(
1 => 'color: #006666; font-weight: bold;',
2 => 'color: #904070; font-weight: bold;'
),
'COMMENTS' => array(
1 => 'color: #00AAAA; font-style: italic;'
),
'ESCAPE_CHAR' => array(
0 => 'color: #000000;'
),
'BRACKETS' => array(
0 => 'color: #4040B0;'
),
'STRINGS' => array(
0 => 'color: #800080;'
),
'NUMBERS' => array(
0 => 'color: #0061C1;'
),
'METHODS' => array(
1 => 'color: #000000;'
),
'SYMBOLS' => array(
0 => 'color: #2020B0;'
),
'REGEXPS' => array(
0 => 'color: #0061C1;',
1 => 'color: #0061C1;',
2 => 'color: #924B72;',
3 => 'color: #006868;',
4 => 'color: #0000FF;',
5 => 'color: #400080;',
6 => 'color: #FF8040;',
7 => 'color: #FF0080;'
),
'SCRIPT' => array(
0 => '',
1 => '',
)
),
'URLS' => array(
0 => '',
),
'OOLANG' => false,
'OBJECT_SPLITTERS' => array(
1 => '\\'
),
'REGEXPS' => array(
// Hex numbers.
0 => '\$[0-9a-fA-F]+',
// Bin numbers.
1 => '\%[0-1]+',
// Constant.
2 => '\#\w+\$?',
// Funct.
3 => '([\.]?\w\w+\s*\()|(\w+(?=\.\w*:?:?\w*\s*\())',
// Module name.
4 => '\w+(?=::)',
// Point.
5 => '((@?\*|\?)[^0-9]\w*)|(@[^0-9]\w*\s*\()',
// Structure.
6 => '(\w*\.[^abcdfilsqwuABCDFILSQWU]?[^\s]\w+\(?)|(\w+(?=\\\))|((?<=\\\)\w+(?=\\\))|((?<=\\\)\w+\$?)',
// Label.
7 => '\w+\:\s'
),
'STRICT_MODE_APPLIES' => GESHI_NEVER,
'SCRIPT_DELIMITERS' => array(),
'HIGHLIGHT_STRICT_BLOCK' => array(),
'TAB_WIDTH' => 4
);
?>