Login   Register  
PHP Classes
elePHPant
Icontem

File: examples/tags/syntax/geshi/geshi/perl.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Oliver Lillie  >  PHP Custom Tags  >  examples/tags/syntax/geshi/geshi/perl.php  >  Download  
File: examples/tags/syntax/geshi/geshi/perl.php
Role: Auxiliary script
Content type: text/plain
Description: Auxiliary script
Class: PHP Custom Tags
Template engine based on tags similar to HTML
Author: By
Last change:
Date: 1 year ago
Size: 8,796 bytes
 

Contents

Class file image Download
<?php
/*************************************************************************************
 * perl.php
 * --------
 * Author: Andreas Gohr (andi@splitbrain.org), Ben Keen (ben.keen@gmail.com)
 * Copyright: (c) 2004 Andreas Gohr, Ben Keen (http://www.benjaminkeen.org/), Nigel McNie (http://qbnz.com/highlighter/)
 * Release Version: 1\.0\.8
 * Date Started: 2004/08/20
 *
 * Perl language file for GeSHi.
 *
 * CHANGES
 * -------
 * 2008/06/22 (1.0.8)
 *   -  Added support for system calls in backticks (Corley Kinnane)
 * 2008/05/23 (1.0.7.22)
 *   -  Added description of extra language features (SF#1970248)
 *   -  Added comment_regexp for predefined variables
 * 2008/02/15 (1.003)
 *   -  Fixed SF#1891630 with placebo patch
 * 2006/01/05 (1.0.2)
 *   -  Used hardescape feature for ' strings (Cliff Stanford)
 * 2004/11/27 (1.0.1)
 *   -  Added support for multiple object splitters
 * 2004/08/20 (1.0.0)
 *   -  First Release
 *
 * TODO (updated 2004/11/27)
 * -------------------------
 * * LABEL:
 * * string comparison operators
 *
 *************************************************************************************
 *
 *     This file is part of GeSHi.
 *
 *   GeSHi is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 *   GeSHi is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with GeSHi; if not, write to the Free Software
 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 ************************************************************************************/

