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