plugins/geshi/geshi/python.php
changeset 0 441963e5b07a
child 2 9e3258dfae15
equal deleted inserted replaced
-1:000000000000 0:441963e5b07a
       
     1 <?php
       
     2 /*************************************************************************************
       
     3  * python.php
       
     4  * ----------
       
     5  * Author: Roberto Rossi (rsoftware@altervista.org)
       
     6  * Copyright: (c) 2004 Roberto Rossi (http://rsoftware.altervista.org), Nigel McNie (http://qbnz.com/highlighter)
       
     7  * Release Version: 1.0.7.20
       
     8  * Date Started: 2004/08/30
       
     9  *
       
    10  * Python language file for GeSHi.
       
    11  *
       
    12  * CHANGES
       
    13  * -------
       
    14  * 2005/05/26
       
    15  *  -  Modifications by Tim (tim@skreak.com): added more keyword categories, tweaked colors
       
    16  * 2004/11/27 (1.0.1)
       
    17  *  -  Added support for multiple object splitters
       
    18  * 2004/08/30 (1.0.0)
       
    19  *  -  First Release
       
    20  *
       
    21  * TODO (updated 2004/11/27)
       
    22  * -------------------------
       
    23  *
       
    24  *************************************************************************************
       
    25  *
       
    26  *     This file is part of GeSHi.
       
    27  *
       
    28  *   GeSHi is free software; you can redistribute it and/or modify
       
    29  *   it under the terms of the GNU General Public License as published by
       
    30  *   the Free Software Foundation; either version 2 of the License, or
       
    31  *   (at your option) any later version.
       
    32  *
       
    33  *   GeSHi is distributed in the hope that it will be useful,
       
    34  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
       
    35  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
       
    36  *   GNU General Public License for more details.
       
    37  *
       
    38  *   You should have received a copy of the GNU General Public License
       
    39  *   along with GeSHi; if not, write to the Free Software
       
    40  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
       
    41  *
       
    42  ************************************************************************************/
       
    43 
       
    44 $language_data = array (
       
    45 	'LANG_NAME' => 'Python',
       
    46 	'COMMENT_SINGLE' => array(1 => '#'),
       
    47 	'COMMENT_MULTI' => array(),
       
    48 	'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
       
    49 	'QUOTEMARKS' => array('"', "'", '"""'),
       
    50 	'ESCAPE_CHAR' => '\\',
       
    51 	'KEYWORDS' => array(
       
    52 
       
    53 		/*
       
    54 		** Set 1: reserved words
       
    55 		** http://python.org/doc/current/ref/keywords.html
       
    56 		*/
       
    57 		1 => array(
       
    58 			'and', 'del', 'for', 'is', 'raise', 'assert', 'elif', 'from', 'lambda', 'return', 'break',
       
    59 			'else', 'global', 'not', 'try', 'class', 'except', 'if', 'or', 'while', 'continue', 'exec',
       
    60 			'import', 'pass', 'yield', 'def', 'finally', 'in', 'print'
       
    61 			),
       
    62 
       
    63 		/*
       
    64 		** Set 2: builtins
       
    65 		** http://python.org/doc/current/lib/built-in-funcs.html
       
    66 		*/
       
    67 		2 => array(
       
    68 			'__import__', 'abs', 'basestring', 'bool', 'callable', 'chr', 'classmethod', 'cmp', 
       
    69 			'compile', 'complex', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'execfile', 
       
    70 			'file', 'filter', 'float', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help',
       
    71 			'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'list', 'locals',
       
    72 			'long', 'map', 'max', 'min', 'object', 'oct', 'open', 'ord', 'pow', 'property', 'range',
       
    73 			'raw_input', 'reduce', 'reload', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice',
       
    74 			'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'unichr', 'unicode', 
       
    75 			'vars', 'xrange', 'zip',
       
    76 			// Built-in constants: http://python.org/doc/current/lib/node35.html
       
    77 			'False', 'True', 'None', 'NotImplemented', 'Ellipsis',
       
    78 			// Built-in Exceptions: http://python.org/doc/current/lib/module-exceptions.html
       
    79 			'Exception', 'StandardError', 'ArithmeticError', 'LookupError', 'EnvironmentError',
       
    80 			'AssertionError', 'AttributeError', 'EOFError', 'FloatingPointError', 'IOError',
       
    81 			'ImportError', 'IndexError', 'KeyError', 'KeyboardInterrupt', 'MemoryError', 'NameError',
       
    82 			'NotImplementedError', 'OSError', 'OverflowError', 'ReferenceError', 'RuntimeError',
       
    83 			'StopIteration', 'SyntaxError', 'SystemError', 'SystemExit', 'TypeError',
       
    84 			'UnboundlocalError', 'UnicodeError', 'UnicodeEncodeError', 'UnicodeDecodeError',
       
    85 			'UnicodeTranslateError', 'ValueError', 'WindowsError', 'ZeroDivisionError', 'Warning',
       
    86 			'UserWarning', 'DeprecationWarning', 'PendingDeprecationWarning', 'SyntaxWarning',
       
    87 			'RuntimeWarning', 'FutureWarning',
       
    88 			// self: this is a common python convention (but not a reserved word)
       
    89 			'self'
       
    90 			),
       
    91 
       
    92 		/*
       
    93 		** Set 3: standard library
       
    94 		** http://python.org/doc/current/lib/modindex.html
       
    95 		*/
       
    96 		3 => array(
       
    97 			'__builtin__', '__future__', '__main__', '_winreg', 'aifc', 'AL', 'al', 'anydbm',
       
    98 			'array', 'asynchat', 'asyncore', 'atexit', 'audioop', 'base64', 'BaseHTTPServer',
       
    99 			'Bastion', 'binascii', 'binhex', 'bisect', 'bsddb', 'bz2', 'calendar', 'cd', 'cgi',
       
   100 			'CGIHTTPServer', 'cgitb', 'chunk', 'cmath', 'cmd', 'code', 'codecs', 'codeop',
       
   101 			'collections', 'colorsys', 'commands', 'compileall', 'compiler', 'compiler',
       
   102 			'ConfigParser', 'Cookie', 'cookielib', 'copy', 'copy_reg', 'cPickle', 'crypt',
       
   103 			'cStringIO', 'csv', 'curses', 'datetime', 'dbhash', 'dbm', 'decimal', 'DEVICE',
       
   104 			'difflib', 'dircache', 'dis', 'distutils', 'dl', 'doctest', 'DocXMLRPCServer', 'dumbdbm',
       
   105 			'dummy_thread', 'dummy_threading', 'email', 'encodings', 'errno', 'exceptions', 'fcntl',
       
   106 			'filecmp', 'fileinput', 'FL', 'fl', 'flp', 'fm', 'fnmatch', 'formatter', 'fpectl',
       
   107 			'fpformat', 'ftplib', 'gc', 'gdbm', 'getopt', 'getpass', 'gettext', 'GL', 'gl', 'glob',
       
   108 			'gopherlib', 'grp', 'gzip', 'heapq', 'hmac', 'hotshot', 'htmlentitydefs', 'htmllib',
       
   109 			'HTMLParser', 'httplib', 'imageop', 'imaplib', 'imgfile', 'imghdr', 'imp', 'inspect',
       
   110 			'itertools', 'jpeg', 'keyword', 'linecache', 'locale', 'logging', 'mailbox', 'mailcap',
       
   111 			'marshal', 'math', 'md5', 'mhlib', 'mimetools', 'mimetypes', 'MimeWriter', 'mimify',
       
   112 			'mmap', 'msvcrt', 'multifile', 'mutex', 'netrc', 'new', 'nis', 'nntplib', 'operator',
       
   113 			'optparse', 'os', 'ossaudiodev', 'parser', 'pdb', 'pickle', 'pickletools', 'pipes',
       
   114 			'pkgutil', 'platform', 'popen2', 'poplib', 'posix', 'posixfile', 'pprint', 'profile',
       
   115 			'pstats', 'pty', 'pwd', 'py_compile', 'pyclbr', 'pydoc', 'Queue', 'quopri', 'random',
       
   116 			're', 'readline', 'repr', 'resource', 'rexec', 'rfc822', 'rgbimg', 'rlcompleter',
       
   117 			'robotparser', 'sched', 'ScrolledText', 'select', 'sets', 'sgmllib', 'sha', 'shelve',
       
   118 			'shlex', 'shutil', 'signal', 'SimpleHTTPServer', 'SimpleXMLRPCServer', 'site', 'smtpd',
       
   119 			'smtplib', 'sndhdr', 'socket', 'SocketServer', 'stat', 'statcache', 'statvfs', 'string',
       
   120 			'StringIO', 'stringprep', 'struct', 'subprocess', 'sunau', 'SUNAUDIODEV', 'sunaudiodev',
       
   121 			'symbol', 'sys', 'syslog', 'tabnanny', 'tarfile', 'telnetlib', 'tempfile', 'termios',
       
   122 			'test', 'textwrap', 'thread', 'threading', 'time', 'timeit', 'Tix', 'Tkinter', 'token',
       
   123 			'tokenize', 'traceback', 'tty', 'turtle', 'types', 'unicodedata', 'unittest', 'urllib2',
       
   124 			'urllib', 'urlparse', 'user', 'UserDict', 'UserList', 'UserString', 'uu', 'warnings',
       
   125 			'wave', 'weakref', 'webbrowser', 'whichdb', 'whrandom', 'winsound', 'xdrlib', 'xml',
       
   126 			'xmllib', 'xmlrpclib', 'zipfile', 'zipimport', 'zlib'
       
   127 			),
       
   128 
       
   129 		/*
       
   130 		** Set 4: special methods
       
   131 		** http://python.org/doc/current/ref/specialnames.html
       
   132 		*/
       
   133 		4 => array(
       
   134 			/*
       
   135 			// Iterator types: http://python.org/doc/current/lib/typeiter.html
       
   136 			'__iter__', 'next',
       
   137 			// String types: http://python.org/doc/current/lib/string-methods.html
       
   138 			'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs',
       
   139 			'find', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle',
       
   140 			'isupper', 'join', 'ljust', 'lower', 'lstrip', 'replace', 'rfind', 'rindex', 'rjust',
       
   141 			'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title',
       
   142 			'translate', 'upper', 'zfill',
       
   143 			*/
       
   144 			// Basic customization: http://python.org/doc/current/ref/customization.html
       
   145 			'__new__', '__init__', '__del__', '__repr__', '__str__', 
       
   146 			'__lt__', '__le__', '__eq__', '__ne__', '__gt__', '__ge__', '__cmp__', '__rcmp__',
       
   147 			'__hash__', '__nonzero__', '__unicode__', '__dict__',
       
   148 			// Attribute access: http://python.org/doc/current/ref/attribute-access.html
       
   149 			'__setattr__', '__delattr__', '__getattr__', '__getattribute__', '__get__', '__set__',
       
   150 			'__delete__', '__slots__',
       
   151 			// Class creation, callable objects
       
   152 			'__metaclass__', '__call__', 
       
   153 			// Container types: http://python.org/doc/current/ref/sequence-types.html
       
   154 			'__len__', '__getitem__', '__setitem__', '__delitem__', '__iter__', '__contains__',
       
   155 			'__getslice__', '__setslice__', '__delslice__',
       
   156 			// Numeric types: http://python.org/doc/current/ref/numeric-types.html
       
   157 			'__abs__','__add__','__and__','__coerce__','__div__','__divmod__','__float__',
       
   158 			'__hex__','__iadd__','__isub__','__imod__','__idiv__','__ipow__','__iand__',
       
   159 			'__ior__','__ixor__', '__ilshift__','__irshift__','__invert__','__int__',
       
   160 			'__long__','__lshift__',
       
   161 			'__mod__','__mul__','__neg__','__oct__','__or__','__pos__','__pow__',
       
   162 			'__radd__','__rdiv__','__rdivmod__','__rmod__','__rpow__','__rlshift__','__rrshift__',
       
   163 			'__rshift__','__rsub__','__rmul__','__repr__','__rand__','__rxor__','__ror__',
       
   164 			'__sub__','__xor__'
       
   165 			)
       
   166 
       
   167 		),
       
   168 	'SYMBOLS' => array(
       
   169 			'(', ')', '[', ']', '{', '}', '*', '&', '%', '!', ';', '<', '>', '?', '`'
       
   170 		),
       
   171 	'CASE_SENSITIVE' => array(
       
   172 		GESHI_COMMENTS => true,
       
   173 		1 => true,
       
   174         2 => true,
       
   175         3 => true,
       
   176         4 => true
       
   177 		),
       
   178 	'STYLES' => array(
       
   179 		'KEYWORDS' => array(
       
   180 			1 => 'color: #ff7700;font-weight:bold;',	// Reserved
       
   181 			2 => 'color: #008000;',						// Built-ins + self
       
   182 			3 => 'color: #dc143c;',						// Standard lib
       
   183 			4 => 'color: #0000cd;'						// Special methods
       
   184 			),
       
   185 		'COMMENTS' => array(
       
   186 			1 => 'color: #808080; font-style: italic;',
       
   187 			'MULTI' => 'color: #808080; font-style: italic;'
       
   188 			),
       
   189 		'ESCAPE_CHAR' => array(
       
   190 			0 => 'color: #000099; font-weight: bold;'
       
   191 			),
       
   192 		'BRACKETS' => array(
       
   193 			0 => 'color: black;'
       
   194 			),
       
   195 		'STRINGS' => array(
       
   196 			0 => 'color: #483d8b;'
       
   197 			),
       
   198 		'NUMBERS' => array(
       
   199 			0 => 'color: #ff4500;'
       
   200 			),
       
   201 		'METHODS' => array(
       
   202 			1 => 'color: black;'
       
   203 			),
       
   204 		'SYMBOLS' => array(
       
   205 			0 => 'color: #66cc66;'
       
   206 			),
       
   207 		'REGEXPS' => array(
       
   208 			),
       
   209 		'SCRIPT' => array(
       
   210 			)
       
   211 		),
       
   212 	'URLS' => array(
       
   213 		),
       
   214 	'OOLANG' => true,
       
   215 	'OBJECT_SPLITTERS' => array(
       
   216 		1 => '.'
       
   217 		),
       
   218 	'REGEXPS' => array(
       
   219 		),
       
   220 	'STRICT_MODE_APPLIES' => GESHI_NEVER,
       
   221 	'SCRIPT_DELIMITERS' => array(
       
   222 		),
       
   223 	'HIGHLIGHT_STRICT_BLOCK' => array(
       
   224 		)
       
   225 );
       
   226 
       
   227 ?>