2 /*************************************************************************************
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.19
8 * Date Started: 2004/08/30
10 * Python language file for GeSHi.
15 * - Modifications by Tim (tim@skreak.com): added more keyword categories, tweaked colors
17 * - Added support for multiple object splitters
21 * TODO (updated 2004/11/27)
22 * -------------------------
24 *************************************************************************************
26 * This file is part of GeSHi.
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.
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.
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
42 ************************************************************************************/
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' => '\\',
54 ** Set 1: reserved words
55 ** http://python.org/doc/current/ref/keywords.html
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'
65 ** http://python.org/doc/current/lib/built-in-funcs.html
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)
93 ** Set 3: standard library
94 ** http://python.org/doc/current/lib/modindex.html
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'
130 ** Set 4: special methods
131 ** http://python.org/doc/current/ref/specialnames.html
135 // Iterator types: http://python.org/doc/current/lib/typeiter.html
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',
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__',
169 '(', ')', '[', ']', '{', '}', '*', '&', '%', '!', ';', '<', '>', '?', '`'
171 'CASE_SENSITIVE' => array(
172 GESHI_COMMENTS
=> true
,
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
186 1 => 'color: #808080; font-style: italic;',
187 'MULTI' => 'color: #808080; font-style: italic;'
189 'ESCAPE_CHAR' => array(
190 0 => 'color: #000099; font-weight: bold;'
196 0 => 'color: #483d8b;'
199 0 => 'color: #ff4500;'
205 0 => 'color: #66cc66;'
215 'OBJECT_SPLITTERS' => array(
220 'STRICT_MODE_APPLIES' => GESHI_NEVER
,
221 'SCRIPT_DELIMITERS' => array(
223 'HIGHLIGHT_STRICT_BLOCK' => array(