$language_data = array (
    
'LANG_NAME' => 'Perl',
    
'COMMENT_SINGLE' => array(=> '#'),
    
'COMMENT_MULTI' => array(
        
'=back' => '=cut',
        
'=head' => '=cut',
        
'=item' => '=cut',
        
'=over' => '=cut',
        
'=begin' => '=cut',
        
'=end' => '=cut',
        
'=for' => '=cut',
        
'=encoding' => '=cut',
        
'=pod' => '=cut'
    
),
    
'COMMENT_REGEXP' => array(
        
//Regular expressions
        
=> "/(?<=[\\s^])(s|tr|y)\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/(?:\\\\.|(?!\n)[^\\/\\\\])*\\/[msixpogcde]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])(m|q[qrwx]?)?\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[msixpogc]*(?=[\\s$\\.\\,\\;\\)])/iU",
        
//Regular expression match variables
        
=> '/\$\d+/',
        
//Heredoc
        
=> '/<<\s*?([\'"]?)([a-zA-Z0-9]+)\1;[^\n]*?\\n.*\\n\\2(?![a-zA-Z0-9])/siU',
        
//Predefined variables
        
=> '/\$(\^[a-zA-Z]?|[\$`\'&_\.,+\-~:\\\\\/"\|%=\?!@<>\(\)\[\]])|@_/',
    ),
    
'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
    
'QUOTEMARKS' => array('"','`'),
    
'HARDQUOTE' => array("'""'"),            // An optional 2-element array defining the beginning and end of a hard-quoted string
    
'HARDESCAPE' => array('\\\'',),        // Things that must still be escaped inside a hard-quoted string
                            // If HARDQUOTE is defined, HARDESCAPE must be defined
                            // This will not work unless the first character of each element is either in the
                            // QUOTEMARKS array or is the ESCAPE_CHAR
    
'ESCAPE_CHAR' => '\\',
    
'KEYWORDS' => array(
        
=> array(
            
'case''do''else''elsif''for''if''then''until''while''foreach''my',
            
'or''and''unless''next''last''redo''not''our',
            
'reset''continue','and''cmp''ne'
            
),
        
=> array(
            
'use''sub''new''__END__''__DATA__''__DIE__''__WARN__''BEGIN',
            
'STDIN''STDOUT''STDERR'
            
),
        
=> array(
            
'abs''accept''alarm''atan2''bind''binmode''bless',
            
'caller''chdir''chmod''chomp''chop''chown''chr',
            
'chroot''close''closedir''connect''continue''cos',
            
'crypt''dbmclose''dbmopen''defined''delete''die',
            
'dump''each''endgrent''endhostent''endnetent''endprotoent',
            
'endpwent''endservent''eof''eval''exec''exists''exit',
            
'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''goto''grep',
            
'hex''import''index''int''ioctl''join''keys''kill',
            
'last''lc''lcfirst''length''link''listen''local',
            
'localtime''log''lstat''m''map''mkdir''msgctl''msgget',
            
'msgrcv''msgsnd''my''next''no''oct''open''opendir',
            
'ord''our''pack''package''pipe''pop''pos''print',
            
'printf''prototype''push''qq''qr''quotemeta''qw',
            
'qx''q''rand''read''readdir''readline''readlink''readpipe',
            
'recv''redo''ref''rename''require''return',
            
'reverse''rewinddir''rindex''rmdir''s''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''tie''tied',
            
'time''times''tr''truncate''uc''ucfirst''umask''undef',
            
'unlink''unpack''unshift''untie''utime''values',
            
'vec''wait''waitpid''wantarray''warn''write''y'
            
)
        ),
    
'SYMBOLS' => array(
        
'<''>''=',
        
'!''@''~''&''|',
        
'+','-''*''/''%',
        
','';''?'':'
        
),
    
'CASE_SENSITIVE' => array(
        
GESHI_COMMENTS => false,
        
=> true,
        
=> true,
        
=> true,
        ),
    
'STYLES' => array(
        
'KEYWORDS' => array(
            
=> 'color: #b1b100;',
            
=> 'color: #000000; font-weight: bold;',
            
=> 'color: #000066;'
            
),
        
'COMMENTS' => array(
            
=> 'color: #666666; font-style: italic;',
            
=> 'color: #009966; font-style: italic;',
            
=> 'color: #0000ff;',
            
=> 'color: #cc0000; font-style: italic;',
            
=> 'color: #0000ff;',
            
'MULTI' => 'color: #666666; font-style: italic;'
            
),
        
'ESCAPE_CHAR' => array(
            
=> 'color: #000099; font-weight: bold;',
            
'HARD' => 'color: #000099; font-weight: bold;'
            
),
        
'BRACKETS' => array(
            
=> 'color: #009900;'
            
),
        
'STRINGS' => array(
            
=> 'color: #ff0000;',
            
'HARD' => 'color: #ff0000;'
            
),
        
'NUMBERS' => array(
            
=> 'color: #cc66cc;'
            
),
        
'METHODS' => array(
            
=> 'color: #006600;',
            
=> 'color: #006600;'
            
),
        
'SYMBOLS' => array(
            
=> 'color: #339933;'
            
),
        
'REGEXPS' => array(
            
=> 'color: #0000ff;',
            
=> 'color: #009999;',
            ),
        
'SCRIPT' => array(
            )
        ),
    
'URLS' => array(
        
=> '',
        
=> '',
        
=> 'http://perldoc.perl.org/functions/{FNAMEL}.html'
        
),
    
'OOLANG' => true,
    
'OBJECT_SPLITTERS' => array(
        
=> '-&gt;',
        
=> '::'
        
),
    
'REGEXPS' => array(
        
//Variable
        
=> '[\\$%@]+[a-zA-Z_][a-zA-Z0-9_]*',
        
//File Descriptor
        
=> '&lt;[a-zA-Z_][a-zA-Z0-9_]*&gt;',
        ),
    
'STRICT_MODE_APPLIES' => GESHI_NEVER,
    
'SCRIPT_DELIMITERS' => array(
        ),
    
'HIGHLIGHT_STRICT_BLOCK' => array(
        ),
    
'PARSER_CONTROL' => array(
        
'COMMENTS' => array(
           
'DISALLOWED_BEFORE' => '$'
        
)
    )
);

?>