wzy
2021-04-01 d388e2788b7ef088d7cd40f901b0acdcec460bc3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/**
 * SyntaxHighlighter
 * http://alexgorbatchev.com/SyntaxHighlighter
 *
 * SyntaxHighlighter is donationware. If you are using it, please donate.
 * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
 *
 * @version
 * 3.0.83 (July 02 2010)
 * 
 * @copyright
 * Copyright (C) 2004-2010 Alex Gorbatchev.
 *
 * @license
 * Dual licensed under the MIT and GPL licenses.
 */
;(function()
{
    // CommonJS
    typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
 
    function Brush()
    {
        // Contributed by David Simmons-Duffin and Marty Kube
    
        var funcs = 
            'abs accept alarm atan2 bind binmode chdir chmod chomp chop chown chr ' + 
            'chroot close closedir connect cos crypt defined delete each endgrent ' + 
            'endhostent endnetent endprotoent endpwent endservent eof exec exists ' + 
            'exp fcntl fileno flock fork format formline getc getgrent getgrgid ' + 
            'getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr ' + 
            'getnetbyname getnetent getpeername getpgrp getppid getpriority ' + 
            'getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid ' + 
            'getservbyname getservbyport getservent getsockname getsockopt glob ' + 
            'gmtime grep hex index int ioctl join keys kill lc lcfirst length link ' + 
            'listen localtime lock log lstat map mkdir msgctl msgget msgrcv msgsnd ' + 
            'oct open opendir ord pack pipe pop pos print printf prototype push ' + 
            'quotemeta rand read readdir readline readlink readpipe recv rename ' + 
            'reset reverse rewinddir rindex rmdir scalar seek seekdir select semctl ' + 
            'semget semop send setgrent sethostent setnetent setpgrp setpriority ' + 
            'setprotoent setpwent setservent setsockopt shift shmctl shmget shmread ' + 
            'shmwrite shutdown sin sleep socket socketpair sort splice split sprintf ' + 
            'sqrt srand stat study substr symlink syscall sysopen sysread sysseek ' + 
            'system syswrite tell telldir time times tr truncate uc ucfirst umask ' + 
            'undef unlink unpack unshift utime values vec wait waitpid warn write';
    
        var keywords =  
            'bless caller continue dbmclose dbmopen die do dump else elsif eval exit ' +
            'for foreach goto if import last local my next no our package redo ref ' + 
            'require return sub tie tied unless untie until use wantarray while';
    
        this.regexList = [
            { regex: new RegExp('#[^!].*$', 'gm'),                    css: 'comments' },
            { regex: new RegExp('^\\s*#!.*$', 'gm'),                css: 'preprocessor' }, // shebang
            { regex: SyntaxHighlighter.regexLib.doubleQuotedString,    css: 'string' },
            { regex: SyntaxHighlighter.regexLib.singleQuotedString,    css: 'string' },
            { regex: new RegExp('(\\$|@|%)\\w+', 'g'),                css: 'variable' },
            { regex: new RegExp(this.getKeywords(funcs), 'gmi'),    css: 'functions' },
            { regex: new RegExp(this.getKeywords(keywords), 'gm'),    css: 'keyword' }
            ];
 
        this.forHtmlScript(SyntaxHighlighter.regexLib.phpScriptTags);
    }
 
    Brush.prototype    = new SyntaxHighlighter.Highlighter();
    Brush.aliases        = ['perl', 'Perl', 'pl'];
 
    SyntaxHighlighter.brushes.Perl = Brush;
 
    // CommonJS
    typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
})();