Sun, 17 Feb 2013 19:07:15 +0100
Updated to Pygments 1.6.
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2 | """ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
3 | pygments.lexers.compiled |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
4 | ~~~~~~~~~~~~~~~~~~~~~~~~ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
5 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
6 | Lexers for compiled languages. |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
7 | |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
8 | :copyright: Copyright 2006-2013 by the Pygments team, see AUTHORS. |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
9 | :license: BSD, see LICENSE for details. |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
10 | """ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
11 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
12 | import re |
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
13 | from string import Template |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
14 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
15 | from pygments.lexer import Lexer, RegexLexer, include, bygroups, using, \ |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
16 | this, combined, inherit, do_insertions |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
17 | from pygments.util import get_bool_opt, get_list_opt |
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
18 | from pygments.token import Text, Comment, Operator, Keyword, Name, String, \ |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
19 | Number, Punctuation, Error, Literal, Generic |
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
20 | from pygments.scanner import Scanner |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
21 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
22 | # backwards compatibility |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
23 | from pygments.lexers.functional import OcamlLexer |
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
24 | from pygments.lexers.jvm import JavaLexer, ScalaLexer |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
25 | |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
26 | __all__ = ['CLexer', 'CppLexer', 'DLexer', 'DelphiLexer', 'ECLexer', 'DylanLexer', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
27 | 'ObjectiveCLexer', 'ObjectiveCppLexer', 'FortranLexer', 'GLShaderLexer', |
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
28 | 'PrologLexer', 'CythonLexer', 'ValaLexer', 'OocLexer', 'GoLexer', |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
29 | 'FelixLexer', 'AdaLexer', 'Modula2Lexer', 'BlitzMaxLexer', |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
30 | 'NimrodLexer', 'FantomLexer', 'RustLexer', 'CudaLexer', 'MonkeyLexer', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
31 | 'DylanLidLexer', 'DylanConsoleLexer', 'CobolLexer', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
32 | 'CobolFreeformatLexer', 'LogosLexer'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
33 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
34 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
35 | class CFamilyLexer(RegexLexer): |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
36 | """ |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
37 | For C family source code. This is used as a base class to avoid repetitious |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
38 | definitions. |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
39 | """ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
40 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
41 | #: optional Comment or Whitespace |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
42 | _ws = r'(?:\s|//.*?\n|/[*].*?[*]/)+' |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
43 | #: only one /* */ style comment |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
44 | _ws1 = r':\s*/[*].*?[*]/\s*' |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
45 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
46 | tokens = { |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
47 | 'whitespace': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
48 | # preprocessor directives: without whitespace |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
49 | ('^#if\s+0', Comment.Preproc, 'if0'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
50 | ('^#', Comment.Preproc, 'macro'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
51 | # or with whitespace |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
52 | ('^(' + _ws1 + r')(#if\s+0)', |
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
53 | bygroups(using(this), Comment.Preproc), 'if0'), |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
54 | ('^(' + _ws1 + ')(#)', |
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
55 | bygroups(using(this), Comment.Preproc), 'macro'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
56 | (r'^(\s*)([a-zA-Z_][a-zA-Z0-9_]*:(?!:))', |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
57 | bygroups(Text, Name.Label)), |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
58 | (r'\n', Text), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
59 | (r'\s+', Text), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
60 | (r'\\\n', Text), # line continuation |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
61 | (r'//(\n|(.|\n)*?[^\\]\n)', Comment.Single), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
62 | (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
63 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
64 | 'statements': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
65 | (r'L?"', String, 'string'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
66 | (r"L?'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])'", String.Char), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
67 | (r'(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*', Number.Float), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
68 | (r'(\d+\.\d*|\.\d+|\d+[fF])[fF]?', Number.Float), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
69 | (r'0x[0-9a-fA-F]+[LlUu]*', Number.Hex), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
70 | (r'0[0-7]+[LlUu]*', Number.Oct), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
71 | (r'\d+[LlUu]*', Number.Integer), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
72 | (r'\*/', Error), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
73 | (r'[~!%^&*+=|?:<>/-]', Operator), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
74 | (r'[()\[\],.]', Punctuation), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
75 | (r'\b(case)(.+?)(:)', bygroups(Keyword, using(this), Text)), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
76 | (r'(auto|break|case|const|continue|default|do|else|enum|extern|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
77 | r'for|goto|if|register|restricted|return|sizeof|static|struct|' |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
78 | r'switch|typedef|union|volatile|while)\b', Keyword), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
79 | (r'(bool|int|long|float|short|double|char|unsigned|signed|void|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
80 | r'[a-z_][a-z0-9_]*_t)\b', |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
81 | Keyword.Type), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
82 | (r'(_{0,2}inline|naked|restrict|thread|typename)\b', Keyword.Reserved), |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
83 | # Vector intrinsics |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
84 | (r'(__(m128i|m128d|m128|m64))\b', Keyword.Reserved), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
85 | # Microsoft-isms |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
86 | (r'__(asm|int8|based|except|int16|stdcall|cdecl|fastcall|int32|' |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
87 | r'declspec|finally|int64|try|leave|wchar_t|w64|unaligned|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
88 | r'raise|noop|identifier|forceinline|assume)\b', Keyword.Reserved), |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
89 | (r'(true|false|NULL)\b', Name.Builtin), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
90 | ('[a-zA-Z_][a-zA-Z0-9_]*', Name), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
91 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
92 | 'root': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
93 | include('whitespace'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
94 | # functions |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
95 | (r'((?:[a-zA-Z0-9_*\s])+?(?:\s|[*]))' # return arguments |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
96 | r'([a-zA-Z_][a-zA-Z0-9_]*)' # method name |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
97 | r'(\s*\([^;]*?\))' # signature |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
98 | r'(' + _ws + r')?({)', |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
99 | bygroups(using(this), Name.Function, using(this), using(this), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
100 | Punctuation), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
101 | 'function'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
102 | # function declarations |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
103 | (r'((?:[a-zA-Z0-9_*\s])+?(?:\s|[*]))' # return arguments |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
104 | r'([a-zA-Z_][a-zA-Z0-9_]*)' # method name |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
105 | r'(\s*\([^;]*?\))' # signature |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
106 | r'(' + _ws + r')?(;)', |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
107 | bygroups(using(this), Name.Function, using(this), using(this), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
108 | Punctuation)), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
109 | ('', Text, 'statement'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
110 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
111 | 'statement' : [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
112 | include('whitespace'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
113 | include('statements'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
114 | ('[{}]', Punctuation), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
115 | (';', Punctuation, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
116 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
117 | 'function': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
118 | include('whitespace'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
119 | include('statements'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
120 | (';', Punctuation), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
121 | ('{', Punctuation, '#push'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
122 | ('}', Punctuation, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
123 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
124 | 'string': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
125 | (r'"', String, '#pop'), |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
126 | (r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
127 | r'u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|[0-7]{1,3})', String.Escape), |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
128 | (r'[^\\"\n]+', String), # all other characters |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
129 | (r'\\\n', String), # line continuation |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
130 | (r'\\', String), # stray backslash |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
131 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
132 | 'macro': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
133 | (r'[^/\n]+', Comment.Preproc), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
134 | (r'/[*](.|\n)*?[*]/', Comment.Multiline), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
135 | (r'//.*?\n', Comment.Single, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
136 | (r'/', Comment.Preproc), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
137 | (r'(?<=\\)\n', Comment.Preproc), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
138 | (r'\n', Comment.Preproc, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
139 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
140 | 'if0': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
141 | (r'^\s*#if.*?(?<!\\)\n', Comment.Preproc, '#push'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
142 | (r'^\s*#el(?:se|if).*\n', Comment.Preproc, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
143 | (r'^\s*#endif.*?(?<!\\)\n', Comment.Preproc, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
144 | (r'.*?\n', Comment), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
145 | ] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
146 | } |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
147 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
148 | stdlib_types = ['size_t', 'ssize_t', 'off_t', 'wchar_t', 'ptrdiff_t', |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
149 | 'sig_atomic_t', 'fpos_t', 'clock_t', 'time_t', 'va_list', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
150 | 'jmp_buf', 'FILE', 'DIR', 'div_t', 'ldiv_t', 'mbstate_t', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
151 | 'wctrans_t', 'wint_t', 'wctype_t'] |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
152 | c99_types = ['_Bool', '_Complex', 'int8_t', 'int16_t', 'int32_t', 'int64_t', |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
153 | 'uint8_t', 'uint16_t', 'uint32_t', 'uint64_t', 'int_least8_t', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
154 | 'int_least16_t', 'int_least32_t', 'int_least64_t', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
155 | 'uint_least8_t', 'uint_least16_t', 'uint_least32_t', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
156 | 'uint_least64_t', 'int_fast8_t', 'int_fast16_t', 'int_fast32_t', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
157 | 'int_fast64_t', 'uint_fast8_t', 'uint_fast16_t', 'uint_fast32_t', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
158 | 'uint_fast64_t', 'intptr_t', 'uintptr_t', 'intmax_t', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
159 | 'uintmax_t'] |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
160 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
161 | def __init__(self, **options): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
162 | self.stdlibhighlighting = get_bool_opt(options, |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
163 | 'stdlibhighlighting', True) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
164 | self.c99highlighting = get_bool_opt(options, |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
165 | 'c99highlighting', True) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
166 | RegexLexer.__init__(self, **options) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
167 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
168 | def get_tokens_unprocessed(self, text): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
169 | for index, token, value in \ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
170 | RegexLexer.get_tokens_unprocessed(self, text): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
171 | if token is Name: |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
172 | if self.stdlibhighlighting and value in self.stdlib_types: |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
173 | token = Keyword.Type |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
174 | elif self.c99highlighting and value in self.c99_types: |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
175 | token = Keyword.Type |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
176 | yield index, token, value |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
177 | |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
178 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
179 | class CLexer(CFamilyLexer): |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
180 | """ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
181 | For C source code with preprocessor directives. |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
182 | """ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
183 | name = 'C' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
184 | aliases = ['c'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
185 | filenames = ['*.c', '*.h', '*.idc'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
186 | mimetypes = ['text/x-chdr', 'text/x-csrc'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
187 | priority = 0.1 |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
188 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
189 | def analyse_text(text): |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
190 | return 0.1 |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
191 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
192 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
193 | class CppLexer(CFamilyLexer): |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
194 | """ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
195 | For C++ source code with preprocessor directives. |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
196 | """ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
197 | name = 'C++' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
198 | aliases = ['cpp', 'c++'] |
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
199 | filenames = ['*.cpp', '*.hpp', '*.c++', '*.h++', |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
200 | '*.cc', '*.hh', '*.cxx', '*.hxx', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
201 | '*.C', '*.H', '*.cp', '*.CPP'] |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
202 | mimetypes = ['text/x-c++hdr', 'text/x-c++src'] |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
203 | priority = 0.1 |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
204 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
205 | tokens = { |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
206 | 'statements': [ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
207 | (r'(asm|catch|const_cast|delete|dynamic_cast|explicit|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
208 | r'export|friend|mutable|namespace|new|operator|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
209 | r'private|protected|public|reinterpret_cast|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
210 | r'restrict|static_cast|template|this|throw|throws|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
211 | r'typeid|typename|using|virtual)\b', Keyword), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
212 | (r'(class)(\s+)', bygroups(Keyword, Text), 'classname'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
213 | inherit, |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
214 | ], |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
215 | 'root': [ |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
216 | inherit, |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
217 | # C++ Microsoft-isms |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
218 | (r'__(virtual_inheritance|uuidof|super|single_inheritance|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
219 | r'multiple_inheritance|interface|event)\b', Keyword.Reserved), |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
220 | # Offload C++ extensions, http://offload.codeplay.com/ |
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
221 | (r'(__offload|__blockingoffload|__outer)\b', Keyword.Pseudo), |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
222 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
223 | 'classname': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
224 | (r'[a-zA-Z_][a-zA-Z0-9_]*', Name.Class, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
225 | # template specification |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
226 | (r'\s*(?=>)', Text, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
227 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
228 | } |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
229 | |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
230 | def analyse_text(text): |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
231 | return 0.1 |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
232 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
233 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
234 | class ECLexer(CLexer): |
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
235 | """ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
236 | For eC source code with preprocessor directives. |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
237 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
238 | *New in Pygments 1.5.* |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
239 | """ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
240 | name = 'eC' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
241 | aliases = ['ec'] |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
242 | filenames = ['*.ec', '*.eh'] |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
243 | mimetypes = ['text/x-echdr', 'text/x-ecsrc'] |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
244 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
245 | tokens = { |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
246 | 'statements': [ |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
247 | (r'(virtual|class|private|public|property|import|delete|new|new0|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
248 | r'renew|renew0|define|get|set|remote|dllexport|dllimport|stdcall|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
249 | r'subclass|__on_register_module|namespace|using|typed_object|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
250 | r'any_object|incref|register|watch|stopwatching|firewatchers|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
251 | r'watchable|class_designer|class_fixed|class_no_expansion|isset|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
252 | r'class_default_property|property_category|class_data|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
253 | r'class_property|virtual|thisclass|' |
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
254 | r'dbtable|dbindex|database_open|dbfield)\b', Keyword), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
255 | (r'(uint|uint16|uint32|uint64|bool|byte|unichar|int64)\b', |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
256 | Keyword.Type), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
257 | (r'(class)(\s+)', bygroups(Keyword, Text), 'classname'), |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
258 | (r'(null|value|this)\b', Name.Builtin), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
259 | inherit, |
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
260 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
261 | 'classname': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
262 | (r'[a-zA-Z_][a-zA-Z0-9_]*', Name.Class, '#pop'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
263 | # template specification |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
264 | (r'\s*(?=>)', Text, '#pop'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
265 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
266 | } |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
267 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
268 | |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
269 | class DLexer(RegexLexer): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
270 | """ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
271 | For D source. |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
272 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
273 | *New in Pygments 1.2.* |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
274 | """ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
275 | name = 'D' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
276 | filenames = ['*.d', '*.di'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
277 | aliases = ['d'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
278 | mimetypes = ['text/x-dsrc'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
279 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
280 | tokens = { |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
281 | 'root': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
282 | (r'\n', Text), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
283 | (r'\s+', Text), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
284 | #(r'\\\n', Text), # line continuations |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
285 | # Comments |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
286 | (r'//(.*?)\n', Comment.Single), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
287 | (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
288 | (r'/\+', Comment.Multiline, 'nested_comment'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
289 | # Keywords |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
290 | (r'(abstract|alias|align|asm|assert|auto|body|break|case|cast' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
291 | r'|catch|class|const|continue|debug|default|delegate|delete' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
292 | r'|deprecated|do|else|enum|export|extern|finally|final' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
293 | r'|foreach_reverse|foreach|for|function|goto|if|import|inout' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
294 | r'|interface|invariant|in|is|lazy|mixin|module|new|nothrow|out' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
295 | r'|override|package|pragma|private|protected|public|pure|ref|return' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
296 | r'|scope|static|struct|super|switch|synchronized|template|this' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
297 | r'|throw|try|typedef|typeid|typeof|union|unittest|version|volatile' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
298 | r'|while|with|__traits)\b', Keyword |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
299 | ), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
300 | (r'(bool|byte|cdouble|cent|cfloat|char|creal|dchar|double|float' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
301 | r'|idouble|ifloat|int|ireal|long|real|short|ubyte|ucent|uint|ulong' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
302 | r'|ushort|void|wchar)\b', Keyword.Type |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
303 | ), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
304 | (r'(false|true|null)\b', Keyword.Constant), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
305 | (r'macro\b', Keyword.Reserved), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
306 | (r'(string|wstring|dstring)\b', Name.Builtin), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
307 | # FloatLiteral |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
308 | # -- HexFloat |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
309 | (r'0[xX]([0-9a-fA-F_]*\.[0-9a-fA-F_]+|[0-9a-fA-F_]+)' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
310 | r'[pP][+\-]?[0-9_]+[fFL]?[i]?', Number.Float), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
311 | # -- DecimalFloat |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
312 | (r'[0-9_]+(\.[0-9_]+[eE][+\-]?[0-9_]+|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
313 | r'\.[0-9_]*|[eE][+\-]?[0-9_]+)[fFL]?[i]?', Number.Float), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
314 | (r'\.(0|[1-9][0-9_]*)([eE][+\-]?[0-9_]+)?[fFL]?[i]?', Number.Float), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
315 | # IntegerLiteral |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
316 | # -- Binary |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
317 | (r'0[Bb][01_]+', Number), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
318 | # -- Octal |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
319 | (r'0[0-7_]+', Number.Oct), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
320 | # -- Hexadecimal |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
321 | (r'0[xX][0-9a-fA-F_]+', Number.Hex), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
322 | # -- Decimal |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
323 | (r'(0|[1-9][0-9_]*)([LUu]|Lu|LU|uL|UL)?', Number.Integer), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
324 | # CharacterLiteral |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
325 | (r"""'(\\['"?\\abfnrtv]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}""" |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
326 | r"""|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|\\&\w+;|.)'""", |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
327 | String.Char |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
328 | ), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
329 | # StringLiteral |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
330 | # -- WysiwygString |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
331 | (r'r"[^"]*"[cwd]?', String), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
332 | # -- AlternateWysiwygString |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
333 | (r'`[^`]*`[cwd]?', String), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
334 | # -- DoubleQuotedString |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
335 | (r'"(\\\\|\\"|[^"])*"[cwd]?', String), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
336 | # -- EscapeSequence |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
337 | (r"\\(['\"?\\abfnrtv]|x[0-9a-fA-F]{2}|[0-7]{1,3}" |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
338 | r"|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8}|&\w+;)", |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
339 | String |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
340 | ), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
341 | # -- HexString |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
342 | (r'x"[0-9a-fA-F_\s]*"[cwd]?', String), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
343 | # -- DelimitedString |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
344 | (r'q"\[', String, 'delimited_bracket'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
345 | (r'q"\(', String, 'delimited_parenthesis'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
346 | (r'q"<', String, 'delimited_angle'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
347 | (r'q"{', String, 'delimited_curly'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
348 | (r'q"([a-zA-Z_]\w*)\n.*?\n\1"', String), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
349 | (r'q"(.).*?\1"', String), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
350 | # -- TokenString |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
351 | (r'q{', String, 'token_string'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
352 | # Tokens |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
353 | (r'(~=|\^=|%=|\*=|==|!>=|!<=|!<>=|!<>|!<|!>|!=|>>>=|>>>|>>=|>>|>=' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
354 | r'|<>=|<>|<<=|<<|<=|\+\+|\+=|--|-=|\|\||\|=|&&|&=|\.\.\.|\.\.|/=)' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
355 | r'|[/.&|\-+<>!()\[\]{}?,;:$=*%^~]', Punctuation |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
356 | ), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
357 | # Identifier |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
358 | (r'[a-zA-Z_]\w*', Name), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
359 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
360 | 'nested_comment': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
361 | (r'[^+/]+', Comment.Multiline), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
362 | (r'/\+', Comment.Multiline, '#push'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
363 | (r'\+/', Comment.Multiline, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
364 | (r'[+/]', Comment.Multiline), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
365 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
366 | 'token_string': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
367 | (r'{', Punctuation, 'token_string_nest'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
368 | (r'}', String, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
369 | include('root'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
370 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
371 | 'token_string_nest': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
372 | (r'{', Punctuation, '#push'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
373 | (r'}', Punctuation, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
374 | include('root'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
375 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
376 | 'delimited_bracket': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
377 | (r'[^\[\]]+', String), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
378 | (r'\[', String, 'delimited_inside_bracket'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
379 | (r'\]"', String, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
380 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
381 | 'delimited_inside_bracket': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
382 | (r'[^\[\]]+', String), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
383 | (r'\[', String, '#push'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
384 | (r'\]', String, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
385 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
386 | 'delimited_parenthesis': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
387 | (r'[^\(\)]+', String), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
388 | (r'\(', String, 'delimited_inside_parenthesis'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
389 | (r'\)"', String, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
390 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
391 | 'delimited_inside_parenthesis': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
392 | (r'[^\(\)]+', String), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
393 | (r'\(', String, '#push'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
394 | (r'\)', String, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
395 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
396 | 'delimited_angle': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
397 | (r'[^<>]+', String), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
398 | (r'<', String, 'delimited_inside_angle'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
399 | (r'>"', String, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
400 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
401 | 'delimited_inside_angle': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
402 | (r'[^<>]+', String), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
403 | (r'<', String, '#push'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
404 | (r'>', String, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
405 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
406 | 'delimited_curly': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
407 | (r'[^{}]+', String), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
408 | (r'{', String, 'delimited_inside_curly'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
409 | (r'}"', String, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
410 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
411 | 'delimited_inside_curly': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
412 | (r'[^{}]+', String), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
413 | (r'{', String, '#push'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
414 | (r'}', String, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
415 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
416 | } |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
417 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
418 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
419 | class DelphiLexer(Lexer): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
420 | """ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
421 | For `Delphi <http://www.borland.com/delphi/>`_ (Borland Object Pascal), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
422 | Turbo Pascal and Free Pascal source code. |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
423 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
424 | Additional options accepted: |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
425 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
426 | `turbopascal` |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
427 | Highlight Turbo Pascal specific keywords (default: ``True``). |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
428 | `delphi` |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
429 | Highlight Borland Delphi specific keywords (default: ``True``). |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
430 | `freepascal` |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
431 | Highlight Free Pascal specific keywords (default: ``True``). |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
432 | `units` |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
433 | A list of units that should be considered builtin, supported are |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
434 | ``System``, ``SysUtils``, ``Classes`` and ``Math``. |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
435 | Default is to consider all of them builtin. |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
436 | """ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
437 | name = 'Delphi' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
438 | aliases = ['delphi', 'pas', 'pascal', 'objectpascal'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
439 | filenames = ['*.pas'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
440 | mimetypes = ['text/x-pascal'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
441 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
442 | TURBO_PASCAL_KEYWORDS = [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
443 | 'absolute', 'and', 'array', 'asm', 'begin', 'break', 'case', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
444 | 'const', 'constructor', 'continue', 'destructor', 'div', 'do', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
445 | 'downto', 'else', 'end', 'file', 'for', 'function', 'goto', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
446 | 'if', 'implementation', 'in', 'inherited', 'inline', 'interface', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
447 | 'label', 'mod', 'nil', 'not', 'object', 'of', 'on', 'operator', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
448 | 'or', 'packed', 'procedure', 'program', 'record', 'reintroduce', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
449 | 'repeat', 'self', 'set', 'shl', 'shr', 'string', 'then', 'to', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
450 | 'type', 'unit', 'until', 'uses', 'var', 'while', 'with', 'xor' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
451 | ] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
452 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
453 | DELPHI_KEYWORDS = [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
454 | 'as', 'class', 'except', 'exports', 'finalization', 'finally', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
455 | 'initialization', 'is', 'library', 'on', 'property', 'raise', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
456 | 'threadvar', 'try' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
457 | ] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
458 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
459 | FREE_PASCAL_KEYWORDS = [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
460 | 'dispose', 'exit', 'false', 'new', 'true' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
461 | ] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
462 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
463 | BLOCK_KEYWORDS = set([ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
464 | 'begin', 'class', 'const', 'constructor', 'destructor', 'end', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
465 | 'finalization', 'function', 'implementation', 'initialization', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
466 | 'label', 'library', 'operator', 'procedure', 'program', 'property', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
467 | 'record', 'threadvar', 'type', 'unit', 'uses', 'var' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
468 | ]) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
469 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
470 | FUNCTION_MODIFIERS = set([ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
471 | 'alias', 'cdecl', 'export', 'inline', 'interrupt', 'nostackframe', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
472 | 'pascal', 'register', 'safecall', 'softfloat', 'stdcall', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
473 | 'varargs', 'name', 'dynamic', 'near', 'virtual', 'external', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
474 | 'override', 'assembler' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
475 | ]) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
476 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
477 | # XXX: those aren't global. but currently we know no way for defining |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
478 | # them just for the type context. |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
479 | DIRECTIVES = set([ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
480 | 'absolute', 'abstract', 'assembler', 'cppdecl', 'default', 'far', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
481 | 'far16', 'forward', 'index', 'oldfpccall', 'private', 'protected', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
482 | 'published', 'public' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
483 | ]) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
484 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
485 | BUILTIN_TYPES = set([ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
486 | 'ansichar', 'ansistring', 'bool', 'boolean', 'byte', 'bytebool', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
487 | 'cardinal', 'char', 'comp', 'currency', 'double', 'dword', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
488 | 'extended', 'int64', 'integer', 'iunknown', 'longbool', 'longint', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
489 | 'longword', 'pansichar', 'pansistring', 'pbool', 'pboolean', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
490 | 'pbyte', 'pbytearray', 'pcardinal', 'pchar', 'pcomp', 'pcurrency', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
491 | 'pdate', 'pdatetime', 'pdouble', 'pdword', 'pextended', 'phandle', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
492 | 'pint64', 'pinteger', 'plongint', 'plongword', 'pointer', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
493 | 'ppointer', 'pshortint', 'pshortstring', 'psingle', 'psmallint', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
494 | 'pstring', 'pvariant', 'pwidechar', 'pwidestring', 'pword', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
495 | 'pwordarray', 'pwordbool', 'real', 'real48', 'shortint', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
496 | 'shortstring', 'single', 'smallint', 'string', 'tclass', 'tdate', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
497 | 'tdatetime', 'textfile', 'thandle', 'tobject', 'ttime', 'variant', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
498 | 'widechar', 'widestring', 'word', 'wordbool' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
499 | ]) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
500 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
501 | BUILTIN_UNITS = { |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
502 | 'System': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
503 | 'abs', 'acquireexceptionobject', 'addr', 'ansitoutf8', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
504 | 'append', 'arctan', 'assert', 'assigned', 'assignfile', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
505 | 'beginthread', 'blockread', 'blockwrite', 'break', 'chdir', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
506 | 'chr', 'close', 'closefile', 'comptocurrency', 'comptodouble', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
507 | 'concat', 'continue', 'copy', 'cos', 'dec', 'delete', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
508 | 'dispose', 'doubletocomp', 'endthread', 'enummodules', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
509 | 'enumresourcemodules', 'eof', 'eoln', 'erase', 'exceptaddr', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
510 | 'exceptobject', 'exclude', 'exit', 'exp', 'filepos', 'filesize', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
511 | 'fillchar', 'finalize', 'findclasshinstance', 'findhinstance', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
512 | 'findresourcehinstance', 'flush', 'frac', 'freemem', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
513 | 'get8087cw', 'getdir', 'getlasterror', 'getmem', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
514 | 'getmemorymanager', 'getmodulefilename', 'getvariantmanager', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
515 | 'halt', 'hi', 'high', 'inc', 'include', 'initialize', 'insert', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
516 | 'int', 'ioresult', 'ismemorymanagerset', 'isvariantmanagerset', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
517 | 'length', 'ln', 'lo', 'low', 'mkdir', 'move', 'new', 'odd', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
518 | 'olestrtostring', 'olestrtostrvar', 'ord', 'paramcount', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
519 | 'paramstr', 'pi', 'pos', 'pred', 'ptr', 'pucs4chars', 'random', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
520 | 'randomize', 'read', 'readln', 'reallocmem', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
521 | 'releaseexceptionobject', 'rename', 'reset', 'rewrite', 'rmdir', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
522 | 'round', 'runerror', 'seek', 'seekeof', 'seekeoln', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
523 | 'set8087cw', 'setlength', 'setlinebreakstyle', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
524 | 'setmemorymanager', 'setstring', 'settextbuf', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
525 | 'setvariantmanager', 'sin', 'sizeof', 'slice', 'sqr', 'sqrt', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
526 | 'str', 'stringofchar', 'stringtoolestr', 'stringtowidechar', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
527 | 'succ', 'swap', 'trunc', 'truncate', 'typeinfo', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
528 | 'ucs4stringtowidestring', 'unicodetoutf8', 'uniquestring', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
529 | 'upcase', 'utf8decode', 'utf8encode', 'utf8toansi', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
530 | 'utf8tounicode', 'val', 'vararrayredim', 'varclear', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
531 | 'widecharlentostring', 'widecharlentostrvar', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
532 | 'widechartostring', 'widechartostrvar', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
533 | 'widestringtoucs4string', 'write', 'writeln' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
534 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
535 | 'SysUtils': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
536 | 'abort', 'addexitproc', 'addterminateproc', 'adjustlinebreaks', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
537 | 'allocmem', 'ansicomparefilename', 'ansicomparestr', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
538 | 'ansicomparetext', 'ansidequotedstr', 'ansiextractquotedstr', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
539 | 'ansilastchar', 'ansilowercase', 'ansilowercasefilename', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
540 | 'ansipos', 'ansiquotedstr', 'ansisamestr', 'ansisametext', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
541 | 'ansistrcomp', 'ansistricomp', 'ansistrlastchar', 'ansistrlcomp', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
542 | 'ansistrlicomp', 'ansistrlower', 'ansistrpos', 'ansistrrscan', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
543 | 'ansistrscan', 'ansistrupper', 'ansiuppercase', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
544 | 'ansiuppercasefilename', 'appendstr', 'assignstr', 'beep', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
545 | 'booltostr', 'bytetocharindex', 'bytetocharlen', 'bytetype', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
546 | 'callterminateprocs', 'changefileext', 'charlength', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
547 | 'chartobyteindex', 'chartobytelen', 'comparemem', 'comparestr', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
548 | 'comparetext', 'createdir', 'createguid', 'currentyear', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
549 | 'currtostr', 'currtostrf', 'date', 'datetimetofiledate', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
550 | 'datetimetostr', 'datetimetostring', 'datetimetosystemtime', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
551 | 'datetimetotimestamp', 'datetostr', 'dayofweek', 'decodedate', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
552 | 'decodedatefully', 'decodetime', 'deletefile', 'directoryexists', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
553 | 'diskfree', 'disksize', 'disposestr', 'encodedate', 'encodetime', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
554 | 'exceptionerrormessage', 'excludetrailingbackslash', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
555 | 'excludetrailingpathdelimiter', 'expandfilename', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
556 | 'expandfilenamecase', 'expanduncfilename', 'extractfiledir', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
557 | 'extractfiledrive', 'extractfileext', 'extractfilename', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
558 | 'extractfilepath', 'extractrelativepath', 'extractshortpathname', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
559 | 'fileage', 'fileclose', 'filecreate', 'filedatetodatetime', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
560 | 'fileexists', 'filegetattr', 'filegetdate', 'fileisreadonly', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
561 | 'fileopen', 'fileread', 'filesearch', 'fileseek', 'filesetattr', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
562 | 'filesetdate', 'filesetreadonly', 'filewrite', 'finalizepackage', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
563 | 'findclose', 'findcmdlineswitch', 'findfirst', 'findnext', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
564 | 'floattocurr', 'floattodatetime', 'floattodecimal', 'floattostr', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
565 | 'floattostrf', 'floattotext', 'floattotextfmt', 'fmtloadstr', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
566 | 'fmtstr', 'forcedirectories', 'format', 'formatbuf', 'formatcurr', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
567 | 'formatdatetime', 'formatfloat', 'freeandnil', 'getcurrentdir', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
568 | 'getenvironmentvariable', 'getfileversion', 'getformatsettings', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
569 | 'getlocaleformatsettings', 'getmodulename', 'getpackagedescription', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
570 | 'getpackageinfo', 'gettime', 'guidtostring', 'incamonth', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
571 | 'includetrailingbackslash', 'includetrailingpathdelimiter', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
572 | 'incmonth', 'initializepackage', 'interlockeddecrement', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
573 | 'interlockedexchange', 'interlockedexchangeadd', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
574 | 'interlockedincrement', 'inttohex', 'inttostr', 'isdelimiter', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
575 | 'isequalguid', 'isleapyear', 'ispathdelimiter', 'isvalidident', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
576 | 'languages', 'lastdelimiter', 'loadpackage', 'loadstr', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
577 | 'lowercase', 'msecstotimestamp', 'newstr', 'nextcharindex', 'now', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
578 | 'outofmemoryerror', 'quotedstr', 'raiselastoserror', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
579 | 'raiselastwin32error', 'removedir', 'renamefile', 'replacedate', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
580 | 'replacetime', 'safeloadlibrary', 'samefilename', 'sametext', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
581 | 'setcurrentdir', 'showexception', 'sleep', 'stralloc', 'strbufsize', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
582 | 'strbytetype', 'strcat', 'strcharlength', 'strcomp', 'strcopy', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
583 | 'strdispose', 'strecopy', 'strend', 'strfmt', 'stricomp', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
584 | 'stringreplace', 'stringtoguid', 'strlcat', 'strlcomp', 'strlcopy', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
585 | 'strlen', 'strlfmt', 'strlicomp', 'strlower', 'strmove', 'strnew', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
586 | 'strnextchar', 'strpas', 'strpcopy', 'strplcopy', 'strpos', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
587 | 'strrscan', 'strscan', 'strtobool', 'strtobooldef', 'strtocurr', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
588 | 'strtocurrdef', 'strtodate', 'strtodatedef', 'strtodatetime', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
589 | 'strtodatetimedef', 'strtofloat', 'strtofloatdef', 'strtoint', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
590 | 'strtoint64', 'strtoint64def', 'strtointdef', 'strtotime', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
591 | 'strtotimedef', 'strupper', 'supports', 'syserrormessage', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
592 | 'systemtimetodatetime', 'texttofloat', 'time', 'timestamptodatetime', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
593 | 'timestamptomsecs', 'timetostr', 'trim', 'trimleft', 'trimright', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
594 | 'tryencodedate', 'tryencodetime', 'tryfloattocurr', 'tryfloattodatetime', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
595 | 'trystrtobool', 'trystrtocurr', 'trystrtodate', 'trystrtodatetime', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
596 | 'trystrtofloat', 'trystrtoint', 'trystrtoint64', 'trystrtotime', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
597 | 'unloadpackage', 'uppercase', 'widecomparestr', 'widecomparetext', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
598 | 'widefmtstr', 'wideformat', 'wideformatbuf', 'widelowercase', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
599 | 'widesamestr', 'widesametext', 'wideuppercase', 'win32check', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
600 | 'wraptext' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
601 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
602 | 'Classes': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
603 | 'activateclassgroup', 'allocatehwnd', 'bintohex', 'checksynchronize', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
604 | 'collectionsequal', 'countgenerations', 'deallocatehwnd', 'equalrect', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
605 | 'extractstrings', 'findclass', 'findglobalcomponent', 'getclass', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
606 | 'groupdescendantswith', 'hextobin', 'identtoint', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
607 | 'initinheritedcomponent', 'inttoident', 'invalidpoint', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
608 | 'isuniqueglobalcomponentname', 'linestart', 'objectbinarytotext', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
609 | 'objectresourcetotext', 'objecttexttobinary', 'objecttexttoresource', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
610 | 'pointsequal', 'readcomponentres', 'readcomponentresex', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
611 | 'readcomponentresfile', 'rect', 'registerclass', 'registerclassalias', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
612 | 'registerclasses', 'registercomponents', 'registerintegerconsts', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
613 | 'registernoicon', 'registernonactivex', 'smallpoint', 'startclassgroup', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
614 | 'teststreamformat', 'unregisterclass', 'unregisterclasses', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
615 | 'unregisterintegerconsts', 'unregistermoduleclasses', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
616 | 'writecomponentresfile' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
617 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
618 | 'Math': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
619 | 'arccos', 'arccosh', 'arccot', 'arccoth', 'arccsc', 'arccsch', 'arcsec', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
620 | 'arcsech', 'arcsin', 'arcsinh', 'arctan2', 'arctanh', 'ceil', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
621 | 'comparevalue', 'cosecant', 'cosh', 'cot', 'cotan', 'coth', 'csc', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
622 | 'csch', 'cycletodeg', 'cycletograd', 'cycletorad', 'degtocycle', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
623 | 'degtograd', 'degtorad', 'divmod', 'doubledecliningbalance', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
624 | 'ensurerange', 'floor', 'frexp', 'futurevalue', 'getexceptionmask', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
625 | 'getprecisionmode', 'getroundmode', 'gradtocycle', 'gradtodeg', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
626 | 'gradtorad', 'hypot', 'inrange', 'interestpayment', 'interestrate', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
627 | 'internalrateofreturn', 'intpower', 'isinfinite', 'isnan', 'iszero', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
628 | 'ldexp', 'lnxp1', 'log10', 'log2', 'logn', 'max', 'maxintvalue', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
629 | 'maxvalue', 'mean', 'meanandstddev', 'min', 'minintvalue', 'minvalue', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
630 | 'momentskewkurtosis', 'netpresentvalue', 'norm', 'numberofperiods', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
631 | 'payment', 'periodpayment', 'poly', 'popnstddev', 'popnvariance', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
632 | 'power', 'presentvalue', 'radtocycle', 'radtodeg', 'radtograd', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
633 | 'randg', 'randomrange', 'roundto', 'samevalue', 'sec', 'secant', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
634 | 'sech', 'setexceptionmask', 'setprecisionmode', 'setroundmode', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
635 | 'sign', 'simpleroundto', 'sincos', 'sinh', 'slndepreciation', 'stddev', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
636 | 'sum', 'sumint', 'sumofsquares', 'sumsandsquares', 'syddepreciation', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
637 | 'tan', 'tanh', 'totalvariance', 'variance' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
638 | ] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
639 | } |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
640 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
641 | ASM_REGISTERS = set([ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
642 | 'ah', 'al', 'ax', 'bh', 'bl', 'bp', 'bx', 'ch', 'cl', 'cr0', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
643 | 'cr1', 'cr2', 'cr3', 'cr4', 'cs', 'cx', 'dh', 'di', 'dl', 'dr0', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
644 | 'dr1', 'dr2', 'dr3', 'dr4', 'dr5', 'dr6', 'dr7', 'ds', 'dx', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
645 | 'eax', 'ebp', 'ebx', 'ecx', 'edi', 'edx', 'es', 'esi', 'esp', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
646 | 'fs', 'gs', 'mm0', 'mm1', 'mm2', 'mm3', 'mm4', 'mm5', 'mm6', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
647 | 'mm7', 'si', 'sp', 'ss', 'st0', 'st1', 'st2', 'st3', 'st4', 'st5', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
648 | 'st6', 'st7', 'xmm0', 'xmm1', 'xmm2', 'xmm3', 'xmm4', 'xmm5', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
649 | 'xmm6', 'xmm7' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
650 | ]) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
651 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
652 | ASM_INSTRUCTIONS = set([ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
653 | 'aaa', 'aad', 'aam', 'aas', 'adc', 'add', 'and', 'arpl', 'bound', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
654 | 'bsf', 'bsr', 'bswap', 'bt', 'btc', 'btr', 'bts', 'call', 'cbw', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
655 | 'cdq', 'clc', 'cld', 'cli', 'clts', 'cmc', 'cmova', 'cmovae', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
656 | 'cmovb', 'cmovbe', 'cmovc', 'cmovcxz', 'cmove', 'cmovg', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
657 | 'cmovge', 'cmovl', 'cmovle', 'cmovna', 'cmovnae', 'cmovnb', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
658 | 'cmovnbe', 'cmovnc', 'cmovne', 'cmovng', 'cmovnge', 'cmovnl', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
659 | 'cmovnle', 'cmovno', 'cmovnp', 'cmovns', 'cmovnz', 'cmovo', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
660 | 'cmovp', 'cmovpe', 'cmovpo', 'cmovs', 'cmovz', 'cmp', 'cmpsb', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
661 | 'cmpsd', 'cmpsw', 'cmpxchg', 'cmpxchg486', 'cmpxchg8b', 'cpuid', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
662 | 'cwd', 'cwde', 'daa', 'das', 'dec', 'div', 'emms', 'enter', 'hlt', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
663 | 'ibts', 'icebp', 'idiv', 'imul', 'in', 'inc', 'insb', 'insd', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
664 | 'insw', 'int', 'int01', 'int03', 'int1', 'int3', 'into', 'invd', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
665 | 'invlpg', 'iret', 'iretd', 'iretw', 'ja', 'jae', 'jb', 'jbe', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
666 | 'jc', 'jcxz', 'jcxz', 'je', 'jecxz', 'jg', 'jge', 'jl', 'jle', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
667 | 'jmp', 'jna', 'jnae', 'jnb', 'jnbe', 'jnc', 'jne', 'jng', 'jnge', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
668 | 'jnl', 'jnle', 'jno', 'jnp', 'jns', 'jnz', 'jo', 'jp', 'jpe', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
669 | 'jpo', 'js', 'jz', 'lahf', 'lar', 'lcall', 'lds', 'lea', 'leave', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
670 | 'les', 'lfs', 'lgdt', 'lgs', 'lidt', 'ljmp', 'lldt', 'lmsw', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
671 | 'loadall', 'loadall286', 'lock', 'lodsb', 'lodsd', 'lodsw', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
672 | 'loop', 'loope', 'loopne', 'loopnz', 'loopz', 'lsl', 'lss', 'ltr', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
673 | 'mov', 'movd', 'movq', 'movsb', 'movsd', 'movsw', 'movsx', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
674 | 'movzx', 'mul', 'neg', 'nop', 'not', 'or', 'out', 'outsb', 'outsd', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
675 | 'outsw', 'pop', 'popa', 'popad', 'popaw', 'popf', 'popfd', 'popfw', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
676 | 'push', 'pusha', 'pushad', 'pushaw', 'pushf', 'pushfd', 'pushfw', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
677 | 'rcl', 'rcr', 'rdmsr', 'rdpmc', 'rdshr', 'rdtsc', 'rep', 'repe', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
678 | 'repne', 'repnz', 'repz', 'ret', 'retf', 'retn', 'rol', 'ror', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
679 | 'rsdc', 'rsldt', 'rsm', 'sahf', 'sal', 'salc', 'sar', 'sbb', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
680 | 'scasb', 'scasd', 'scasw', 'seta', 'setae', 'setb', 'setbe', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
681 | 'setc', 'setcxz', 'sete', 'setg', 'setge', 'setl', 'setle', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
682 | 'setna', 'setnae', 'setnb', 'setnbe', 'setnc', 'setne', 'setng', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
683 | 'setnge', 'setnl', 'setnle', 'setno', 'setnp', 'setns', 'setnz', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
684 | 'seto', 'setp', 'setpe', 'setpo', 'sets', 'setz', 'sgdt', 'shl', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
685 | 'shld', 'shr', 'shrd', 'sidt', 'sldt', 'smi', 'smint', 'smintold', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
686 | 'smsw', 'stc', 'std', 'sti', 'stosb', 'stosd', 'stosw', 'str', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
687 | 'sub', 'svdc', 'svldt', 'svts', 'syscall', 'sysenter', 'sysexit', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
688 | 'sysret', 'test', 'ud1', 'ud2', 'umov', 'verr', 'verw', 'wait', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
689 | 'wbinvd', 'wrmsr', 'wrshr', 'xadd', 'xbts', 'xchg', 'xlat', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
690 | 'xlatb', 'xor' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
691 | ]) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
692 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
693 | def __init__(self, **options): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
694 | Lexer.__init__(self, **options) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
695 | self.keywords = set() |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
696 | if get_bool_opt(options, 'turbopascal', True): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
697 | self.keywords.update(self.TURBO_PASCAL_KEYWORDS) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
698 | if get_bool_opt(options, 'delphi', True): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
699 | self.keywords.update(self.DELPHI_KEYWORDS) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
700 | if get_bool_opt(options, 'freepascal', True): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
701 | self.keywords.update(self.FREE_PASCAL_KEYWORDS) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
702 | self.builtins = set() |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
703 | for unit in get_list_opt(options, 'units', list(self.BUILTIN_UNITS.keys())): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
704 | self.builtins.update(self.BUILTIN_UNITS[unit]) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
705 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
706 | def get_tokens_unprocessed(self, text): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
707 | scanner = Scanner(text, re.DOTALL | re.MULTILINE | re.IGNORECASE) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
708 | stack = ['initial'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
709 | in_function_block = False |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
710 | in_property_block = False |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
711 | was_dot = False |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
712 | next_token_is_function = False |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
713 | next_token_is_property = False |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
714 | collect_labels = False |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
715 | block_labels = set() |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
716 | brace_balance = [0, 0] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
717 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
718 | while not scanner.eos: |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
719 | token = Error |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
720 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
721 | if stack[-1] == 'initial': |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
722 | if scanner.scan(r'\s+'): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
723 | token = Text |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
724 | elif scanner.scan(r'\{.*?\}|\(\*.*?\*\)'): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
725 | if scanner.match.startswith('$'): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
726 | token = Comment.Preproc |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
727 | else: |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
728 | token = Comment.Multiline |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
729 | elif scanner.scan(r'//.*?$'): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
730 | token = Comment.Single |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
731 | elif scanner.scan(r'[-+*\/=<>:;,.@\^]'): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
732 | token = Operator |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
733 | # stop label highlighting on next ";" |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
734 | if collect_labels and scanner.match == ';': |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
735 | collect_labels = False |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
736 | elif scanner.scan(r'[\(\)\[\]]+'): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
737 | token = Punctuation |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
738 | # abort function naming ``foo = Function(...)`` |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
739 | next_token_is_function = False |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
740 | # if we are in a function block we count the open |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
741 | # braces because ootherwise it's impossible to |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
742 | # determine the end of the modifier context |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
743 | if in_function_block or in_property_block: |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
744 | if scanner.match == '(': |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
745 | brace_balance[0] += 1 |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
746 | elif scanner.match == ')': |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
747 | brace_balance[0] -= 1 |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
748 | elif scanner.match == '[': |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
749 | brace_balance[1] += 1 |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
750 | elif scanner.match == ']': |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
751 | brace_balance[1] -= 1 |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
752 | elif scanner.scan(r'[A-Za-z_][A-Za-z_0-9]*'): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
753 | lowercase_name = scanner.match.lower() |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
754 | if lowercase_name == 'result': |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
755 | token = Name.Builtin.Pseudo |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
756 | elif lowercase_name in self.keywords: |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
757 | token = Keyword |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
758 | # if we are in a special block and a |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
759 | # block ending keyword occours (and the parenthesis |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
760 | # is balanced) we end the current block context |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
761 | if (in_function_block or in_property_block) and \ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
762 | lowercase_name in self.BLOCK_KEYWORDS and \ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
763 | brace_balance[0] <= 0 and \ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
764 | brace_balance[1] <= 0: |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
765 | in_function_block = False |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
766 | in_property_block = False |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
767 | brace_balance = [0, 0] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
768 | block_labels = set() |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
769 | if lowercase_name in ('label', 'goto'): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
770 | collect_labels = True |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
771 | elif lowercase_name == 'asm': |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
772 | stack.append('asm') |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
773 | elif lowercase_name == 'property': |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
774 | in_property_block = True |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
775 | next_token_is_property = True |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
776 | elif lowercase_name in ('procedure', 'operator', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
777 | 'function', 'constructor', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
778 | 'destructor'): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
779 | in_function_block = True |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
780 | next_token_is_function = True |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
781 | # we are in a function block and the current name |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
782 | # is in the set of registered modifiers. highlight |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
783 | # it as pseudo keyword |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
784 | elif in_function_block and \ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
785 | lowercase_name in self.FUNCTION_MODIFIERS: |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
786 | token = Keyword.Pseudo |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
787 | # if we are in a property highlight some more |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
788 | # modifiers |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
789 | elif in_property_block and \ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
790 | lowercase_name in ('read', 'write'): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
791 | token = Keyword.Pseudo |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
792 | next_token_is_function = True |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
793 | # if the last iteration set next_token_is_function |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
794 | # to true we now want this name highlighted as |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
795 | # function. so do that and reset the state |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
796 | elif next_token_is_function: |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
797 | # Look if the next token is a dot. If yes it's |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
798 | # not a function, but a class name and the |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
799 | # part after the dot a function name |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
800 | if scanner.test(r'\s*\.\s*'): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
801 | token = Name.Class |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
802 | # it's not a dot, our job is done |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
803 | else: |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
804 | token = Name.Function |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
805 | next_token_is_function = False |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
806 | # same for properties |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
807 | elif next_token_is_property: |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
808 | token = Name.Property |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
809 | next_token_is_property = False |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
810 | # Highlight this token as label and add it |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
811 | # to the list of known labels |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
812 | elif collect_labels: |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
813 | token = Name.Label |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
814 | block_labels.add(scanner.match.lower()) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
815 | # name is in list of known labels |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
816 | elif lowercase_name in block_labels: |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
817 | token = Name.Label |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
818 | elif lowercase_name in self.BUILTIN_TYPES: |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
819 | token = Keyword.Type |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
820 | elif lowercase_name in self.DIRECTIVES: |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
821 | token = Keyword.Pseudo |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
822 | # builtins are just builtins if the token |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
823 | # before isn't a dot |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
824 | elif not was_dot and lowercase_name in self.builtins: |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
825 | token = Name.Builtin |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
826 | else: |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
827 | token = Name |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
828 | elif scanner.scan(r"'"): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
829 | token = String |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
830 | stack.append('string') |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
831 | elif scanner.scan(r'\#(\d+|\$[0-9A-Fa-f]+)'): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
832 | token = String.Char |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
833 | elif scanner.scan(r'\$[0-9A-Fa-f]+'): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
834 | token = Number.Hex |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
835 | elif scanner.scan(r'\d+(?![eE]|\.[^.])'): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
836 | token = Number.Integer |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
837 | elif scanner.scan(r'\d+(\.\d+([eE][+-]?\d+)?|[eE][+-]?\d+)'): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
838 | token = Number.Float |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
839 | else: |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
840 | # if the stack depth is deeper than once, pop |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
841 | if len(stack) > 1: |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
842 | stack.pop() |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
843 | scanner.get_char() |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
844 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
845 | elif stack[-1] == 'string': |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
846 | if scanner.scan(r"''"): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
847 | token = String.Escape |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
848 | elif scanner.scan(r"'"): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
849 | token = String |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
850 | stack.pop() |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
851 | elif scanner.scan(r"[^']*"): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
852 | token = String |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
853 | else: |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
854 | scanner.get_char() |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
855 | stack.pop() |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
856 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
857 | elif stack[-1] == 'asm': |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
858 | if scanner.scan(r'\s+'): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
859 | token = Text |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
860 | elif scanner.scan(r'end'): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
861 | token = Keyword |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
862 | stack.pop() |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
863 | elif scanner.scan(r'\{.*?\}|\(\*.*?\*\)'): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
864 | if scanner.match.startswith('$'): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
865 | token = Comment.Preproc |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
866 | else: |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
867 | token = Comment.Multiline |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
868 | elif scanner.scan(r'//.*?$'): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
869 | token = Comment.Single |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
870 | elif scanner.scan(r"'"): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
871 | token = String |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
872 | stack.append('string') |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
873 | elif scanner.scan(r'@@[A-Za-z_][A-Za-z_0-9]*'): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
874 | token = Name.Label |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
875 | elif scanner.scan(r'[A-Za-z_][A-Za-z_0-9]*'): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
876 | lowercase_name = scanner.match.lower() |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
877 | if lowercase_name in self.ASM_INSTRUCTIONS: |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
878 | token = Keyword |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
879 | elif lowercase_name in self.ASM_REGISTERS: |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
880 | token = Name.Builtin |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
881 | else: |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
882 | token = Name |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
883 | elif scanner.scan(r'[-+*\/=<>:;,.@\^]+'): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
884 | token = Operator |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
885 | elif scanner.scan(r'[\(\)\[\]]+'): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
886 | token = Punctuation |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
887 | elif scanner.scan(r'\$[0-9A-Fa-f]+'): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
888 | token = Number.Hex |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
889 | elif scanner.scan(r'\d+(?![eE]|\.[^.])'): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
890 | token = Number.Integer |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
891 | elif scanner.scan(r'\d+(\.\d+([eE][+-]?\d+)?|[eE][+-]?\d+)'): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
892 | token = Number.Float |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
893 | else: |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
894 | scanner.get_char() |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
895 | stack.pop() |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
896 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
897 | # save the dot!!!11 |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
898 | if scanner.match.strip(): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
899 | was_dot = scanner.match == '.' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
900 | yield scanner.start_pos, token, scanner.match or '' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
901 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
902 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
903 | class DylanLexer(RegexLexer): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
904 | """ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
905 | For the `Dylan <http://www.opendylan.org/>`_ language. |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
906 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
907 | *New in Pygments 0.7.* |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
908 | """ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
909 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
910 | name = 'Dylan' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
911 | aliases = ['dylan'] |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
912 | filenames = ['*.dylan', '*.dyl', '*.intr'] |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
913 | mimetypes = ['text/x-dylan'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
914 | |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
915 | flags = re.IGNORECASE |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
916 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
917 | builtins = set([ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
918 | 'subclass', 'abstract', 'block', 'concrete', 'constant', 'class', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
919 | 'compiler-open', 'compiler-sideways', 'domain', 'dynamic', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
920 | 'each-subclass', 'exception', 'exclude', 'function', 'generic', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
921 | 'handler', 'inherited', 'inline', 'inline-only', 'instance', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
922 | 'interface', 'import', 'keyword', 'library', 'macro', 'method', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
923 | 'module', 'open', 'primary', 'required', 'sealed', 'sideways', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
924 | 'singleton', 'slot', 'thread', 'variable', 'virtual']) |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
925 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
926 | keywords = set([ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
927 | 'above', 'afterwards', 'begin', 'below', 'by', 'case', 'cleanup', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
928 | 'create', 'define', 'else', 'elseif', 'end', 'export', 'finally', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
929 | 'for', 'from', 'if', 'in', 'let', 'local', 'otherwise', 'rename', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
930 | 'select', 'signal', 'then', 'to', 'unless', 'until', 'use', 'when', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
931 | 'while']) |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
932 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
933 | operators = set([ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
934 | '~', '+', '-', '*', '|', '^', '=', '==', '~=', '~==', '<', '<=', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
935 | '>', '>=', '&', '|']) |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
936 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
937 | functions = set([ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
938 | 'abort', 'abs', 'add', 'add!', 'add-method', 'add-new', 'add-new!', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
939 | 'all-superclasses', 'always', 'any?', 'applicable-method?', 'apply', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
940 | 'aref', 'aref-setter', 'as', 'as-lowercase', 'as-lowercase!', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
941 | 'as-uppercase', 'as-uppercase!', 'ash', 'backward-iteration-protocol', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
942 | 'break', 'ceiling', 'ceiling/', 'cerror', 'check-type', 'choose', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
943 | 'choose-by', 'complement', 'compose', 'concatenate', 'concatenate-as', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
944 | 'condition-format-arguments', 'condition-format-string', 'conjoin', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
945 | 'copy-sequence', 'curry', 'default-handler', 'dimension', 'dimensions', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
946 | 'direct-subclasses', 'direct-superclasses', 'disjoin', 'do', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
947 | 'do-handlers', 'element', 'element-setter', 'empty?', 'error', 'even?', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
948 | 'every?', 'false-or', 'fill!', 'find-key', 'find-method', 'first', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
949 | 'first-setter', 'floor', 'floor/', 'forward-iteration-protocol', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
950 | 'function-arguments', 'function-return-values', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
951 | 'function-specializers', 'gcd', 'generic-function-mandatory-keywords', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
952 | 'generic-function-methods', 'head', 'head-setter', 'identity', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
953 | 'initialize', 'instance?', 'integral?', 'intersection', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
954 | 'key-sequence', 'key-test', 'last', 'last-setter', 'lcm', 'limited', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
955 | 'list', 'logand', 'logbit?', 'logior', 'lognot', 'logxor', 'make', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
956 | 'map', 'map-as', 'map-into', 'max', 'member?', 'merge-hash-codes', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
957 | 'min', 'modulo', 'negative', 'negative?', 'next-method', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
958 | 'object-class', 'object-hash', 'odd?', 'one-of', 'pair', 'pop', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
959 | 'pop-last', 'positive?', 'push', 'push-last', 'range', 'rank', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
960 | 'rcurry', 'reduce', 'reduce1', 'remainder', 'remove', 'remove!', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
961 | 'remove-duplicates', 'remove-duplicates!', 'remove-key!', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
962 | 'remove-method', 'replace-elements!', 'replace-subsequence!', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
963 | 'restart-query', 'return-allowed?', 'return-description', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
964 | 'return-query', 'reverse', 'reverse!', 'round', 'round/', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
965 | 'row-major-index', 'second', 'second-setter', 'shallow-copy', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
966 | 'signal', 'singleton', 'size', 'size-setter', 'slot-initialized?', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
967 | 'sort', 'sort!', 'sorted-applicable-methods', 'subsequence-position', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
968 | 'subtype?', 'table-protocol', 'tail', 'tail-setter', 'third', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
969 | 'third-setter', 'truncate', 'truncate/', 'type-error-expected-type', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
970 | 'type-error-value', 'type-for-copy', 'type-union', 'union', 'values', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
971 | 'vector', 'zero?']) |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
972 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
973 | valid_name = '\\\\?[a-zA-Z0-9' + re.escape('!&*<>|^$%@_-+~?/=') + ']+' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
974 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
975 | def get_tokens_unprocessed(self, text): |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
976 | for index, token, value in RegexLexer.get_tokens_unprocessed(self, text): |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
977 | if token is Name: |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
978 | lowercase_value = value.lower() |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
979 | if lowercase_value in self.builtins: |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
980 | yield index, Name.Builtin, value |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
981 | continue |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
982 | if lowercase_value in self.keywords: |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
983 | yield index, Keyword, value |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
984 | continue |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
985 | if lowercase_value in self.functions: |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
986 | yield index, Name.Builtin, value |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
987 | continue |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
988 | if lowercase_value in self.operators: |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
989 | yield index, Operator, value |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
990 | continue |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
991 | yield index, token, value |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
992 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
993 | tokens = { |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
994 | 'root': [ |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
995 | # Whitespace |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
996 | (r'\s+', Text), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
997 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
998 | # single line comment |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
999 | (r'//.*?\n', Comment.Single), |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1000 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1001 | # lid header |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1002 | (r'([A-Za-z0-9-]+)(:)([ \t]*)(.*(?:\n[ \t].+)*)', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1003 | bygroups(Name.Attribute, Operator, Text, String)), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1004 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1005 | ('', Text, 'code') # no header match, switch to code |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1006 | ], |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1007 | 'code': [ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1008 | # Whitespace |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1009 | (r'\s+', Text), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1010 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1011 | # single line comment |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1012 | (r'//.*?\n', Comment.Single), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1013 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1014 | # multi-line comment |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1015 | (r'/\*', Comment.Multiline, 'comment'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1016 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1017 | # strings and characters |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1018 | (r'"', String, 'string'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1019 | (r"'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])'", String.Char), |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1020 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1021 | # binary integer |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1022 | (r'#[bB][01]+', Number), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1023 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1024 | # octal integer |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1025 | (r'#[oO][0-7]+', Number.Oct), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1026 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1027 | # floating point |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1028 | (r'[-+]?(\d*\.\d+(e[-+]?\d+)?|\d+(\.\d*)?e[-+]?\d+)', Number.Float), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1029 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1030 | # decimal integer |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1031 | (r'[-+]?\d+', Number.Integer), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1032 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1033 | # hex integer |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1034 | (r'#[xX][0-9a-fA-F]+', Number.Hex), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1035 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1036 | # Macro parameters |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1037 | (r'(\?' + valid_name + ')(:)' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1038 | r'(token|name|variable|expression|body|case-body|\*)', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1039 | bygroups(Name.Tag, Operator, Name.Builtin)), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1040 | (r'(\?)(:)(token|name|variable|expression|body|case-body|\*)', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1041 | bygroups(Name.Tag, Operator, Name.Builtin)), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1042 | (r'\?' + valid_name, Name.Tag), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1043 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1044 | # Punctuation |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1045 | (r'(=>|::|#\(|#\[|##|\?|\?\?|\?=|[(){}\[\],\.;])', Punctuation), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1046 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1047 | # Most operators are picked up as names and then re-flagged. |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1048 | # This one isn't valid in a name though, so we pick it up now. |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1049 | (r':=', Operator), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1050 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1051 | # Pick up #t / #f before we match other stuff with #. |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1052 | (r'#[tf]', Literal), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1053 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1054 | # #"foo" style keywords |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1055 | (r'#"', String.Symbol, 'keyword'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1056 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1057 | # #rest, #key, #all-keys, etc. |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1058 | (r'#[a-zA-Z0-9-]+', Keyword), |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1059 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1060 | # required-init-keyword: style keywords. |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1061 | (valid_name + ':', Keyword), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1062 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1063 | # class names |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1064 | (r'<' + valid_name + '>', Name.Class), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1065 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1066 | # define variable forms. |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1067 | (r'\*' + valid_name + '\*', Name.Variable.Global), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1068 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1069 | # define constant forms. |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1070 | (r'\$' + valid_name, Name.Constant), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1071 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1072 | # everything else. We re-flag some of these in the method above. |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1073 | (valid_name, Name), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1074 | ], |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1075 | 'comment': [ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1076 | (r'[^*/]', Comment.Multiline), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1077 | (r'/\*', Comment.Multiline, '#push'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1078 | (r'\*/', Comment.Multiline, '#pop'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1079 | (r'[*/]', Comment.Multiline) |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1080 | ], |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1081 | 'keyword': [ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1082 | (r'"', String.Symbol, '#pop'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1083 | (r'[^\\"]+', String.Symbol), # all other characters |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1084 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1085 | 'string': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1086 | (r'"', String, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1087 | (r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})', String.Escape), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1088 | (r'[^\\"\n]+', String), # all other characters |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1089 | (r'\\\n', String), # line continuation |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1090 | (r'\\', String), # stray backslash |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1091 | ] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1092 | } |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1093 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1094 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1095 | class DylanLidLexer(RegexLexer): |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1096 | """ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1097 | For Dylan LID (Library Interchange Definition) files. |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1098 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1099 | *New in Pygments 1.6.* |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1100 | """ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1101 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1102 | name = 'DylanLID' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1103 | aliases = ['dylan-lid', 'lid'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1104 | filenames = ['*.lid', '*.hdp'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1105 | mimetypes = ['text/x-dylan-lid'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1106 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1107 | flags = re.IGNORECASE |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1108 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1109 | tokens = { |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1110 | 'root': [ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1111 | # Whitespace |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1112 | (r'\s+', Text), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1113 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1114 | # single line comment |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1115 | (r'//.*?\n', Comment.Single), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1116 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1117 | # lid header |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1118 | (r'(.*?)(:)([ \t]*)(.*(?:\n[ \t].+)*)', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1119 | bygroups(Name.Attribute, Operator, Text, String)), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1120 | ] |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1121 | } |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1122 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1123 | |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1124 | class DylanConsoleLexer(Lexer): |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1125 | """ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1126 | For Dylan interactive console output like: |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1127 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1128 | .. sourcecode:: dylan-console |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1129 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1130 | ? let a = 1; |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1131 | => 1 |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1132 | ? a |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1133 | => 1 |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1134 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1135 | This is based on a copy of the RubyConsoleLexer. |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1136 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1137 | *New in Pygments 1.6.* |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1138 | """ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1139 | name = 'Dylan session' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1140 | aliases = ['dylan-console', 'dylan-repl'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1141 | filenames = ['*.dylan-console'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1142 | mimetypes = ['text/x-dylan-console'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1143 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1144 | _line_re = re.compile('.*?\n') |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1145 | _prompt_re = re.compile('\?| ') |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1146 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1147 | def get_tokens_unprocessed(self, text): |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1148 | dylexer = DylanLexer(**self.options) |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1149 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1150 | curcode = '' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1151 | insertions = [] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1152 | for match in self._line_re.finditer(text): |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1153 | line = match.group() |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1154 | m = self._prompt_re.match(line) |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1155 | if m is not None: |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1156 | end = m.end() |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1157 | insertions.append((len(curcode), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1158 | [(0, Generic.Prompt, line[:end])])) |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1159 | curcode += line[end:] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1160 | else: |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1161 | if curcode: |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1162 | for item in do_insertions(insertions, |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1163 | dylexer.get_tokens_unprocessed(curcode)): |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1164 | yield item |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1165 | curcode = '' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1166 | insertions = [] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1167 | yield match.start(), Generic.Output, line |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1168 | if curcode: |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1169 | for item in do_insertions(insertions, |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1170 | dylexer.get_tokens_unprocessed(curcode)): |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1171 | yield item |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1172 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1173 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1174 | def objective(baselexer): |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1175 | """ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1176 | Generate a subclass of baselexer that accepts the Objective-C syntax |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1177 | extensions. |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1178 | """ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1179 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1180 | # Have to be careful not to accidentally match JavaDoc/Doxygen syntax here, |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1181 | # since that's quite common in ordinary C/C++ files. It's OK to match |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1182 | # JavaDoc/Doxygen keywords that only apply to Objective-C, mind. |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1183 | # |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1184 | # The upshot of this is that we CANNOT match @class or @interface |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1185 | _oc_keywords = re.compile(r'@(?:end|implementation|protocol)') |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1186 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1187 | # Matches [ <ws>? identifier <ws> ( identifier <ws>? ] | identifier? : ) |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1188 | # (note the identifier is *optional* when there is a ':'!) |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1189 | _oc_message = re.compile(r'\[\s*[a-zA-Z_][a-zA-Z0-9_]*\s+' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1190 | r'(?:[a-zA-Z_][a-zA-Z0-9_]*\s*\]|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1191 | r'(?:[a-zA-Z_][a-zA-Z0-9_]*)?:)') |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1192 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1193 | class GeneratedObjectiveCVariant(baselexer): |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1194 | """ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1195 | Implements Objective-C syntax on top of an existing C family lexer. |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1196 | """ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1197 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1198 | tokens = { |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1199 | 'statements': [ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1200 | (r'@"', String, 'string'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1201 | (r"@'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])'", |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1202 | String.Char), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1203 | (r'@(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?', Number.Float), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1204 | (r'@(\d+\.\d*|\.\d+|\d+[fF])[fF]?', Number.Float), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1205 | (r'@0x[0-9a-fA-F]+[Ll]?', Number.Hex), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1206 | (r'@0[0-7]+[Ll]?', Number.Oct), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1207 | (r'@\d+[Ll]?', Number.Integer), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1208 | (r'(in|@selector|@private|@protected|@public|@encode|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1209 | r'@synchronized|@try|@throw|@catch|@finally|@end|@property|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1210 | r'@synthesize|@dynamic|@optional)\b', Keyword), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1211 | (r'(id|Class|IMP|SEL|BOOL|IBOutlet|IBAction|unichar)\b', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1212 | Keyword.Type), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1213 | (r'@(true|false|YES|NO)\n', Name.Builtin), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1214 | (r'(YES|NO|nil)\b', Name.Builtin), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1215 | (r'(@interface|@implementation)(\s+)', bygroups(Keyword, Text), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1216 | ('#pop', 'oc_classname')), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1217 | (r'(@class|@protocol)(\s+)', bygroups(Keyword, Text), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1218 | ('#pop', 'oc_forward_classname')), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1219 | inherit, |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1220 | ], |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1221 | 'oc_classname' : [ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1222 | # interface definition that inherits |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1223 | ('([a-zA-Z$_][a-zA-Z0-9$_]*)(\s*:\s*)([a-zA-Z$_][a-zA-Z0-9$_]*)?', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1224 | bygroups(Name.Class, Text, Name.Class), '#pop'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1225 | # interface definition for a category |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1226 | ('([a-zA-Z$_][a-zA-Z0-9$_]*)(\s*)(\([a-zA-Z$_][a-zA-Z0-9$_]*\))', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1227 | bygroups(Name.Class, Text, Name.Label), '#pop'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1228 | # simple interface / implementation |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1229 | ('([a-zA-Z$_][a-zA-Z0-9$_]*)', Name.Class, '#pop') |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1230 | ], |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1231 | 'oc_forward_classname' : [ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1232 | ('([a-zA-Z$_][a-zA-Z0-9$_]*)(\s*,\s*)', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1233 | bygroups(Name.Class, Text), 'oc_forward_classname'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1234 | ('([a-zA-Z$_][a-zA-Z0-9$_]*)(\s*;?)', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1235 | bygroups(Name.Class, Text), '#pop') |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1236 | ], |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1237 | 'root': [ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1238 | # methods |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1239 | (r'^([-+])(\s*)' # method marker |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1240 | r'(\(.*?\))?(\s*)' # return type |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1241 | r'([a-zA-Z$_][a-zA-Z0-9$_]*:?)', # begin of method name |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1242 | bygroups(Keyword, Text, using(this), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1243 | Text, Name.Function), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1244 | 'method'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1245 | inherit, |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1246 | ], |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1247 | 'method': [ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1248 | include('whitespace'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1249 | # TODO unsure if ellipses are allowed elsewhere, see |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1250 | # discussion in Issue 789 |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1251 | (r',', Punctuation), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1252 | (r'\.\.\.', Punctuation), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1253 | (r'(\(.*?\))([a-zA-Z$_][a-zA-Z0-9$_]*)', bygroups(using(this), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1254 | Name.Variable)), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1255 | (r'[a-zA-Z$_][a-zA-Z0-9$_]*:', Name.Function), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1256 | (';', Punctuation, '#pop'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1257 | ('{', Punctuation, 'function'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1258 | ('', Text, '#pop'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1259 | ], |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1260 | } |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1261 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1262 | def analyse_text(text): |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1263 | if _oc_keywords.search(text): |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1264 | return 1.0 |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1265 | elif '@"' in text: # strings |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1266 | return 0.8 |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1267 | elif _oc_message.search(text): |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1268 | return 0.8 |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1269 | return 0 |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1270 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1271 | return GeneratedObjectiveCVariant |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1272 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1273 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1274 | class ObjectiveCLexer(objective(CLexer)): |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1275 | """ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1276 | For Objective-C source code with preprocessor directives. |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1277 | """ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1278 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1279 | name = 'Objective-C' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1280 | aliases = ['objective-c', 'objectivec', 'obj-c', 'objc'] |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1281 | filenames = ['*.m', '*.h'] |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1282 | mimetypes = ['text/x-objective-c'] |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1283 | priority = 0.05 # Lower than C |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1284 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1285 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1286 | class ObjectiveCppLexer(objective(CppLexer)): |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1287 | """ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1288 | For Objective-C++ source code with preprocessor directives. |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1289 | """ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1290 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1291 | name = 'Objective-C++' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1292 | aliases = ['objective-c++', 'objectivec++', 'obj-c++', 'objc++'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1293 | filenames = ['*.mm', '*.hh'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1294 | mimetypes = ['text/x-objective-c++'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1295 | priority = 0.05 # Lower than C++ |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1296 | |
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1297 | |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1298 | class FortranLexer(RegexLexer): |
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1299 | """ |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1300 | Lexer for FORTRAN 90 code. |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1301 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1302 | *New in Pygments 0.10.* |
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1303 | """ |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1304 | name = 'Fortran' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1305 | aliases = ['fortran'] |
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1306 | filenames = ['*.f', '*.f90', '*.F', '*.F90'] |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1307 | mimetypes = ['text/x-fortran'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1308 | flags = re.IGNORECASE |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1309 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1310 | # Data Types: INTEGER, REAL, COMPLEX, LOGICAL, CHARACTER and DOUBLE PRECISION |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1311 | # Operators: **, *, +, -, /, <, >, <=, >=, ==, /= |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1312 | # Logical (?): NOT, AND, OR, EQV, NEQV |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1313 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1314 | # Builtins: |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1315 | # http://gcc.gnu.org/onlinedocs/gcc-3.4.6/g77/Table-of-Intrinsic-Functions.html |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1316 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1317 | tokens = { |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1318 | 'root': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1319 | (r'!.*\n', Comment), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1320 | include('strings'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1321 | include('core'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1322 | (r'[a-z][a-z0-9_]*', Name.Variable), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1323 | include('nums'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1324 | (r'[\s]+', Text), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1325 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1326 | 'core': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1327 | # Statements |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1328 | (r'\b(ABSTRACT|ACCEPT|ALLOCATABLE|ALLOCATE|ARRAY|ASSIGN|ASYNCHRONOUS|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1329 | r'BACKSPACE|BIND|BLOCK( DATA)?|BYTE|CALL|CASE|CLASS|CLOSE|COMMON|CONTAINS|' |
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1330 | r'CONTINUE|CYCLE|DATA|DEALLOCATE|DECODE|DEFERRED|DIMENSION|DO|' |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1331 | r'ELEMENTAL|ELSE|ENCODE|END( FILE)?|ENDIF|ENTRY|ENUMERATOR|EQUIVALENCE|' |
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1332 | r'EXIT|EXTERNAL|EXTRINSIC|FINAL|FORALL|FORMAT|FUNCTION|GENERIC|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1333 | r'GOTO|IF|IMPLICIT|IMPORT|INCLUDE|INQUIRE|INTENT|INTERFACE|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1334 | r'INTRINSIC|MODULE|NAMELIST|NULLIFY|NONE|NON_INTRINSIC|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1335 | r'NON_OVERRIDABLE|NOPASS|OPEN|OPTIONAL|OPTIONS|PARAMETER|PASS|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1336 | r'PAUSE|POINTER|PRINT|PRIVATE|PROGRAM|PROTECTED|PUBLIC|PURE|READ|' |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1337 | r'RECURSIVE|RESULT|RETURN|REWIND|SAVE|SELECT|SEQUENCE|STOP|SUBROUTINE|' |
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1338 | r'TARGET|THEN|TYPE|USE|VALUE|VOLATILE|WHERE|WRITE|WHILE)\s*\b', |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1339 | Keyword), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1340 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1341 | # Data Types |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1342 | (r'\b(CHARACTER|COMPLEX|DOUBLE PRECISION|DOUBLE COMPLEX|INTEGER|' |
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1343 | r'LOGICAL|REAL|C_INT|C_SHORT|C_LONG|C_LONG_LONG|C_SIGNED_CHAR|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1344 | r'C_SIZE_T|C_INT8_T|C_INT16_T|C_INT32_T|C_INT64_T|C_INT_LEAST8_T|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1345 | r'C_INT_LEAST16_T|C_INT_LEAST32_T|C_INT_LEAST64_T|C_INT_FAST8_T|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1346 | r'C_INT_FAST16_T|C_INT_FAST32_T|C_INT_FAST64_T|C_INTMAX_T|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1347 | r'C_INTPTR_T|C_FLOAT|C_DOUBLE|C_LONG_DOUBLE|C_FLOAT_COMPLEX|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1348 | r'C_DOUBLE_COMPLEX|C_LONG_DOUBLE_COMPLEX|C_BOOL|C_CHAR|C_PTR|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1349 | r'C_FUNPTR)\s*\b', |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1350 | Keyword.Type), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1351 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1352 | # Operators |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1353 | (r'(\*\*|\*|\+|-|\/|<|>|<=|>=|==|\/=|=)', Operator), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1354 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1355 | (r'(::)', Keyword.Declaration), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1356 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1357 | (r'[(),:&%;]', Punctuation), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1358 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1359 | # Intrinsics |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1360 | (r'\b(Abort|Abs|Access|AChar|ACos|AdjustL|AdjustR|AImag|AInt|Alarm|' |
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1361 | r'All|Allocated|ALog|AMax|AMin|AMod|And|ANInt|Any|ASin|Associated|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1362 | r'ATan|BesJ|BesJN|BesY|BesYN|Bit_Size|BTest|CAbs|CCos|Ceiling|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1363 | r'CExp|Char|ChDir|ChMod|CLog|Cmplx|Command_Argument_Count|Complex|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1364 | r'Conjg|Cos|CosH|Count|CPU_Time|CShift|CSin|CSqRt|CTime|C_Funloc|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1365 | r'C_Loc|C_Associated|C_Null_Ptr|C_Null_Funptr|C_F_Pointer|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1366 | r'C_Null_Char|C_Alert|C_Backspace|C_Form_Feed|C_New_Line|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1367 | r'C_Carriage_Return|C_Horizontal_Tab|C_Vertical_Tab|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1368 | r'DAbs|DACos|DASin|DATan|Date_and_Time|DbesJ|' |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1369 | r'DbesJ|DbesJN|DbesY|DbesY|DbesYN|Dble|DCos|DCosH|DDiM|DErF|DErFC|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1370 | r'DExp|Digits|DiM|DInt|DLog|DLog|DMax|DMin|DMod|DNInt|Dot_Product|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1371 | r'DProd|DSign|DSinH|DSin|DSqRt|DTanH|DTan|DTime|EOShift|Epsilon|' |
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1372 | r'ErF|ErFC|ETime|Exit|Exp|Exponent|Extends_Type_Of|FDate|FGet|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1373 | r'FGetC|Float|Floor|Flush|FNum|FPutC|FPut|Fraction|FSeek|FStat|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1374 | r'FTell|GError|GetArg|Get_Command|Get_Command_Argument|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1375 | r'Get_Environment_Variable|GetCWD|GetEnv|GetGId|GetLog|GetPId|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1376 | r'GetUId|GMTime|HostNm|Huge|IAbs|IAChar|IAnd|IArgC|IBClr|IBits|' |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1377 | r'IBSet|IChar|IDate|IDiM|IDInt|IDNInt|IEOr|IErrNo|IFix|Imag|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1378 | r'ImagPart|Index|Int|IOr|IRand|IsaTty|IShft|IShftC|ISign|' |
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1379 | r'Iso_C_Binding|Is_Iostat_End|Is_Iostat_Eor|ITime|Kill|Kind|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1380 | r'LBound|Len|Len_Trim|LGe|LGt|Link|LLe|LLt|LnBlnk|Loc|Log|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1381 | r'Logical|Long|LShift|LStat|LTime|MatMul|Max|MaxExponent|MaxLoc|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1382 | r'MaxVal|MClock|Merge|Move_Alloc|Min|MinExponent|MinLoc|MinVal|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1383 | r'Mod|Modulo|MvBits|Nearest|New_Line|NInt|Not|Or|Pack|PError|' |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1384 | r'Precision|Present|Product|Radix|Rand|Random_Number|Random_Seed|' |
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1385 | r'Range|Real|RealPart|Rename|Repeat|Reshape|RRSpacing|RShift|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1386 | r'Same_Type_As|Scale|Scan|Second|Selected_Int_Kind|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1387 | r'Selected_Real_Kind|Set_Exponent|Shape|Short|Sign|Signal|SinH|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1388 | r'Sin|Sleep|Sngl|Spacing|Spread|SqRt|SRand|Stat|Sum|SymLnk|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1389 | r'System|System_Clock|Tan|TanH|Time|Tiny|Transfer|Transpose|Trim|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1390 | r'TtyNam|UBound|UMask|Unlink|Unpack|Verify|XOr|ZAbs|ZCos|ZExp|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
1391 | r'ZLog|ZSin|ZSqRt)\s*\b', |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1392 | Name.Builtin), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1393 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1394 | # Booleans |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1395 | (r'\.(true|false)\.', Name.Builtin), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1396 | # Comparing Operators |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1397 | (r'\.(eq|ne|lt|le|gt|ge|not|and|or|eqv|neqv)\.', Operator.Word), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1398 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1399 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1400 | 'strings': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1401 | (r'(?s)"(\\\\|\\[0-7]+|\\.|[^"\\])*"', String.Double), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1402 | (r"(?s)'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1403 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1404 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1405 | 'nums': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1406 | (r'\d+(?![.Ee])', Number.Integer), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1407 | (r'[+-]?\d*\.\d+([eE][-+]?\d+)?', Number.Float), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1408 | (r'[+-]?\d+\.\d*([eE][-+]?\d+)?', Number.Float), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1409 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1410 | } |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1411 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1412 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1413 | class GLShaderLexer(RegexLexer): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1414 | """ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1415 | GLSL (OpenGL Shader) lexer. |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1416 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1417 | *New in Pygments 1.1.* |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1418 | """ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1419 | name = 'GLSL' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1420 | aliases = ['glsl'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1421 | filenames = ['*.vert', '*.frag', '*.geo'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1422 | mimetypes = ['text/x-glslsrc'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1423 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1424 | tokens = { |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1425 | 'root': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1426 | (r'^#.*', Comment.Preproc), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1427 | (r'//.*', Comment.Single), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1428 | (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1429 | (r'\+|-|~|!=?|\*|/|%|<<|>>|<=?|>=?|==?|&&?|\^|\|\|?', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1430 | Operator), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1431 | (r'[?:]', Operator), # quick hack for ternary |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1432 | (r'\bdefined\b', Operator), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1433 | (r'[;{}(),\[\]]', Punctuation), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1434 | #FIXME when e is present, no decimal point needed |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1435 | (r'[+-]?\d*\.\d+([eE][-+]?\d+)?', Number.Float), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1436 | (r'[+-]?\d+\.\d*([eE][-+]?\d+)?', Number.Float), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1437 | (r'0[xX][0-9a-fA-F]*', Number.Hex), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1438 | (r'0[0-7]*', Number.Oct), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1439 | (r'[1-9][0-9]*', Number.Integer), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1440 | (r'\b(attribute|const|uniform|varying|centroid|break|continue|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1441 | r'do|for|while|if|else|in|out|inout|float|int|void|bool|true|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1442 | r'false|invariant|discard|return|mat[234]|mat[234]x[234]|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1443 | r'vec[234]|[ib]vec[234]|sampler[123]D|samplerCube|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1444 | r'sampler[12]DShadow|struct)\b', Keyword), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1445 | (r'\b(asm|class|union|enum|typedef|template|this|packed|goto|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1446 | r'switch|default|inline|noinline|volatile|public|static|extern|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1447 | r'external|interface|long|short|double|half|fixed|unsigned|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1448 | r'lowp|mediump|highp|precision|input|output|hvec[234]|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1449 | r'[df]vec[234]|sampler[23]DRect|sampler2DRectShadow|sizeof|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1450 | r'cast|namespace|using)\b', Keyword), #future use |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1451 | (r'[a-zA-Z_][a-zA-Z_0-9]*', Name), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1452 | (r'\.', Punctuation), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1453 | (r'\s+', Text), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1454 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1455 | } |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1456 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1457 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1458 | class PrologLexer(RegexLexer): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1459 | """ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1460 | Lexer for Prolog files. |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1461 | """ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1462 | name = 'Prolog' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1463 | aliases = ['prolog'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1464 | filenames = ['*.prolog', '*.pro', '*.pl'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1465 | mimetypes = ['text/x-prolog'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1466 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1467 | flags = re.UNICODE |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1468 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1469 | tokens = { |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1470 | 'root': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1471 | (r'^#.*', Comment.Single), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1472 | (r'/\*', Comment.Multiline, 'nested-comment'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1473 | (r'%.*', Comment.Single), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1474 | (r'[0-9]+', Number), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1475 | (r'[\[\](){}|.,;!]', Punctuation), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1476 | (r':-|-->', Punctuation), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1477 | (r'"(?:\\x[0-9a-fA-F]+\\|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1478 | r'\\[0-7]+\\|\\[\w\W]|[^"])*"', String.Double), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1479 | (r"'(?:''|[^'])*'", String.Atom), # quoted atom |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1480 | # Needs to not be followed by an atom. |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1481 | #(r'=(?=\s|[a-zA-Z\[])', Operator), |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1482 | (r'is\b', Operator), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1483 | (r'(<|>|=<|>=|==|=:=|=|/|//|\*|\+|-)(?=\s|[a-zA-Z0-9\[])', |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1484 | Operator), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1485 | (r'(mod|div|not)\b', Operator), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1486 | (r'_', Keyword), # The don't-care variable |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1487 | (r'([a-z]+)(:)', bygroups(Name.Namespace, Punctuation)), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1488 | ('([a-z\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef]' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1489 | '[a-zA-Z0-9_$\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef]*)' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1490 | '(\\s*)(:-|-->)', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1491 | bygroups(Name.Function, Text, Operator)), # function defn |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1492 | ('([a-z\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef]' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1493 | '[a-zA-Z0-9_$\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef]*)' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1494 | '(\\s*)(\\()', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1495 | bygroups(Name.Function, Text, Punctuation)), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1496 | ('[a-z\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef]' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1497 | '[a-zA-Z0-9_$\u00c0-\u1fff\u3040-\ud7ff\ue000-\uffef]*', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1498 | String.Atom), # atom, characters |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1499 | # This one includes ! |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1500 | ('[#&*+\\-./:<=>?@\\\\^~\u00a1-\u00bf\u2010-\u303f]+', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1501 | String.Atom), # atom, graphics |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1502 | (r'[A-Z_][A-Za-z0-9_]*', Name.Variable), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1503 | ('\\s+|[\u2000-\u200f\ufff0-\ufffe\uffef]', Text), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1504 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1505 | 'nested-comment': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1506 | (r'\*/', Comment.Multiline, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1507 | (r'/\*', Comment.Multiline, '#push'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1508 | (r'[^*/]+', Comment.Multiline), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1509 | (r'[*/]', Comment.Multiline), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1510 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1511 | } |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1512 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1513 | def analyse_text(text): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1514 | return ':-' in text |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1515 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1516 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1517 | class CythonLexer(RegexLexer): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1518 | """ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1519 | For Pyrex and `Cython <http://cython.org>`_ source code. |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1520 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1521 | *New in Pygments 1.1.* |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1522 | """ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1523 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1524 | name = 'Cython' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1525 | aliases = ['cython', 'pyx'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1526 | filenames = ['*.pyx', '*.pxd', '*.pxi'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1527 | mimetypes = ['text/x-cython', 'application/x-cython'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1528 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1529 | tokens = { |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1530 | 'root': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1531 | (r'\n', Text), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1532 | (r'^(\s*)("""(?:.|\n)*?""")', bygroups(Text, String.Doc)), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1533 | (r"^(\s*)('''(?:.|\n)*?''')", bygroups(Text, String.Doc)), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1534 | (r'[^\S\n]+', Text), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1535 | (r'#.*$', Comment), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1536 | (r'[]{}:(),;[]', Punctuation), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1537 | (r'\\\n', Text), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1538 | (r'\\', Text), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1539 | (r'(in|is|and|or|not)\b', Operator.Word), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1540 | (r'(<)([a-zA-Z0-9.?]+)(>)', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1541 | bygroups(Punctuation, Keyword.Type, Punctuation)), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1542 | (r'!=|==|<<|>>|[-~+/*%=<>&^|.?]', Operator), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1543 | (r'(from)(\d+)(<=)(\s+)(<)(\d+)(:)', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1544 | bygroups(Keyword, Number.Integer, Operator, Name, Operator, |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1545 | Name, Punctuation)), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1546 | include('keywords'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1547 | (r'(def|property)(\s+)', bygroups(Keyword, Text), 'funcname'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1548 | (r'(cp?def)(\s+)', bygroups(Keyword, Text), 'cdef'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1549 | (r'(class|struct)(\s+)', bygroups(Keyword, Text), 'classname'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1550 | (r'(from)(\s+)', bygroups(Keyword, Text), 'fromimport'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1551 | (r'(c?import)(\s+)', bygroups(Keyword, Text), 'import'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1552 | include('builtins'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1553 | include('backtick'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1554 | ('(?:[rR]|[uU][rR]|[rR][uU])"""', String, 'tdqs'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1555 | ("(?:[rR]|[uU][rR]|[rR][uU])'''", String, 'tsqs'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1556 | ('(?:[rR]|[uU][rR]|[rR][uU])"', String, 'dqs'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1557 | ("(?:[rR]|[uU][rR]|[rR][uU])'", String, 'sqs'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1558 | ('[uU]?"""', String, combined('stringescape', 'tdqs')), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1559 | ("[uU]?'''", String, combined('stringescape', 'tsqs')), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1560 | ('[uU]?"', String, combined('stringescape', 'dqs')), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1561 | ("[uU]?'", String, combined('stringescape', 'sqs')), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1562 | include('name'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1563 | include('numbers'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1564 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1565 | 'keywords': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1566 | (r'(assert|break|by|continue|ctypedef|del|elif|else|except\??|exec|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1567 | r'finally|for|gil|global|if|include|lambda|nogil|pass|print|raise|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1568 | r'return|try|while|yield|as|with)\b', Keyword), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1569 | (r'(DEF|IF|ELIF|ELSE)\b', Comment.Preproc), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1570 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1571 | 'builtins': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1572 | (r'(?<!\.)(__import__|abs|all|any|apply|basestring|bin|bool|buffer|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1573 | r'bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1574 | r'complex|delattr|dict|dir|divmod|enumerate|eval|execfile|exit|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1575 | r'file|filter|float|frozenset|getattr|globals|hasattr|hash|hex|id|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1576 | r'input|int|intern|isinstance|issubclass|iter|len|list|locals|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1577 | r'long|map|max|min|next|object|oct|open|ord|pow|property|range|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1578 | r'raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1579 | r'sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1580 | r'vars|xrange|zip)\b', Name.Builtin), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1581 | (r'(?<!\.)(self|None|Ellipsis|NotImplemented|False|True|NULL' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1582 | r')\b', Name.Builtin.Pseudo), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1583 | (r'(?<!\.)(ArithmeticError|AssertionError|AttributeError|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1584 | r'BaseException|DeprecationWarning|EOFError|EnvironmentError|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1585 | r'Exception|FloatingPointError|FutureWarning|GeneratorExit|IOError|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1586 | r'ImportError|ImportWarning|IndentationError|IndexError|KeyError|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1587 | r'KeyboardInterrupt|LookupError|MemoryError|NameError|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1588 | r'NotImplemented|NotImplementedError|OSError|OverflowError|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1589 | r'OverflowWarning|PendingDeprecationWarning|ReferenceError|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1590 | r'RuntimeError|RuntimeWarning|StandardError|StopIteration|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1591 | r'SyntaxError|SyntaxWarning|SystemError|SystemExit|TabError|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1592 | r'TypeError|UnboundLocalError|UnicodeDecodeError|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1593 | r'UnicodeEncodeError|UnicodeError|UnicodeTranslateError|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1594 | r'UnicodeWarning|UserWarning|ValueError|Warning|ZeroDivisionError' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1595 | r')\b', Name.Exception), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1596 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1597 | 'numbers': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1598 | (r'(\d+\.?\d*|\d*\.\d+)([eE][+-]?[0-9]+)?', Number.Float), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1599 | (r'0\d+', Number.Oct), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1600 | (r'0[xX][a-fA-F0-9]+', Number.Hex), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1601 | (r'\d+L', Number.Integer.Long), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1602 | (r'\d+', Number.Integer) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1603 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1604 | 'backtick': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1605 | ('`.*?`', String.Backtick), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1606 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1607 | 'name': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1608 | (r'@[a-zA-Z0-9_]+', Name.Decorator), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1609 | ('[a-zA-Z_][a-zA-Z0-9_]*', Name), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1610 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1611 | 'funcname': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1612 | ('[a-zA-Z_][a-zA-Z0-9_]*', Name.Function, '#pop') |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1613 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1614 | 'cdef': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1615 | (r'(public|readonly|extern|api|inline)\b', Keyword.Reserved), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1616 | (r'(struct|enum|union|class)\b', Keyword), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1617 | (r'([a-zA-Z_][a-zA-Z0-9_]*)(\s*)(?=[(:#=]|$)', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1618 | bygroups(Name.Function, Text), '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1619 | (r'([a-zA-Z_][a-zA-Z0-9_]*)(\s*)(,)', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1620 | bygroups(Name.Function, Text, Punctuation)), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1621 | (r'from\b', Keyword, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1622 | (r'as\b', Keyword), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1623 | (r':', Punctuation, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1624 | (r'(?=["\'])', Text, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1625 | (r'[a-zA-Z_][a-zA-Z0-9_]*', Keyword.Type), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1626 | (r'.', Text), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1627 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1628 | 'classname': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1629 | ('[a-zA-Z_][a-zA-Z0-9_]*', Name.Class, '#pop') |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1630 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1631 | 'import': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1632 | (r'(\s+)(as)(\s+)', bygroups(Text, Keyword, Text)), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1633 | (r'[a-zA-Z_][a-zA-Z0-9_.]*', Name.Namespace), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1634 | (r'(\s*)(,)(\s*)', bygroups(Text, Operator, Text)), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1635 | (r'', Text, '#pop') # all else: go back |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1636 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1637 | 'fromimport': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1638 | (r'(\s+)(c?import)\b', bygroups(Text, Keyword), '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1639 | (r'[a-zA-Z_.][a-zA-Z0-9_.]*', Name.Namespace), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1640 | # ``cdef foo from "header"``, or ``for foo from 0 < i < 10`` |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1641 | (r'', Text, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1642 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1643 | 'stringescape': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1644 | (r'\\([\\abfnrtv"\']|\n|N{.*?}|u[a-fA-F0-9]{4}|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1645 | r'U[a-fA-F0-9]{8}|x[a-fA-F0-9]{2}|[0-7]{1,3})', String.Escape) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1646 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1647 | 'strings': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1648 | (r'%(\([a-zA-Z0-9]+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1649 | '[hlL]?[diouxXeEfFgGcrs%]', String.Interpol), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1650 | (r'[^\\\'"%\n]+', String), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1651 | # quotes, percents and backslashes must be parsed one at a time |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1652 | (r'[\'"\\]', String), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1653 | # unhandled string formatting sign |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1654 | (r'%', String) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1655 | # newlines are an error (use "nl" state) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1656 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1657 | 'nl': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1658 | (r'\n', String) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1659 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1660 | 'dqs': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1661 | (r'"', String, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1662 | (r'\\\\|\\"|\\\n', String.Escape), # included here again for raw strings |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1663 | include('strings') |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1664 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1665 | 'sqs': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1666 | (r"'", String, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1667 | (r"\\\\|\\'|\\\n", String.Escape), # included here again for raw strings |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1668 | include('strings') |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1669 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1670 | 'tdqs': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1671 | (r'"""', String, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1672 | include('strings'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1673 | include('nl') |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1674 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1675 | 'tsqs': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1676 | (r"'''", String, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1677 | include('strings'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1678 | include('nl') |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1679 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1680 | } |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1681 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1682 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1683 | class ValaLexer(RegexLexer): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1684 | """ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1685 | For Vala source code with preprocessor directives. |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1686 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1687 | *New in Pygments 1.1.* |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1688 | """ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1689 | name = 'Vala' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1690 | aliases = ['vala', 'vapi'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1691 | filenames = ['*.vala', '*.vapi'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1692 | mimetypes = ['text/x-vala'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1693 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1694 | tokens = { |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1695 | 'whitespace': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1696 | (r'^\s*#if\s+0', Comment.Preproc, 'if0'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1697 | (r'\n', Text), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1698 | (r'\s+', Text), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1699 | (r'\\\n', Text), # line continuation |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1700 | (r'//(\n|(.|\n)*?[^\\]\n)', Comment.Single), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1701 | (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1702 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1703 | 'statements': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1704 | (r'L?"', String, 'string'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1705 | (r"L?'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])'", |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1706 | String.Char), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1707 | (r'(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?', Number.Float), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1708 | (r'(\d+\.\d*|\.\d+|\d+[fF])[fF]?', Number.Float), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1709 | (r'0x[0-9a-fA-F]+[Ll]?', Number.Hex), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1710 | (r'0[0-7]+[Ll]?', Number.Oct), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1711 | (r'\d+[Ll]?', Number.Integer), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1712 | (r'[~!%^&*+=|?:<>/-]', Operator), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1713 | (r'(\[)(Compact|Immutable|(?:Boolean|Simple)Type)(\])', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1714 | bygroups(Punctuation, Name.Decorator, Punctuation)), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1715 | # TODO: "correctly" parse complex code attributes |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1716 | (r'(\[)(CCode|(?:Integer|Floating)Type)', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1717 | bygroups(Punctuation, Name.Decorator)), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1718 | (r'[()\[\],.]', Punctuation), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1719 | (r'(as|base|break|case|catch|construct|continue|default|delete|do|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1720 | r'else|enum|finally|for|foreach|get|if|in|is|lock|new|out|params|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1721 | r'return|set|sizeof|switch|this|throw|try|typeof|while|yield)\b', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1722 | Keyword), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1723 | (r'(abstract|const|delegate|dynamic|ensures|extern|inline|internal|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1724 | r'override|owned|private|protected|public|ref|requires|signal|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1725 | r'static|throws|unowned|var|virtual|volatile|weak|yields)\b', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1726 | Keyword.Declaration), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1727 | (r'(namespace|using)(\s+)', bygroups(Keyword.Namespace, Text), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1728 | 'namespace'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1729 | (r'(class|errordomain|interface|struct)(\s+)', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1730 | bygroups(Keyword.Declaration, Text), 'class'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1731 | (r'(\.)([a-zA-Z_][a-zA-Z0-9_]*)', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1732 | bygroups(Operator, Name.Attribute)), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1733 | # void is an actual keyword, others are in glib-2.0.vapi |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1734 | (r'(void|bool|char|double|float|int|int8|int16|int32|int64|long|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1735 | r'short|size_t|ssize_t|string|time_t|uchar|uint|uint8|uint16|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1736 | r'uint32|uint64|ulong|unichar|ushort)\b', Keyword.Type), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1737 | (r'(true|false|null)\b', Name.Builtin), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1738 | ('[a-zA-Z_][a-zA-Z0-9_]*', Name), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1739 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1740 | 'root': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1741 | include('whitespace'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1742 | ('', Text, 'statement'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1743 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1744 | 'statement' : [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1745 | include('whitespace'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1746 | include('statements'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1747 | ('[{}]', Punctuation), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1748 | (';', Punctuation, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1749 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1750 | 'string': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1751 | (r'"', String, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1752 | (r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})', String.Escape), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1753 | (r'[^\\"\n]+', String), # all other characters |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1754 | (r'\\\n', String), # line continuation |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1755 | (r'\\', String), # stray backslash |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1756 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1757 | 'if0': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1758 | (r'^\s*#if.*?(?<!\\)\n', Comment.Preproc, '#push'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1759 | (r'^\s*#el(?:se|if).*\n', Comment.Preproc, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1760 | (r'^\s*#endif.*?(?<!\\)\n', Comment.Preproc, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1761 | (r'.*?\n', Comment), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1762 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1763 | 'class': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1764 | (r'[a-zA-Z_][a-zA-Z0-9_]*', Name.Class, '#pop') |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1765 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1766 | 'namespace': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1767 | (r'[a-zA-Z_][a-zA-Z0-9_.]*', Name.Namespace, '#pop') |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1768 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1769 | } |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1770 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1771 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1772 | class OocLexer(RegexLexer): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1773 | """ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1774 | For `Ooc <http://ooc-lang.org/>`_ source code |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1775 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1776 | *New in Pygments 1.2.* |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1777 | """ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1778 | name = 'Ooc' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1779 | aliases = ['ooc'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1780 | filenames = ['*.ooc'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1781 | mimetypes = ['text/x-ooc'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1782 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1783 | tokens = { |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1784 | 'root': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1785 | (r'\b(class|interface|implement|abstract|extends|from|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1786 | r'this|super|new|const|final|static|import|use|extern|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1787 | r'inline|proto|break|continue|fallthrough|operator|if|else|for|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1788 | r'while|do|switch|case|as|in|version|return|true|false|null)\b', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1789 | Keyword), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1790 | (r'include\b', Keyword, 'include'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1791 | (r'(cover)([ \t]+)(from)([ \t]+)([a-zA-Z0-9_]+[*@]?)', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1792 | bygroups(Keyword, Text, Keyword, Text, Name.Class)), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1793 | (r'(func)((?:[ \t]|\\\n)+)(~[a-z_][a-zA-Z0-9_]*)', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1794 | bygroups(Keyword, Text, Name.Function)), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1795 | (r'\bfunc\b', Keyword), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1796 | # Note: %= and ^= not listed on http://ooc-lang.org/syntax |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1797 | (r'//.*', Comment), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1798 | (r'(?s)/\*.*?\*/', Comment.Multiline), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1799 | (r'(==?|\+=?|-[=>]?|\*=?|/=?|:=|!=?|%=?|\?|>{1,3}=?|<{1,3}=?|\.\.|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1800 | r'&&?|\|\|?|\^=?)', Operator), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1801 | (r'(\.)([ \t]*)([a-z]\w*)', bygroups(Operator, Text, |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1802 | Name.Function)), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1803 | (r'[A-Z][A-Z0-9_]+', Name.Constant), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1804 | (r'[A-Z][a-zA-Z0-9_]*([@*]|\[[ \t]*\])?', Name.Class), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1805 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1806 | (r'([a-z][a-zA-Z0-9_]*(?:~[a-z][a-zA-Z0-9_]*)?)((?:[ \t]|\\\n)*)(?=\()', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1807 | bygroups(Name.Function, Text)), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1808 | (r'[a-z][a-zA-Z0-9_]*', Name.Variable), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1809 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1810 | # : introduces types |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1811 | (r'[:(){}\[\];,]', Punctuation), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1812 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1813 | (r'0x[0-9a-fA-F]+', Number.Hex), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1814 | (r'0c[0-9]+', Number.Oct), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1815 | (r'0b[01]+', Number.Binary), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1816 | (r'[0-9_]\.[0-9_]*(?!\.)', Number.Float), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1817 | (r'[0-9_]+', Number.Decimal), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1818 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1819 | (r'"(?:\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\"])*"', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1820 | String.Double), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1821 | (r"'(?:\\.|\\[0-9]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])'", |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1822 | String.Char), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1823 | (r'@', Punctuation), # pointer dereference |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1824 | (r'\.', Punctuation), # imports or chain operator |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1825 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1826 | (r'\\[ \t\n]', Text), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1827 | (r'[ \t]+', Text), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1828 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1829 | 'include': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1830 | (r'[\w/]+', Name), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1831 | (r',', Punctuation), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1832 | (r'[ \t]', Text), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1833 | (r'[;\n]', Text, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1834 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1835 | } |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1836 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1837 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1838 | class GoLexer(RegexLexer): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1839 | """ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1840 | For `Go <http://golang.org>`_ source. |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1841 | """ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1842 | name = 'Go' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1843 | filenames = ['*.go'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1844 | aliases = ['go'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1845 | mimetypes = ['text/x-gosrc'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1846 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1847 | tokens = { |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1848 | 'root': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1849 | (r'\n', Text), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1850 | (r'\s+', Text), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1851 | (r'\\\n', Text), # line continuations |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1852 | (r'//(.*?)\n', Comment.Single), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1853 | (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline), |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1854 | (r'(import|package)\b', Keyword.Namespace), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1855 | (r'(var|func|struct|map|chan|type|interface|const)\b', Keyword.Declaration), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1856 | (r'(break|default|select|case|defer|go' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1857 | r'|else|goto|switch|fallthrough|if|range' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1858 | r'|continue|for|return)\b', Keyword), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1859 | (r'(true|false|iota|nil)\b', Keyword.Constant), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1860 | # It seems the builtin types aren't actually keywords, but |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1861 | # can be used as functions. So we need two declarations. |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1862 | (r'(uint|uint8|uint16|uint32|uint64' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1863 | r'|int|int8|int16|int32|int64' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1864 | r'|float|float32|float64' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1865 | r'|complex64|complex128|byte|rune' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1866 | r'|string|bool|error|uintptr' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1867 | r'|print|println|panic|recover|close|complex|real|imag' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1868 | r'|len|cap|append|copy|delete|new|make)\b(\()', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1869 | bygroups(Name.Builtin, Punctuation)), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1870 | (r'(uint|uint8|uint16|uint32|uint64' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1871 | r'|int|int8|int16|int32|int64' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1872 | r'|float|float32|float64' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1873 | r'|complex64|complex128|byte|rune' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1874 | r'|string|bool|error|uintptr)\b', Keyword.Type), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1875 | # imaginary_lit |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1876 | (r'\d+i', Number), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1877 | (r'\d+\.\d*([Ee][-+]\d+)?i', Number), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1878 | (r'\.\d+([Ee][-+]\d+)?i', Number), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1879 | (r'\d+[Ee][-+]\d+i', Number), |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1880 | # float_lit |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1881 | (r'\d+(\.\d+[eE][+\-]?\d+|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1882 | r'\.\d*|[eE][+\-]?\d+)', Number.Float), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1883 | (r'\.\d+([eE][+\-]?\d+)?', Number.Float), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1884 | # int_lit |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1885 | # -- octal_lit |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1886 | (r'0[0-7]+', Number.Oct), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1887 | # -- hex_lit |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1888 | (r'0[xX][0-9a-fA-F]+', Number.Hex), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1889 | # -- decimal_lit |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1890 | (r'(0|[1-9][0-9]*)', Number.Integer), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1891 | # char_lit |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1892 | (r"""'(\\['"\\abfnrtv]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}""" |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1893 | r"""|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|[^\\])'""", |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1894 | String.Char |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1895 | ), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1896 | # StringLiteral |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1897 | # -- raw_string_lit |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1898 | (r'`[^`]*`', String), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1899 | # -- interpreted_string_lit |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1900 | (r'"(\\\\|\\"|[^"])*"', String), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1901 | # Tokens |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1902 | (r'(<<=|>>=|<<|>>|<=|>=|&\^=|&\^|\+=|-=|\*=|/=|%=|&=|\|=|&&|\|\|' |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1903 | r'|<-|\+\+|--|==|!=|:=|\.\.\.|[+\-*/%&])', Operator), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1904 | (r'[|^<>=!()\[\]{}.,;:]', Punctuation), |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1905 | # identifier |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
1906 | (r'[a-zA-Z_]\w*', Name.Other), |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1907 | ] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1908 | } |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1909 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1910 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1911 | class FelixLexer(RegexLexer): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1912 | """ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1913 | For `Felix <http://www.felix-lang.org>`_ source code. |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1914 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1915 | *New in Pygments 1.2.* |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1916 | """ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1917 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1918 | name = 'Felix' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1919 | aliases = ['felix', 'flx'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1920 | filenames = ['*.flx', '*.flxh'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1921 | mimetypes = ['text/x-felix'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1922 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1923 | preproc = [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1924 | 'elif', 'else', 'endif', 'if', 'ifdef', 'ifndef', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1925 | ] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1926 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1927 | keywords = [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1928 | '_', '_deref', 'all', 'as', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1929 | 'assert', 'attempt', 'call', 'callback', 'case', 'caseno', 'cclass', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1930 | 'code', 'compound', 'ctypes', 'do', 'done', 'downto', 'elif', 'else', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1931 | 'endattempt', 'endcase', 'endif', 'endmatch', 'enum', 'except', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1932 | 'exceptions', 'expect', 'finally', 'for', 'forall', 'forget', 'fork', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1933 | 'functor', 'goto', 'ident', 'if', 'incomplete', 'inherit', 'instance', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1934 | 'interface', 'jump', 'lambda', 'loop', 'match', 'module', 'namespace', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1935 | 'new', 'noexpand', 'nonterm', 'obj', 'of', 'open', 'parse', 'raise', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1936 | 'regexp', 'reglex', 'regmatch', 'rename', 'return', 'the', 'then', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1937 | 'to', 'type', 'typecase', 'typedef', 'typematch', 'typeof', 'upto', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1938 | 'when', 'whilst', 'with', 'yield', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1939 | ] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1940 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1941 | keyword_directives = [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1942 | '_gc_pointer', '_gc_type', 'body', 'comment', 'const', 'export', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1943 | 'header', 'inline', 'lval', 'macro', 'noinline', 'noreturn', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1944 | 'package', 'private', 'pod', 'property', 'public', 'publish', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1945 | 'requires', 'todo', 'virtual', 'use', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1946 | ] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1947 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1948 | keyword_declarations = [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1949 | 'def', 'let', 'ref', 'val', 'var', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1950 | ] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1951 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1952 | keyword_types = [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1953 | 'unit', 'void', 'any', 'bool', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1954 | 'byte', 'offset', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1955 | 'address', 'caddress', 'cvaddress', 'vaddress', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1956 | 'tiny', 'short', 'int', 'long', 'vlong', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1957 | 'utiny', 'ushort', 'vshort', 'uint', 'ulong', 'uvlong', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1958 | 'int8', 'int16', 'int32', 'int64', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1959 | 'uint8', 'uint16', 'uint32', 'uint64', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1960 | 'float', 'double', 'ldouble', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1961 | 'complex', 'dcomplex', 'lcomplex', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1962 | 'imaginary', 'dimaginary', 'limaginary', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1963 | 'char', 'wchar', 'uchar', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1964 | 'charp', 'charcp', 'ucharp', 'ucharcp', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1965 | 'string', 'wstring', 'ustring', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1966 | 'cont', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1967 | 'array', 'varray', 'list', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1968 | 'lvalue', 'opt', 'slice', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1969 | ] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1970 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1971 | keyword_constants = [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1972 | 'false', 'true', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1973 | ] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1974 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1975 | operator_words = [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1976 | 'and', 'not', 'in', 'is', 'isin', 'or', 'xor', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1977 | ] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1978 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1979 | name_builtins = [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1980 | '_svc', 'while', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1981 | ] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1982 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1983 | name_pseudo = [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1984 | 'root', 'self', 'this', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1985 | ] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1986 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1987 | decimal_suffixes = '([tTsSiIlLvV]|ll|LL|([iIuU])(8|16|32|64))?' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1988 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1989 | tokens = { |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1990 | 'root': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1991 | include('whitespace'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1992 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1993 | # Keywords |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1994 | (r'(axiom|ctor|fun|gen|proc|reduce|union)\b', Keyword, |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1995 | 'funcname'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1996 | (r'(class|cclass|cstruct|obj|struct)\b', Keyword, 'classname'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1997 | (r'(instance|module|typeclass)\b', Keyword, 'modulename'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1998 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
1999 | (r'(%s)\b' % '|'.join(keywords), Keyword), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2000 | (r'(%s)\b' % '|'.join(keyword_directives), Name.Decorator), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2001 | (r'(%s)\b' % '|'.join(keyword_declarations), Keyword.Declaration), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2002 | (r'(%s)\b' % '|'.join(keyword_types), Keyword.Type), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2003 | (r'(%s)\b' % '|'.join(keyword_constants), Keyword.Constant), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2004 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2005 | # Operators |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2006 | include('operators'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2007 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2008 | # Float Literal |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2009 | # -- Hex Float |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2010 | (r'0[xX]([0-9a-fA-F_]*\.[0-9a-fA-F_]+|[0-9a-fA-F_]+)' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2011 | r'[pP][+\-]?[0-9_]+[lLfFdD]?', Number.Float), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2012 | # -- DecimalFloat |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2013 | (r'[0-9_]+(\.[0-9_]+[eE][+\-]?[0-9_]+|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2014 | r'\.[0-9_]*|[eE][+\-]?[0-9_]+)[lLfFdD]?', Number.Float), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2015 | (r'\.(0|[1-9][0-9_]*)([eE][+\-]?[0-9_]+)?[lLfFdD]?', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2016 | Number.Float), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2017 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2018 | # IntegerLiteral |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2019 | # -- Binary |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2020 | (r'0[Bb][01_]+%s' % decimal_suffixes, Number), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2021 | # -- Octal |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2022 | (r'0[0-7_]+%s' % decimal_suffixes, Number.Oct), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2023 | # -- Hexadecimal |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2024 | (r'0[xX][0-9a-fA-F_]+%s' % decimal_suffixes, Number.Hex), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2025 | # -- Decimal |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2026 | (r'(0|[1-9][0-9_]*)%s' % decimal_suffixes, Number.Integer), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2027 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2028 | # Strings |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2029 | ('([rR][cC]?|[cC][rR])"""', String, 'tdqs'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2030 | ("([rR][cC]?|[cC][rR])'''", String, 'tsqs'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2031 | ('([rR][cC]?|[cC][rR])"', String, 'dqs'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2032 | ("([rR][cC]?|[cC][rR])'", String, 'sqs'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2033 | ('[cCfFqQwWuU]?"""', String, combined('stringescape', 'tdqs')), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2034 | ("[cCfFqQwWuU]?'''", String, combined('stringescape', 'tsqs')), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2035 | ('[cCfFqQwWuU]?"', String, combined('stringescape', 'dqs')), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2036 | ("[cCfFqQwWuU]?'", String, combined('stringescape', 'sqs')), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2037 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2038 | # Punctuation |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2039 | (r'[\[\]{}:(),;?]', Punctuation), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2040 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2041 | # Labels |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2042 | (r'[a-zA-Z_]\w*:>', Name.Label), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2043 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2044 | # Identifiers |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2045 | (r'(%s)\b' % '|'.join(name_builtins), Name.Builtin), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2046 | (r'(%s)\b' % '|'.join(name_pseudo), Name.Builtin.Pseudo), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2047 | (r'[a-zA-Z_]\w*', Name), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2048 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2049 | 'whitespace': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2050 | (r'\n', Text), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2051 | (r'\s+', Text), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2052 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2053 | include('comment'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2054 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2055 | # Preprocessor |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2056 | (r'#\s*if\s+0', Comment.Preproc, 'if0'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2057 | (r'#', Comment.Preproc, 'macro'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2058 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2059 | 'operators': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2060 | (r'(%s)\b' % '|'.join(operator_words), Operator.Word), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2061 | (r'!=|==|<<|>>|\|\||&&|[-~+/*%=<>&^|.$]', Operator), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2062 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2063 | 'comment': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2064 | (r'//(.*?)\n', Comment.Single), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2065 | (r'/[*]', Comment.Multiline, 'comment2'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2066 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2067 | 'comment2': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2068 | (r'[^\/*]', Comment.Multiline), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2069 | (r'/[*]', Comment.Multiline, '#push'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2070 | (r'[*]/', Comment.Multiline, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2071 | (r'[\/*]', Comment.Multiline), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2072 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2073 | 'if0': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2074 | (r'^\s*#if.*?(?<!\\)\n', Comment, '#push'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2075 | (r'^\s*#endif.*?(?<!\\)\n', Comment, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2076 | (r'.*?\n', Comment), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2077 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2078 | 'macro': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2079 | include('comment'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2080 | (r'(import|include)(\s+)(<[^>]*?>)', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2081 | bygroups(Comment.Preproc, Text, String), '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2082 | (r'(import|include)(\s+)("[^"]*?")', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2083 | bygroups(Comment.Preproc, Text, String), '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2084 | (r"(import|include)(\s+)('[^']*?')", |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2085 | bygroups(Comment.Preproc, Text, String), '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2086 | (r'[^/\n]+', Comment.Preproc), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2087 | ##(r'/[*](.|\n)*?[*]/', Comment), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2088 | ##(r'//.*?\n', Comment, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2089 | (r'/', Comment.Preproc), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2090 | (r'(?<=\\)\n', Comment.Preproc), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2091 | (r'\n', Comment.Preproc, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2092 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2093 | 'funcname': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2094 | include('whitespace'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2095 | (r'[a-zA-Z_]\w*', Name.Function, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2096 | # anonymous functions |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2097 | (r'(?=\()', Text, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2098 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2099 | 'classname': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2100 | include('whitespace'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2101 | (r'[a-zA-Z_]\w*', Name.Class, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2102 | # anonymous classes |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2103 | (r'(?=\{)', Text, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2104 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2105 | 'modulename': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2106 | include('whitespace'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2107 | (r'\[', Punctuation, ('modulename2', 'tvarlist')), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2108 | (r'', Error, 'modulename2'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2109 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2110 | 'modulename2': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2111 | include('whitespace'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2112 | (r'([a-zA-Z_]\w*)', Name.Namespace, '#pop:2'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2113 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2114 | 'tvarlist': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2115 | include('whitespace'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2116 | include('operators'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2117 | (r'\[', Punctuation, '#push'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2118 | (r'\]', Punctuation, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2119 | (r',', Punctuation), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2120 | (r'(with|where)\b', Keyword), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2121 | (r'[a-zA-Z_]\w*', Name), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2122 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2123 | 'stringescape': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2124 | (r'\\([\\abfnrtv"\']|\n|N{.*?}|u[a-fA-F0-9]{4}|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2125 | r'U[a-fA-F0-9]{8}|x[a-fA-F0-9]{2}|[0-7]{1,3})', String.Escape) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2126 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2127 | 'strings': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2128 | (r'%(\([a-zA-Z0-9]+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2129 | '[hlL]?[diouxXeEfFgGcrs%]', String.Interpol), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2130 | (r'[^\\\'"%\n]+', String), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2131 | # quotes, percents and backslashes must be parsed one at a time |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2132 | (r'[\'"\\]', String), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2133 | # unhandled string formatting sign |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2134 | (r'%', String) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2135 | # newlines are an error (use "nl" state) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2136 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2137 | 'nl': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2138 | (r'\n', String) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2139 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2140 | 'dqs': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2141 | (r'"', String, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2142 | # included here again for raw strings |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2143 | (r'\\\\|\\"|\\\n', String.Escape), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2144 | include('strings') |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2145 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2146 | 'sqs': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2147 | (r"'", String, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2148 | # included here again for raw strings |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2149 | (r"\\\\|\\'|\\\n", String.Escape), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2150 | include('strings') |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2151 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2152 | 'tdqs': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2153 | (r'"""', String, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2154 | include('strings'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2155 | include('nl') |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2156 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2157 | 'tsqs': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2158 | (r"'''", String, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2159 | include('strings'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2160 | include('nl') |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2161 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2162 | } |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2163 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2164 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2165 | class AdaLexer(RegexLexer): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2166 | """ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2167 | For Ada source code. |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2168 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2169 | *New in Pygments 1.3.* |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2170 | """ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2171 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2172 | name = 'Ada' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2173 | aliases = ['ada', 'ada95' 'ada2005'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2174 | filenames = ['*.adb', '*.ads', '*.ada'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2175 | mimetypes = ['text/x-ada'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2176 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2177 | flags = re.MULTILINE | re.I # Ignore case |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2178 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2179 | tokens = { |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2180 | 'root': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2181 | (r'[^\S\n]+', Text), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2182 | (r'--.*?\n', Comment.Single), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2183 | (r'[^\S\n]+', Text), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2184 | (r'function|procedure|entry', Keyword.Declaration, 'subprogram'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2185 | (r'(subtype|type)(\s+)([a-z0-9_]+)', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2186 | bygroups(Keyword.Declaration, Text, Keyword.Type), 'type_def'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2187 | (r'task|protected', Keyword.Declaration), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2188 | (r'(subtype)(\s+)', bygroups(Keyword.Declaration, Text)), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2189 | (r'(end)(\s+)', bygroups(Keyword.Reserved, Text), 'end'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2190 | (r'(pragma)(\s+)([a-zA-Z0-9_]+)', bygroups(Keyword.Reserved, Text, |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2191 | Comment.Preproc)), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2192 | (r'(true|false|null)\b', Keyword.Constant), |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2193 | (r'(Address|Byte|Boolean|Character|Controlled|Count|Cursor|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2194 | r'Duration|File_Mode|File_Type|Float|Generator|Integer|Long_Float|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2195 | r'Long_Integer|Long_Long_Float|Long_Long_Integer|Natural|Positive|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2196 | r'Reference_Type|Short_Float|Short_Integer|Short_Short_Float|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2197 | r'Short_Short_Integer|String|Wide_Character|Wide_String)\b', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2198 | Keyword.Type), |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2199 | (r'(and(\s+then)?|in|mod|not|or(\s+else)|rem)\b', Operator.Word), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2200 | (r'generic|private', Keyword.Declaration), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2201 | (r'package', Keyword.Declaration, 'package'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2202 | (r'array\b', Keyword.Reserved, 'array_def'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2203 | (r'(with|use)(\s+)', bygroups(Keyword.Namespace, Text), 'import'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2204 | (r'([a-z0-9_]+)(\s*)(:)(\s*)(constant)', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2205 | bygroups(Name.Constant, Text, Punctuation, Text, |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2206 | Keyword.Reserved)), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2207 | (r'<<[a-z0-9_]+>>', Name.Label), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2208 | (r'([a-z0-9_]+)(\s*)(:)(\s*)(declare|begin|loop|for|while)', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2209 | bygroups(Name.Label, Text, Punctuation, Text, Keyword.Reserved)), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2210 | (r'\b(abort|abs|abstract|accept|access|aliased|all|array|at|begin|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2211 | r'body|case|constant|declare|delay|delta|digits|do|else|elsif|end|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2212 | r'entry|exception|exit|interface|for|goto|if|is|limited|loop|new|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2213 | r'null|of|or|others|out|overriding|pragma|protected|raise|range|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2214 | r'record|renames|requeue|return|reverse|select|separate|subtype|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2215 | r'synchronized|task|tagged|terminate|then|type|until|when|while|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2216 | r'xor)\b', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2217 | Keyword.Reserved), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2218 | (r'"[^"]*"', String), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2219 | include('attribute'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2220 | include('numbers'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2221 | (r"'[^']'", String.Character), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2222 | (r'([a-z0-9_]+)(\s*|[(,])', bygroups(Name, using(this))), |
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2223 | (r"(<>|=>|:=|[()|:;,.'])", Punctuation), |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2224 | (r'[*<>+=/&-]', Operator), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2225 | (r'\n+', Text), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2226 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2227 | 'numbers' : [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2228 | (r'[0-9_]+#[0-9a-f]+#', Number.Hex), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2229 | (r'[0-9_]+\.[0-9_]*', Number.Float), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2230 | (r'[0-9_]+', Number.Integer), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2231 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2232 | 'attribute' : [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2233 | (r"(')([a-zA-Z0-9_]+)", bygroups(Punctuation, Name.Attribute)), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2234 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2235 | 'subprogram' : [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2236 | (r'\(', Punctuation, ('#pop', 'formal_part')), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2237 | (r';', Punctuation, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2238 | (r'is\b', Keyword.Reserved, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2239 | (r'"[^"]+"|[a-z0-9_]+', Name.Function), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2240 | include('root'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2241 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2242 | 'end' : [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2243 | ('(if|case|record|loop|select)', Keyword.Reserved), |
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2244 | ('"[^"]+"|[a-zA-Z0-9_.]+', Name.Function), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2245 | ('\s+', Text), |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2246 | (';', Punctuation, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2247 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2248 | 'type_def': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2249 | (r';', Punctuation, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2250 | (r'\(', Punctuation, 'formal_part'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2251 | (r'with|and|use', Keyword.Reserved), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2252 | (r'array\b', Keyword.Reserved, ('#pop', 'array_def')), |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2253 | (r'record\b', Keyword.Reserved, ('record_def')), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2254 | (r'(null record)(;)', bygroups(Keyword.Reserved, Punctuation), '#pop'), |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2255 | include('root'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2256 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2257 | 'array_def' : [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2258 | (r';', Punctuation, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2259 | (r'([a-z0-9_]+)(\s+)(range)', bygroups(Keyword.Type, Text, |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2260 | Keyword.Reserved)), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2261 | include('root'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2262 | ], |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2263 | 'record_def' : [ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2264 | (r'end record', Keyword.Reserved, '#pop'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2265 | include('root'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2266 | ], |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2267 | 'import': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2268 | (r'[a-z0-9_.]+', Name.Namespace, '#pop'), |
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2269 | (r'', Text, '#pop'), |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2270 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2271 | 'formal_part' : [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2272 | (r'\)', Punctuation, '#pop'), |
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2273 | (r'[a-z0-9_]+', Name.Variable), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2274 | (r',|:[^=]', Punctuation), |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2275 | (r'(in|not|null|out|access)\b', Keyword.Reserved), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2276 | include('root'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2277 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2278 | 'package': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2279 | ('body', Keyword.Declaration), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2280 | ('is\s+new|renames', Keyword.Reserved), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2281 | ('is', Keyword.Reserved, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2282 | (';', Punctuation, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2283 | ('\(', Punctuation, 'package_instantiation'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2284 | ('([a-zA-Z0-9_.]+)', Name.Class), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2285 | include('root'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2286 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2287 | 'package_instantiation': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2288 | (r'("[^"]+"|[a-z0-9_]+)(\s+)(=>)', bygroups(Name.Variable, |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2289 | Text, Punctuation)), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2290 | (r'[a-z0-9._\'"]', Text), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2291 | (r'\)', Punctuation, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2292 | include('root'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2293 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2294 | } |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2295 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2296 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2297 | class Modula2Lexer(RegexLexer): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2298 | """ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2299 | For `Modula-2 <http://www.modula2.org/>`_ source code. |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2300 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2301 | Additional options that determine which keywords are highlighted: |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2302 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2303 | `pim` |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2304 | Select PIM Modula-2 dialect (default: True). |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2305 | `iso` |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2306 | Select ISO Modula-2 dialect (default: False). |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2307 | `objm2` |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2308 | Select Objective Modula-2 dialect (default: False). |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2309 | `gm2ext` |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2310 | Also highlight GNU extensions (default: False). |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2311 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2312 | *New in Pygments 1.3.* |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2313 | """ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2314 | name = 'Modula-2' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2315 | aliases = ['modula2', 'm2'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2316 | filenames = ['*.def', '*.mod'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2317 | mimetypes = ['text/x-modula2'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2318 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2319 | flags = re.MULTILINE | re.DOTALL |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2320 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2321 | tokens = { |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2322 | 'whitespace': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2323 | (r'\n+', Text), # blank lines |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2324 | (r'\s+', Text), # whitespace |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2325 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2326 | 'identifiers': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2327 | (r'([a-zA-Z_\$][a-zA-Z0-9_\$]*)', Name), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2328 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2329 | 'numliterals': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2330 | (r'[01]+B', Number.Binary), # binary number (ObjM2) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2331 | (r'[0-7]+B', Number.Oct), # octal number (PIM + ISO) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2332 | (r'[0-7]+C', Number.Oct), # char code (PIM + ISO) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2333 | (r'[0-9A-F]+C', Number.Hex), # char code (ObjM2) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2334 | (r'[0-9A-F]+H', Number.Hex), # hexadecimal number |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2335 | (r'[0-9]+\.[0-9]+E[+-][0-9]+', Number.Float), # real number |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2336 | (r'[0-9]+\.[0-9]+', Number.Float), # real number |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2337 | (r'[0-9]+', Number.Integer), # decimal whole number |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2338 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2339 | 'strings': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2340 | (r"'(\\\\|\\'|[^'])*'", String), # single quoted string |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2341 | (r'"(\\\\|\\"|[^"])*"', String), # double quoted string |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2342 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2343 | 'operators': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2344 | (r'[*/+=#~&<>\^-]', Operator), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2345 | (r':=', Operator), # assignment |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2346 | (r'@', Operator), # pointer deref (ISO) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2347 | (r'\.\.', Operator), # ellipsis or range |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2348 | (r'`', Operator), # Smalltalk message (ObjM2) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2349 | (r'::', Operator), # type conversion (ObjM2) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2350 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2351 | 'punctuation': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2352 | (r'[\(\)\[\]{},.:;|]', Punctuation), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2353 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2354 | 'comments': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2355 | (r'//.*?\n', Comment.Single), # ObjM2 |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2356 | (r'/\*(.*?)\*/', Comment.Multiline), # ObjM2 |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2357 | (r'\(\*([^\$].*?)\*\)', Comment.Multiline), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2358 | # TO DO: nesting of (* ... *) comments |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2359 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2360 | 'pragmas': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2361 | (r'\(\*\$(.*?)\*\)', Comment.Preproc), # PIM |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2362 | (r'<\*(.*?)\*>', Comment.Preproc), # ISO + ObjM2 |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2363 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2364 | 'root': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2365 | include('whitespace'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2366 | include('comments'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2367 | include('pragmas'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2368 | include('identifiers'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2369 | include('numliterals'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2370 | include('strings'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2371 | include('operators'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2372 | include('punctuation'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2373 | ] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2374 | } |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2375 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2376 | pim_reserved_words = [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2377 | # 40 reserved words |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2378 | 'AND', 'ARRAY', 'BEGIN', 'BY', 'CASE', 'CONST', 'DEFINITION', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2379 | 'DIV', 'DO', 'ELSE', 'ELSIF', 'END', 'EXIT', 'EXPORT', 'FOR', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2380 | 'FROM', 'IF', 'IMPLEMENTATION', 'IMPORT', 'IN', 'LOOP', 'MOD', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2381 | 'MODULE', 'NOT', 'OF', 'OR', 'POINTER', 'PROCEDURE', 'QUALIFIED', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2382 | 'RECORD', 'REPEAT', 'RETURN', 'SET', 'THEN', 'TO', 'TYPE', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2383 | 'UNTIL', 'VAR', 'WHILE', 'WITH', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2384 | ] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2385 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2386 | pim_pervasives = [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2387 | # 31 pervasives |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2388 | 'ABS', 'BITSET', 'BOOLEAN', 'CAP', 'CARDINAL', 'CHAR', 'CHR', 'DEC', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2389 | 'DISPOSE', 'EXCL', 'FALSE', 'FLOAT', 'HALT', 'HIGH', 'INC', 'INCL', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2390 | 'INTEGER', 'LONGINT', 'LONGREAL', 'MAX', 'MIN', 'NEW', 'NIL', 'ODD', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2391 | 'ORD', 'PROC', 'REAL', 'SIZE', 'TRUE', 'TRUNC', 'VAL', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2392 | ] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2393 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2394 | iso_reserved_words = [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2395 | # 46 reserved words |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2396 | 'AND', 'ARRAY', 'BEGIN', 'BY', 'CASE', 'CONST', 'DEFINITION', 'DIV', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2397 | 'DO', 'ELSE', 'ELSIF', 'END', 'EXCEPT', 'EXIT', 'EXPORT', 'FINALLY', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2398 | 'FOR', 'FORWARD', 'FROM', 'IF', 'IMPLEMENTATION', 'IMPORT', 'IN', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2399 | 'LOOP', 'MOD', 'MODULE', 'NOT', 'OF', 'OR', 'PACKEDSET', 'POINTER', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2400 | 'PROCEDURE', 'QUALIFIED', 'RECORD', 'REPEAT', 'REM', 'RETRY', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2401 | 'RETURN', 'SET', 'THEN', 'TO', 'TYPE', 'UNTIL', 'VAR', 'WHILE', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2402 | 'WITH', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2403 | ] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2404 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2405 | iso_pervasives = [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2406 | # 42 pervasives |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2407 | 'ABS', 'BITSET', 'BOOLEAN', 'CAP', 'CARDINAL', 'CHAR', 'CHR', 'CMPLX', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2408 | 'COMPLEX', 'DEC', 'DISPOSE', 'EXCL', 'FALSE', 'FLOAT', 'HALT', 'HIGH', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2409 | 'IM', 'INC', 'INCL', 'INT', 'INTEGER', 'INTERRUPTIBLE', 'LENGTH', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2410 | 'LFLOAT', 'LONGCOMPLEX', 'LONGINT', 'LONGREAL', 'MAX', 'MIN', 'NEW', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2411 | 'NIL', 'ODD', 'ORD', 'PROC', 'PROTECTION', 'RE', 'REAL', 'SIZE', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2412 | 'TRUE', 'TRUNC', 'UNINTERRUBTIBLE', 'VAL', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2413 | ] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2414 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2415 | objm2_reserved_words = [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2416 | # base language, 42 reserved words |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2417 | 'AND', 'ARRAY', 'BEGIN', 'BY', 'CASE', 'CONST', 'DEFINITION', 'DIV', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2418 | 'DO', 'ELSE', 'ELSIF', 'END', 'ENUM', 'EXIT', 'FOR', 'FROM', 'IF', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2419 | 'IMMUTABLE', 'IMPLEMENTATION', 'IMPORT', 'IN', 'IS', 'LOOP', 'MOD', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2420 | 'MODULE', 'NOT', 'OF', 'OPAQUE', 'OR', 'POINTER', 'PROCEDURE', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2421 | 'RECORD', 'REPEAT', 'RETURN', 'SET', 'THEN', 'TO', 'TYPE', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2422 | 'UNTIL', 'VAR', 'VARIADIC', 'WHILE', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2423 | # OO extensions, 16 reserved words |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2424 | 'BYCOPY', 'BYREF', 'CLASS', 'CONTINUE', 'CRITICAL', 'INOUT', 'METHOD', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2425 | 'ON', 'OPTIONAL', 'OUT', 'PRIVATE', 'PROTECTED', 'PROTOCOL', 'PUBLIC', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2426 | 'SUPER', 'TRY', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2427 | ] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2428 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2429 | objm2_pervasives = [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2430 | # base language, 38 pervasives |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2431 | 'ABS', 'BITSET', 'BOOLEAN', 'CARDINAL', 'CHAR', 'CHR', 'DISPOSE', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2432 | 'FALSE', 'HALT', 'HIGH', 'INTEGER', 'INRANGE', 'LENGTH', 'LONGCARD', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2433 | 'LONGINT', 'LONGREAL', 'MAX', 'MIN', 'NEG', 'NEW', 'NEXTV', 'NIL', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2434 | 'OCTET', 'ODD', 'ORD', 'PRED', 'PROC', 'READ', 'REAL', 'SUCC', 'TMAX', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2435 | 'TMIN', 'TRUE', 'TSIZE', 'UNICHAR', 'VAL', 'WRITE', 'WRITEF', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2436 | # OO extensions, 3 pervasives |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2437 | 'OBJECT', 'NO', 'YES', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2438 | ] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2439 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2440 | gnu_reserved_words = [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2441 | # 10 additional reserved words |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2442 | 'ASM', '__ATTRIBUTE__', '__BUILTIN__', '__COLUMN__', '__DATE__', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2443 | '__FILE__', '__FUNCTION__', '__LINE__', '__MODULE__', 'VOLATILE', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2444 | ] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2445 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2446 | gnu_pervasives = [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2447 | # 21 identifiers, actually from pseudo-module SYSTEM |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2448 | # but we will highlight them as if they were pervasives |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2449 | 'BITSET8', 'BITSET16', 'BITSET32', 'CARDINAL8', 'CARDINAL16', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2450 | 'CARDINAL32', 'CARDINAL64', 'COMPLEX32', 'COMPLEX64', 'COMPLEX96', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2451 | 'COMPLEX128', 'INTEGER8', 'INTEGER16', 'INTEGER32', 'INTEGER64', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2452 | 'REAL8', 'REAL16', 'REAL32', 'REAL96', 'REAL128', 'THROW', |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2453 | ] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2454 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2455 | def __init__(self, **options): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2456 | self.reserved_words = set() |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2457 | self.pervasives = set() |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2458 | # ISO Modula-2 |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2459 | if get_bool_opt(options, 'iso', False): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2460 | self.reserved_words.update(self.iso_reserved_words) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2461 | self.pervasives.update(self.iso_pervasives) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2462 | # Objective Modula-2 |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2463 | elif get_bool_opt(options, 'objm2', False): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2464 | self.reserved_words.update(self.objm2_reserved_words) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2465 | self.pervasives.update(self.objm2_pervasives) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2466 | # PIM Modula-2 (DEFAULT) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2467 | else: |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2468 | self.reserved_words.update(self.pim_reserved_words) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2469 | self.pervasives.update(self.pim_pervasives) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2470 | # GNU extensions |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2471 | if get_bool_opt(options, 'gm2ext', False): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2472 | self.reserved_words.update(self.gnu_reserved_words) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2473 | self.pervasives.update(self.gnu_pervasives) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2474 | # initialise |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2475 | RegexLexer.__init__(self, **options) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2476 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2477 | def get_tokens_unprocessed(self, text): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2478 | for index, token, value in \ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2479 | RegexLexer.get_tokens_unprocessed(self, text): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2480 | # check for reserved words and pervasives |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2481 | if token is Name: |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2482 | if value in self.reserved_words: |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2483 | token = Keyword.Reserved |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2484 | elif value in self.pervasives: |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2485 | token = Keyword.Pervasive |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2486 | # return result |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2487 | yield index, token, value |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2488 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2489 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2490 | class BlitzMaxLexer(RegexLexer): |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2491 | """ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2492 | For `BlitzMax <http://blitzbasic.com>`_ source code. |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2493 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2494 | *New in Pygments 1.4.* |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2495 | """ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2496 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2497 | name = 'BlitzMax' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2498 | aliases = ['blitzmax', 'bmax'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2499 | filenames = ['*.bmx'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2500 | mimetypes = ['text/x-bmx'] |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2501 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2502 | bmax_vopwords = r'\b(Shl|Shr|Sar|Mod)\b' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2503 | bmax_sktypes = r'@{1,2}|[!#$%]' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2504 | bmax_lktypes = r'\b(Int|Byte|Short|Float|Double|Long)\b' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2505 | bmax_name = r'[a-z_][a-z0-9_]*' |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2506 | bmax_var = (r'(%s)(?:(?:([ \t]*)(%s)|([ \t]*:[ \t]*\b(?:Shl|Shr|Sar|Mod)\b)' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2507 | r'|([ \t]*)([:])([ \t]*)(?:%s|(%s)))(?:([ \t]*)(Ptr))?)') % \ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2508 | (bmax_name, bmax_sktypes, bmax_lktypes, bmax_name) |
808
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2509 | bmax_func = bmax_var + r'?((?:[ \t]|\.\.\n)*)([(])' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2510 | |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2511 | flags = re.MULTILINE | re.IGNORECASE |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2512 | tokens = { |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2513 | 'root': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2514 | # Text |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2515 | (r'[ \t]+', Text), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2516 | (r'\.\.\n', Text), # Line continuation |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2517 | # Comments |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2518 | (r"'.*?\n", Comment.Single), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2519 | (r'([ \t]*)\bRem\n(\n|.)*?\s*\bEnd([ \t]*)Rem', Comment.Multiline), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2520 | # Data types |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2521 | ('"', String.Double, 'string'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2522 | # Numbers |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2523 | (r'[0-9]+\.[0-9]*(?!\.)', Number.Float), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2524 | (r'\.[0-9]*(?!\.)', Number.Float), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2525 | (r'[0-9]+', Number.Integer), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2526 | (r'\$[0-9a-f]+', Number.Hex), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2527 | (r'\%[10]+', Number), # Binary |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2528 | # Other |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2529 | (r'(?:(?:(:)?([ \t]*)(:?%s|([+\-*/&|~]))|Or|And|Not|[=<>^]))' % |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2530 | (bmax_vopwords), Operator), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2531 | (r'[(),.:\[\]]', Punctuation), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2532 | (r'(?:#[\w \t]*)', Name.Label), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2533 | (r'(?:\?[\w \t]*)', Comment.Preproc), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2534 | # Identifiers |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2535 | (r'\b(New)\b([ \t]?)([(]?)(%s)' % (bmax_name), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2536 | bygroups(Keyword.Reserved, Text, Punctuation, Name.Class)), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2537 | (r'\b(Import|Framework|Module)([ \t]+)(%s\.%s)' % |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2538 | (bmax_name, bmax_name), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2539 | bygroups(Keyword.Reserved, Text, Keyword.Namespace)), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2540 | (bmax_func, bygroups(Name.Function, Text, Keyword.Type, |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2541 | Operator, Text, Punctuation, Text, |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2542 | Keyword.Type, Name.Class, Text, |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2543 | Keyword.Type, Text, Punctuation)), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2544 | (bmax_var, bygroups(Name.Variable, Text, Keyword.Type, Operator, |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2545 | Text, Punctuation, Text, Keyword.Type, |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2546 | Name.Class, Text, Keyword.Type)), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2547 | (r'\b(Type|Extends)([ \t]+)(%s)' % (bmax_name), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2548 | bygroups(Keyword.Reserved, Text, Name.Class)), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2549 | # Keywords |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2550 | (r'\b(Ptr)\b', Keyword.Type), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2551 | (r'\b(Pi|True|False|Null|Self|Super)\b', Keyword.Constant), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2552 | (r'\b(Local|Global|Const|Field)\b', Keyword.Declaration), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2553 | (r'\b(TNullMethodException|TNullFunctionException|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2554 | r'TNullObjectException|TArrayBoundsException|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2555 | r'TRuntimeException)\b', Name.Exception), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2556 | (r'\b(Strict|SuperStrict|Module|ModuleInfo|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2557 | r'End|Return|Continue|Exit|Public|Private|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2558 | r'Var|VarPtr|Chr|Len|Asc|SizeOf|Sgn|Abs|Min|Max|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2559 | r'New|Release|Delete|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2560 | r'Incbin|IncbinPtr|IncbinLen|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2561 | r'Framework|Include|Import|Extern|EndExtern|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2562 | r'Function|EndFunction|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2563 | r'Type|EndType|Extends|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2564 | r'Method|EndMethod|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2565 | r'Abstract|Final|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2566 | r'If|Then|Else|ElseIf|EndIf|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2567 | r'For|To|Next|Step|EachIn|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2568 | r'While|Wend|EndWhile|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2569 | r'Repeat|Until|Forever|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2570 | r'Select|Case|Default|EndSelect|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2571 | r'Try|Catch|EndTry|Throw|Assert|' |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2572 | r'Goto|DefData|ReadData|RestoreData)\b', Keyword.Reserved), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2573 | # Final resolve (for variable names and such) |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2574 | (r'(%s)' % (bmax_name), Name.Variable), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2575 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2576 | 'string': [ |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2577 | (r'""', String.Double), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2578 | (r'"C?', String.Double, '#pop'), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2579 | (r'[^"]+', String.Double), |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2580 | ], |
8f85926125ef
Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
684
diff
changeset
|
2581 | } |
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2582 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2583 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2584 | class NimrodLexer(RegexLexer): |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2585 | """ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2586 | For `Nimrod <http://nimrod-code.org/>`_ source code. |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2587 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2588 | *New in Pygments 1.5.* |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2589 | """ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2590 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2591 | name = 'Nimrod' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2592 | aliases = ['nimrod', 'nim'] |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2593 | filenames = ['*.nim', '*.nimrod'] |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2594 | mimetypes = ['text/x-nimrod'] |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2595 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2596 | flags = re.MULTILINE | re.IGNORECASE | re.UNICODE |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2597 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2598 | def underscorize(words): |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2599 | newWords = [] |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2600 | new = "" |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2601 | for word in words: |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2602 | for ch in word: |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2603 | new += (ch + "_?") |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2604 | newWords.append(new) |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2605 | new = "" |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2606 | return "|".join(newWords) |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2607 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2608 | keywords = [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2609 | 'addr', 'and', 'as', 'asm', 'atomic', 'bind', 'block', 'break', |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2610 | 'case', 'cast', 'const', 'continue', 'converter', 'discard', |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2611 | 'distinct', 'div', 'elif', 'else', 'end', 'enum', 'except', 'finally', |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2612 | 'for', 'generic', 'if', 'implies', 'in', 'yield', |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2613 | 'is', 'isnot', 'iterator', 'lambda', 'let', 'macro', 'method', |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2614 | 'mod', 'not', 'notin', 'object', 'of', 'or', 'out', 'proc', |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2615 | 'ptr', 'raise', 'ref', 'return', 'shl', 'shr', 'template', 'try', |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2616 | 'tuple', 'type' , 'when', 'while', 'with', 'without', 'xor' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2617 | ] |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2618 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2619 | keywordsPseudo = [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2620 | 'nil', 'true', 'false' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2621 | ] |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2622 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2623 | opWords = [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2624 | 'and', 'or', 'not', 'xor', 'shl', 'shr', 'div', 'mod', 'in', |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2625 | 'notin', 'is', 'isnot' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2626 | ] |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2627 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2628 | types = [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2629 | 'int', 'int8', 'int16', 'int32', 'int64', 'float', 'float32', 'float64', |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2630 | 'bool', 'char', 'range', 'array', 'seq', 'set', 'string' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2631 | ] |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2632 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2633 | tokens = { |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2634 | 'root': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2635 | (r'##.*$', String.Doc), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2636 | (r'#.*$', Comment), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2637 | (r'\*|=|>|<|\+|-|/|@|\$|~|&|%|\!|\?|\||\\|\[|\]', Operator), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2638 | (r'\.\.|\.|,|\[\.|\.\]|{\.|\.}|\(\.|\.\)|{|}|\(|\)|:|\^|`|;', |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2639 | Punctuation), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2640 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2641 | # Strings |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2642 | (r'(?:[\w]+)"', String, 'rdqs'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2643 | (r'"""', String, 'tdqs'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2644 | ('"', String, 'dqs'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2645 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2646 | # Char |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2647 | ("'", String.Char, 'chars'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2648 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2649 | # Keywords |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2650 | (r'(%s)\b' % underscorize(opWords), Operator.Word), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2651 | (r'(p_?r_?o_?c_?\s)(?![\(\[\]])', Keyword, 'funcname'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2652 | (r'(%s)\b' % underscorize(keywords), Keyword), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2653 | (r'(%s)\b' % underscorize(['from', 'import', 'include']), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2654 | Keyword.Namespace), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2655 | (r'(v_?a_?r)\b', Keyword.Declaration), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2656 | (r'(%s)\b' % underscorize(types), Keyword.Type), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2657 | (r'(%s)\b' % underscorize(keywordsPseudo), Keyword.Pseudo), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2658 | # Identifiers |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2659 | (r'\b((?![_\d])\w)(((?!_)\w)|(_(?!_)\w))*', Name), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2660 | # Numbers |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2661 | (r'[0-9][0-9_]*(?=([eE.]|\'[fF](32|64)))', |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2662 | Number.Float, ('float-suffix', 'float-number')), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2663 | (r'0[xX][a-fA-F0-9][a-fA-F0-9_]*', Number.Hex, 'int-suffix'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2664 | (r'0[bB][01][01_]*', Number, 'int-suffix'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2665 | (r'0o[0-7][0-7_]*', Number.Oct, 'int-suffix'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2666 | (r'[0-9][0-9_]*', Number.Integer, 'int-suffix'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2667 | # Whitespace |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2668 | (r'\s+', Text), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2669 | (r'.+$', Error), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2670 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2671 | 'chars': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2672 | (r'\\([\\abcefnrtvl"\']|x[a-fA-F0-9]{2}|[0-9]{1,3})', String.Escape), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2673 | (r"'", String.Char, '#pop'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2674 | (r".", String.Char) |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2675 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2676 | 'strings': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2677 | (r'(?<!\$)\$(\d+|#|\w+)+', String.Interpol), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2678 | (r'[^\\\'"\$\n]+', String), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2679 | # quotes, dollars and backslashes must be parsed one at a time |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2680 | (r'[\'"\\]', String), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2681 | # unhandled string formatting sign |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2682 | (r'\$', String) |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2683 | # newlines are an error (use "nl" state) |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2684 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2685 | 'dqs': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2686 | (r'\\([\\abcefnrtvl"\']|\n|x[a-fA-F0-9]{2}|[0-9]{1,3})', |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2687 | String.Escape), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2688 | (r'"', String, '#pop'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2689 | include('strings') |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2690 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2691 | 'rdqs': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2692 | (r'"(?!")', String, '#pop'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2693 | (r'""', String.Escape), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2694 | include('strings') |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2695 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2696 | 'tdqs': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2697 | (r'"""(?!")', String, '#pop'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2698 | include('strings'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2699 | include('nl') |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2700 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2701 | 'funcname': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2702 | (r'((?![\d_])\w)(((?!_)\w)|(_(?!_)\w))*', Name.Function, '#pop'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2703 | (r'`.+`', Name.Function, '#pop') |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2704 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2705 | 'nl': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2706 | (r'\n', String) |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2707 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2708 | 'float-number': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2709 | (r'\.(?!\.)[0-9_]*', Number.Float), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2710 | (r'[eE][+-]?[0-9][0-9_]*', Number.Float), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2711 | (r'', Text, '#pop') |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2712 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2713 | 'float-suffix': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2714 | (r'\'[fF](32|64)', Number.Float), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2715 | (r'', Text, '#pop') |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2716 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2717 | 'int-suffix': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2718 | (r'\'[iI](32|64)', Number.Integer.Long), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2719 | (r'\'[iI](8|16)', Number.Integer), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2720 | (r'', Text, '#pop') |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2721 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2722 | } |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2723 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2724 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2725 | class FantomLexer(RegexLexer): |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2726 | """ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2727 | For Fantom source code. |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2728 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2729 | *New in Pygments 1.5.* |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2730 | """ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2731 | name = 'Fantom' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2732 | aliases = ['fan'] |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2733 | filenames = ['*.fan'] |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2734 | mimetypes = ['application/x-fantom'] |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2735 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2736 | # often used regexes |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2737 | def s(str): |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2738 | return Template(str).substitute( |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2739 | dict ( |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2740 | pod = r'[\"\w\.]+', |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2741 | eos = r'\n|;', |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2742 | id = r'[a-zA-Z_][a-zA-Z0-9_]*', |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2743 | # all chars which can be part of type definition. Starts with |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2744 | # either letter, or [ (maps), or | (funcs) |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2745 | type = r'(?:\[|[a-zA-Z_]|\|)[:\w\[\]\|\->\?]*?', |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2746 | ) |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2747 | ) |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2748 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2749 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2750 | tokens = { |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2751 | 'comments': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2752 | (r'(?s)/\*.*?\*/', Comment.Multiline), #Multiline |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2753 | (r'//.*?\n', Comment.Single), #Single line |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2754 | #todo: highlight references in fandocs |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2755 | (r'\*\*.*?\n', Comment.Special), #Fandoc |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2756 | (r'#.*\n', Comment.Single) #Shell-style |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2757 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2758 | 'literals': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2759 | (r'\b-?[\d_]+(ns|ms|sec|min|hr|day)', Number), #Duration |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2760 | (r'\b-?[\d_]*\.[\d_]+(ns|ms|sec|min|hr|day)', Number), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2761 | #Duration with dot |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2762 | (r'\b-?(\d+)?\.\d+(f|F|d|D)?', Number.Float), #Float/Decimal |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2763 | (r'\b-?0x[0-9a-fA-F_]+', Number.Hex), #Hex |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2764 | (r'\b-?[\d_]+', Number.Integer), #Int |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2765 | (r"'\\.'|'[^\\]'|'\\u[0-9a-f]{4}'", String.Char), #Char |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2766 | (r'"', Punctuation, 'insideStr'), #Opening quote |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2767 | (r'`', Punctuation, 'insideUri'), #Opening accent |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2768 | (r'\b(true|false|null)\b', Keyword.Constant), #Bool & null |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2769 | (r'(?:(\w+)(::))?(\w+)(<\|)(.*?)(\|>)', #DSL |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2770 | bygroups(Name.Namespace, Punctuation, Name.Class, |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2771 | Punctuation, String, Punctuation)), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2772 | (r'(?:(\w+)(::))?(\w+)?(#)(\w+)?', #Type/slot literal |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2773 | bygroups(Name.Namespace, Punctuation, Name.Class, |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2774 | Punctuation, Name.Function)), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2775 | (r'\[,\]', Literal), # Empty list |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2776 | (s(r'($type)(\[,\])'), # Typed empty list |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2777 | bygroups(using(this, state = 'inType'), Literal)), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2778 | (r'\[:\]', Literal), # Empty Map |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2779 | (s(r'($type)(\[:\])'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2780 | bygroups(using(this, state = 'inType'), Literal)), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2781 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2782 | 'insideStr': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2783 | (r'\\\\', String.Escape), #Escaped backslash |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2784 | (r'\\"', String.Escape), #Escaped " |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2785 | (r'\\`', String.Escape), #Escaped ` |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2786 | (r'\$\w+', String.Interpol), #Subst var |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2787 | (r'\${.*?}', String.Interpol), #Subst expr |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2788 | (r'"', Punctuation, '#pop'), #Closing quot |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2789 | (r'.', String) #String content |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2790 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2791 | 'insideUri': [ #TODO: remove copy/paste str/uri |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2792 | (r'\\\\', String.Escape), #Escaped backslash |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2793 | (r'\\"', String.Escape), #Escaped " |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2794 | (r'\\`', String.Escape), #Escaped ` |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2795 | (r'\$\w+', String.Interpol), #Subst var |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2796 | (r'\${.*?}', String.Interpol), #Subst expr |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2797 | (r'`', Punctuation, '#pop'), #Closing tick |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2798 | (r'.', String.Backtick) #URI content |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2799 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2800 | 'protectionKeywords': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2801 | (r'\b(public|protected|private|internal)\b', Keyword), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2802 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2803 | 'typeKeywords': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2804 | (r'\b(abstract|final|const|native|facet|enum)\b', Keyword), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2805 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2806 | 'methodKeywords': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2807 | (r'\b(abstract|native|once|override|static|virtual|final)\b', |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2808 | Keyword), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2809 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2810 | 'fieldKeywords': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2811 | (r'\b(abstract|const|final|native|override|static|virtual|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2812 | r'readonly)\b', Keyword) |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2813 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2814 | 'otherKeywords': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2815 | (r'\b(try|catch|throw|finally|for|if|else|while|as|is|isnot|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2816 | r'switch|case|default|continue|break|do|return|get|set)\b', |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2817 | Keyword), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2818 | (r'\b(it|this|super)\b', Name.Builtin.Pseudo), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2819 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2820 | 'operators': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2821 | (r'\+\+|\-\-|\+|\-|\*|/|\|\||&&|<=>|<=|<|>=|>|=|!|\[|\]', Operator) |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2822 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2823 | 'inType': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2824 | (r'[\[\]\|\->:\?]', Punctuation), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2825 | (s(r'$id'), Name.Class), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2826 | (r'', Text, '#pop'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2827 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2828 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2829 | 'root': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2830 | include('comments'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2831 | include('protectionKeywords'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2832 | include('typeKeywords'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2833 | include('methodKeywords'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2834 | include('fieldKeywords'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2835 | include('literals'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2836 | include('otherKeywords'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2837 | include('operators'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2838 | (r'using\b', Keyword.Namespace, 'using'), # Using stmt |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2839 | (r'@\w+', Name.Decorator, 'facet'), # Symbol |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2840 | (r'(class|mixin)(\s+)(\w+)', bygroups(Keyword, Text, Name.Class), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2841 | 'inheritance'), # Inheritance list |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2842 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2843 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2844 | ### Type var := val |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2845 | (s(r'($type)([ \t]+)($id)(\s*)(:=)'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2846 | bygroups(using(this, state = 'inType'), Text, |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2847 | Name.Variable, Text, Operator)), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2848 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2849 | ### var := val |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2850 | (s(r'($id)(\s*)(:=)'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2851 | bygroups(Name.Variable, Text, Operator)), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2852 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2853 | ### .someId( or ->someId( ### |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2854 | (s(r'(\.|(?:\->))($id)(\s*)(\()'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2855 | bygroups(Operator, Name.Function, Text, Punctuation), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2856 | 'insideParen'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2857 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2858 | ### .someId or ->someId |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2859 | (s(r'(\.|(?:\->))($id)'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2860 | bygroups(Operator, Name.Function)), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2861 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2862 | ### new makeXXX ( #### |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2863 | (r'(new)(\s+)(make\w*)(\s*)(\()', |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2864 | bygroups(Keyword, Text, Name.Function, Text, Punctuation), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2865 | 'insideMethodDeclArgs'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2866 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2867 | ### Type name ( #### |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2868 | (s(r'($type)([ \t]+)' #Return type and whitespace |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2869 | r'($id)(\s*)(\()'), #method name + open brace |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2870 | bygroups(using(this, state = 'inType'), Text, |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2871 | Name.Function, Text, Punctuation), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2872 | 'insideMethodDeclArgs'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2873 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2874 | ### ArgType argName, ##### |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2875 | (s(r'($type)(\s+)($id)(\s*)(,)'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2876 | bygroups(using(this, state='inType'), Text, Name.Variable, |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2877 | Text, Punctuation)), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2878 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2879 | #### ArgType argName) #### |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2880 | ## Covered in 'insideParen' state |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2881 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2882 | ### ArgType argName -> ArgType| ### |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2883 | (s(r'($type)(\s+)($id)(\s*)(\->)(\s*)($type)(\|)'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2884 | bygroups(using(this, state='inType'), Text, Name.Variable, |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2885 | Text, Punctuation, Text, using(this, state = 'inType'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2886 | Punctuation)), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2887 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2888 | ### ArgType argName| ### |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2889 | (s(r'($type)(\s+)($id)(\s*)(\|)'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2890 | bygroups(using(this, state='inType'), Text, Name.Variable, |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2891 | Text, Punctuation)), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2892 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2893 | ### Type var |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2894 | (s(r'($type)([ \t]+)($id)'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2895 | bygroups(using(this, state='inType'), Text, |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2896 | Name.Variable)), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2897 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2898 | (r'\(', Punctuation, 'insideParen'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2899 | (r'\{', Punctuation, 'insideBrace'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2900 | (r'.', Text) |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2901 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2902 | 'insideParen': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2903 | (r'\)', Punctuation, '#pop'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2904 | include('root'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2905 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2906 | 'insideMethodDeclArgs': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2907 | (r'\)', Punctuation, '#pop'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2908 | (s(r'($type)(\s+)($id)(\s*)(\))'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2909 | bygroups(using(this, state='inType'), Text, Name.Variable, |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2910 | Text, Punctuation), '#pop'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2911 | include('root'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2912 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2913 | 'insideBrace': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2914 | (r'\}', Punctuation, '#pop'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2915 | include('root'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2916 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2917 | 'inheritance': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2918 | (r'\s+', Text), #Whitespace |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2919 | (r':|,', Punctuation), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2920 | (r'(?:(\w+)(::))?(\w+)', |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2921 | bygroups(Name.Namespace, Punctuation, Name.Class)), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2922 | (r'{', Punctuation, '#pop') |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2923 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2924 | 'using': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2925 | (r'[ \t]+', Text), # consume whitespaces |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2926 | (r'(\[)(\w+)(\])', |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2927 | bygroups(Punctuation, Comment.Special, Punctuation)), #ffi |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2928 | (r'(\")?([\w\.]+)(\")?', |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2929 | bygroups(Punctuation, Name.Namespace, Punctuation)), #podname |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2930 | (r'::', Punctuation, 'usingClass'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2931 | (r'', Text, '#pop') |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2932 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2933 | 'usingClass': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2934 | (r'[ \t]+', Text), # consume whitespaces |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2935 | (r'(as)(\s+)(\w+)', |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2936 | bygroups(Keyword.Declaration, Text, Name.Class), '#pop:2'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2937 | (r'[\w\$]+', Name.Class), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2938 | (r'', Text, '#pop:2') # jump out to root state |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2939 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2940 | 'facet': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2941 | (r'\s+', Text), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2942 | (r'{', Punctuation, 'facetFields'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2943 | (r'', Text, '#pop') |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2944 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2945 | 'facetFields': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2946 | include('comments'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2947 | include('literals'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2948 | include('operators'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2949 | (r'\s+', Text), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2950 | (r'(\s*)(\w+)(\s*)(=)', bygroups(Text, Name, Text, Operator)), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2951 | (r'}', Punctuation, '#pop'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2952 | (r'.', Text) |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2953 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
808
diff
changeset
|
2954 | } |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2955 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2956 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2957 | class RustLexer(RegexLexer): |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2958 | """ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2959 | Lexer for Mozilla's Rust programming language. |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2960 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2961 | *New in Pygments 1.6.* |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2962 | """ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2963 | name = 'Rust' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2964 | filenames = ['*.rs', '*.rc'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2965 | aliases = ['rust'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2966 | mimetypes = ['text/x-rustsrc'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2967 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2968 | tokens = { |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2969 | 'root': [ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2970 | # Whitespace and Comments |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2971 | (r'\n', Text), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2972 | (r'\s+', Text), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2973 | (r'//(.*?)\n', Comment.Single), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2974 | (r'/[*](.|\n)*?[*]/', Comment.Multiline), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2975 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2976 | # Keywords |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2977 | (r'(as|assert|break|const' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2978 | r'|copy|do|else|enum|extern|fail' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2979 | r'|false|fn|for|if|impl|let|log' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2980 | r'|loop|match|mod|move|mut|once|priv|pub|pure' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2981 | r'|ref|return|static|struct|trait|true|type|unsafe|use|while' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2982 | r'|u8|u16|u32|u64|i8|i16|i32|i64|uint' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2983 | r'|int|float|f32|f64|str)\b', Keyword), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2984 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2985 | # Character Literal |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2986 | (r"""'(\\['"\\nrt]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}""" |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2987 | r"""|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|.)'""", |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2988 | String.Char), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2989 | # Binary Literal |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2990 | (r'0[Bb][01_]+', Number, 'number_lit'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2991 | # Octal Literal |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2992 | (r'0[0-7_]+', Number.Oct, 'number_lit'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2993 | # Hexadecimal Literal |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2994 | (r'0[xX][0-9a-fA-F_]+', Number.Hex, 'number_lit'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2995 | # Decimal Literal |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2996 | (r'[0-9][0-9_]*(\.[0-9_]+[eE][+\-]?' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2997 | r'[0-9_]+|\.[0-9_]*|[eE][+\-]?[0-9_]+)?', Number, 'number_lit'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2998 | # String Literal |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
2999 | (r'"', String, 'string'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3000 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3001 | # Operators and Punctuation |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3002 | (r'[{}()\[\],.;]', Punctuation), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3003 | (r'[+\-*/%&|<>^!~@=:?]', Operator), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3004 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3005 | # Identifier |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3006 | (r'[a-zA-Z_$][a-zA-Z0-9_]*', Name), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3007 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3008 | # Attributes |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3009 | (r'#\[', Comment.Preproc, 'attribute['), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3010 | (r'#\(', Comment.Preproc, 'attribute('), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3011 | # Macros |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3012 | (r'[A-Za-z_][A-Za-z0-9_]*!\[', Comment.Preproc, 'attribute['), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3013 | (r'[A-Za-z_][A-Za-z0-9_]*!\(', Comment.Preproc, 'attribute('), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3014 | ], |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3015 | 'number_lit': [ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3016 | (r'(([ui](8|16|32|64)?)|(f(32|64)?))?', Keyword, '#pop'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3017 | ], |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3018 | 'string': [ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3019 | (r'"', String, '#pop'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3020 | (r"""\\['"\\nrt]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}""" |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3021 | r"""|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}""", String.Escape), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3022 | (r'[^\\"]+', String), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3023 | (r'\\', String), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3024 | ], |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3025 | 'attribute_common': [ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3026 | (r'"', String, 'string'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3027 | (r'\[', Comment.Preproc, 'attribute['), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3028 | (r'\(', Comment.Preproc, 'attribute('), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3029 | ], |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3030 | 'attribute[': [ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3031 | include('attribute_common'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3032 | (r'\];?', Comment.Preproc, '#pop'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3033 | (r'[^"\]]+', Comment.Preproc), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3034 | ], |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3035 | 'attribute(': [ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3036 | include('attribute_common'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3037 | (r'\);?', Comment.Preproc, '#pop'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3038 | (r'[^"\)]+', Comment.Preproc), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3039 | ], |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3040 | } |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3041 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3042 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3043 | class CudaLexer(CLexer): |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3044 | """ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3045 | For NVIDIA `CUDAâ„¢ <http://developer.nvidia.com/category/zone/cuda-zone>`_ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3046 | source. |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3047 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3048 | *New in Pygments 1.6.* |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3049 | """ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3050 | name = 'CUDA' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3051 | filenames = ['*.cu', '*.cuh'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3052 | aliases = ['cuda', 'cu'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3053 | mimetypes = ['text/x-cuda'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3054 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3055 | function_qualifiers = ['__device__', '__global__', '__host__', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3056 | '__noinline__', '__forceinline__'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3057 | variable_qualifiers = ['__device__', '__constant__', '__shared__', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3058 | '__restrict__'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3059 | vector_types = ['char1', 'uchar1', 'char2', 'uchar2', 'char3', 'uchar3', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3060 | 'char4', 'uchar4', 'short1', 'ushort1', 'short2', 'ushort2', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3061 | 'short3', 'ushort3', 'short4', 'ushort4', 'int1', 'uint1', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3062 | 'int2', 'uint2', 'int3', 'uint3', 'int4', 'uint4', 'long1', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3063 | 'ulong1', 'long2', 'ulong2', 'long3', 'ulong3', 'long4', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3064 | 'ulong4', 'longlong1', 'ulonglong1', 'longlong2', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3065 | 'ulonglong2', 'float1', 'float2', 'float3', 'float4', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3066 | 'double1', 'double2', 'dim3'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3067 | variables = ['gridDim', 'blockIdx', 'blockDim', 'threadIdx', 'warpSize'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3068 | functions = ['__threadfence_block', '__threadfence', '__threadfence_system', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3069 | '__syncthreads', '__syncthreads_count', '__syncthreads_and', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3070 | '__syncthreads_or'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3071 | execution_confs = ['<<<', '>>>'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3072 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3073 | def get_tokens_unprocessed(self, text): |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3074 | for index, token, value in \ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3075 | CLexer.get_tokens_unprocessed(self, text): |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3076 | if token is Name: |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3077 | if value in self.variable_qualifiers: |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3078 | token = Keyword.Type |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3079 | elif value in self.vector_types: |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3080 | token = Keyword.Type |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3081 | elif value in self.variables: |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3082 | token = Name.Builtin |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3083 | elif value in self.execution_confs: |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3084 | token = Keyword.Pseudo |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3085 | elif value in self.function_qualifiers: |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3086 | token = Keyword.Reserved |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3087 | elif value in self.functions: |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3088 | token = Name.Function |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3089 | yield index, token, value |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3090 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3091 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3092 | class MonkeyLexer(RegexLexer): |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3093 | """ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3094 | For |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3095 | `Monkey <https://en.wikipedia.org/wiki/Monkey_(programming_language)>`_ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3096 | source code. |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3097 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3098 | *New in Pygments 1.6.* |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3099 | """ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3100 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3101 | name = 'Monkey' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3102 | aliases = ['monkey'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3103 | filenames = ['*.monkey'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3104 | mimetypes = ['text/x-monkey'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3105 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3106 | name_variable = r'[a-z_][a-zA-Z0-9_]*' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3107 | name_function = r'[A-Z][a-zA-Z0-9_]*' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3108 | name_constant = r'[A-Z_][A-Z0-9_]*' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3109 | name_class = r'[A-Z][a-zA-Z0-9_]*' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3110 | name_module = r'[a-z0-9_]*' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3111 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3112 | keyword_type = r'(?:Int|Float|String|Bool|Object|Array|Void)' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3113 | # ? == Bool // % == Int // # == Float // $ == String |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3114 | keyword_type_special = r'[?%#$]' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3115 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3116 | flags = re.MULTILINE |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3117 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3118 | tokens = { |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3119 | 'root': [ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3120 | #Text |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3121 | (r'\s+', Text), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3122 | # Comments |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3123 | (r"'.*", Comment), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3124 | (r'(?i)^#rem\b', Comment.Multiline, 'comment'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3125 | # preprocessor directives |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3126 | (r'(?i)^(?:#If|#ElseIf|#Else|#EndIf|#End|#Print|#Error)\b', Comment.Preproc), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3127 | # preprocessor variable (any line starting with '#' that is not a directive) |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3128 | (r'^#', Comment.Preproc, 'variables'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3129 | # String |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3130 | ('"', String.Double, 'string'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3131 | # Numbers |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3132 | (r'[0-9]+\.[0-9]*(?!\.)', Number.Float), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3133 | (r'\.[0-9]+(?!\.)', Number.Float), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3134 | (r'[0-9]+', Number.Integer), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3135 | (r'\$[0-9a-fA-Z]+', Number.Hex), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3136 | (r'\%[10]+', Number), # Binary |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3137 | # Native data types |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3138 | (r'\b%s\b' % keyword_type, Keyword.Type), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3139 | # Exception handling |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3140 | (r'(?i)\b(?:Try|Catch|Throw)\b', Keyword.Reserved), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3141 | (r'Throwable', Name.Exception), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3142 | # Builtins |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3143 | (r'(?i)\b(?:Null|True|False)\b', Name.Builtin), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3144 | (r'(?i)\b(?:Self|Super)\b', Name.Builtin.Pseudo), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3145 | (r'\b(?:HOST|LANG|TARGET|CONFIG)\b', Name.Constant), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3146 | # Keywords |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3147 | (r'(?i)^(Import)(\s+)(.*)(\n)', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3148 | bygroups(Keyword.Namespace, Text, Name.Namespace, Text)), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3149 | (r'(?i)^Strict\b.*\n', Keyword.Reserved), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3150 | (r'(?i)(Const|Local|Global|Field)(\s+)', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3151 | bygroups(Keyword.Declaration, Text), 'variables'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3152 | (r'(?i)(New|Class|Interface|Extends|Implements)(\s+)', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3153 | bygroups(Keyword.Reserved, Text), 'classname'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3154 | (r'(?i)(Function|Method)(\s+)', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3155 | bygroups(Keyword.Reserved, Text), 'funcname'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3156 | (r'(?i)(?:End|Return|Public|Private|Extern|Property|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3157 | r'Final|Abstract)\b', Keyword.Reserved), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3158 | # Flow Control stuff |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3159 | (r'(?i)(?:If|Then|Else|ElseIf|EndIf|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3160 | r'Select|Case|Default|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3161 | r'While|Wend|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3162 | r'Repeat|Until|Forever|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3163 | r'For|To|Until|Step|EachIn|Next|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3164 | r'Exit|Continue)\s+', Keyword.Reserved), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3165 | # not used yet |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3166 | (r'(?i)\b(?:Module|Inline)\b', Keyword.Reserved), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3167 | # Array |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3168 | (r'[\[\]]', Punctuation), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3169 | # Other |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3170 | (r'<=|>=|<>|\*=|/=|\+=|-=|&=|~=|\|=|[-&*/^+=<>|~]', Operator), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3171 | (r'(?i)(?:Not|Mod|Shl|Shr|And|Or)', Operator.Word), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3172 | (r'[\(\){}!#,.:]', Punctuation), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3173 | # catch the rest |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3174 | (r'%s\b' % name_constant, Name.Constant), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3175 | (r'%s\b' % name_function, Name.Function), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3176 | (r'%s\b' % name_variable, Name.Variable), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3177 | ], |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3178 | 'funcname': [ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3179 | (r'(?i)%s\b' % name_function, Name.Function), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3180 | (r':', Punctuation, 'classname'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3181 | (r'\s+', Text), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3182 | (r'\(', Punctuation, 'variables'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3183 | (r'\)', Punctuation, '#pop') |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3184 | ], |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3185 | 'classname': [ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3186 | (r'%s\.' % name_module, Name.Namespace), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3187 | (r'%s\b' % keyword_type, Keyword.Type), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3188 | (r'%s\b' % name_class, Name.Class), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3189 | # array (of given size) |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3190 | (r'(\[)(\s*)(\d*)(\s*)(\])', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3191 | bygroups(Punctuation, Text, Number.Integer, Text, Punctuation)), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3192 | # generics |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3193 | (r'\s+(?!<)', Text, '#pop'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3194 | (r'<', Punctuation, '#push'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3195 | (r'>', Punctuation, '#pop'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3196 | (r'\n', Text, '#pop'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3197 | (r'', Text, '#pop') |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3198 | ], |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3199 | 'variables': [ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3200 | (r'%s\b' % name_constant, Name.Constant), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3201 | (r'%s\b' % name_variable, Name.Variable), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3202 | (r'%s' % keyword_type_special, Keyword.Type), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3203 | (r'\s+', Text), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3204 | (r':', Punctuation, 'classname'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3205 | (r',', Punctuation, '#push'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3206 | (r'', Text, '#pop') |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3207 | ], |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3208 | 'string': [ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3209 | (r'[^"~]+', String.Double), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3210 | (r'~q|~n|~r|~t|~z|~~', String.Escape), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3211 | (r'"', String.Double, '#pop'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3212 | ], |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3213 | 'comment' : [ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3214 | (r'(?i)^#rem.*?', Comment.Multiline, "#push"), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3215 | (r'(?i)^#end.*?', Comment.Multiline, "#pop"), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3216 | (r'\n', Comment.Multiline), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3217 | (r'.+', Comment.Multiline), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3218 | ], |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3219 | } |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3220 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3221 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3222 | class CobolLexer(RegexLexer): |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3223 | """ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3224 | Lexer for OpenCOBOL code. |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3225 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3226 | *New in Pygments 1.6.* |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3227 | """ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3228 | name = 'COBOL' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3229 | aliases = ['cobol'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3230 | filenames = ['*.cob', '*.COB', '*.cpy', '*.CPY'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3231 | mimetypes = ['text/x-cobol'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3232 | flags = re.IGNORECASE | re.MULTILINE |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3233 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3234 | # Data Types: by PICTURE and USAGE |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3235 | # Operators: **, *, +, -, /, <, >, <=, >=, =, <> |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3236 | # Logical (?): NOT, AND, OR |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3237 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3238 | # Reserved words: |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3239 | # http://opencobol.add1tocobol.com/#reserved-words |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3240 | # Intrinsics: |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3241 | # http://opencobol.add1tocobol.com/#does-opencobol-implement-any-intrinsic-functions |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3242 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3243 | tokens = { |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3244 | 'root': [ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3245 | include('comment'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3246 | include('strings'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3247 | include('core'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3248 | include('nums'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3249 | (r'[a-z0-9]([_a-z0-9\-]*[a-z0-9]+)?', Name.Variable), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3250 | # (r'[\s]+', Text), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3251 | (r'[ \t]+', Text), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3252 | ], |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3253 | 'comment': [ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3254 | (r'(^.{6}[*/].*\n|^.{6}|\*>.*\n)', Comment), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3255 | ], |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3256 | 'core': [ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3257 | # Figurative constants |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3258 | (r'(^|(?<=[^0-9a-z_\-]))(ALL\s+)?' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3259 | r'((ZEROES)|(HIGH-VALUE|LOW-VALUE|QUOTE|SPACE|ZERO)(S)?)' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3260 | r'\s*($|(?=[^0-9a-z_\-]))', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3261 | Name.Constant), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3262 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3263 | # Reserved words STATEMENTS and other bolds |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3264 | (r'(^|(?<=[^0-9a-z_\-]))' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3265 | r'(ACCEPT|ADD|ALLOCATE|CALL|CANCEL|CLOSE|COMPUTE|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3266 | r'CONFIGURATION|CONTINUE|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3267 | r'DATA|DELETE|DISPLAY|DIVIDE|DIVISION|ELSE|END|END-ACCEPT|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3268 | r'END-ADD|END-CALL|END-COMPUTE|END-DELETE|END-DISPLAY|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3269 | r'END-DIVIDE|END-EVALUATE|END-IF|END-MULTIPLY|END-OF-PAGE|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3270 | r'END-PERFORM|END-READ|END-RETURN|END-REWRITE|END-SEARCH|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3271 | r'END-START|END-STRING|END-SUBTRACT|END-UNSTRING|END-WRITE|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3272 | r'ENVIRONMENT|EVALUATE|EXIT|FD|FILE|FILE-CONTROL|FOREVER|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3273 | r'FREE|GENERATE|GO|GOBACK|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3274 | r'IDENTIFICATION|IF|INITIALIZE|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3275 | r'INITIATE|INPUT-OUTPUT|INSPECT|INVOKE|I-O-CONTROL|LINKAGE|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3276 | r'LOCAL-STORAGE|MERGE|MOVE|MULTIPLY|OPEN|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3277 | r'PERFORM|PROCEDURE|PROGRAM-ID|RAISE|READ|RELEASE|RESUME|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3278 | r'RETURN|REWRITE|SCREEN|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3279 | r'SD|SEARCH|SECTION|SET|SORT|START|STOP|STRING|SUBTRACT|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3280 | r'SUPPRESS|TERMINATE|THEN|UNLOCK|UNSTRING|USE|VALIDATE|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3281 | r'WORKING-STORAGE|WRITE)' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3282 | r'\s*($|(?=[^0-9a-z_\-]))', Keyword.Reserved), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3283 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3284 | # Reserved words |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3285 | (r'(^|(?<=[^0-9a-z_\-]))' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3286 | r'(ACCESS|ADDRESS|ADVANCING|AFTER|ALL|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3287 | r'ALPHABET|ALPHABETIC|ALPHABETIC-LOWER|ALPHABETIC-UPPER|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3288 | r'ALPHANUMERIC|ALPHANUMERIC-EDITED|ALSO|ALTER|ALTERNATE' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3289 | r'ANY|ARE|AREA|AREAS|ARGUMENT-NUMBER|ARGUMENT-VALUE|AS|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3290 | r'ASCENDING|ASSIGN|AT|AUTO|AUTO-SKIP|AUTOMATIC|AUTOTERMINATE|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3291 | r'BACKGROUND-COLOR|BASED|BEEP|BEFORE|BELL|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3292 | r'BLANK|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3293 | r'BLINK|BLOCK|BOTTOM|BY|BYTE-LENGTH|CHAINING|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3294 | r'CHARACTER|CHARACTERS|CLASS|CODE|CODE-SET|COL|COLLATING|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3295 | r'COLS|COLUMN|COLUMNS|COMMA|COMMAND-LINE|COMMIT|COMMON|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3296 | r'CONSTANT|CONTAINS|CONTENT|CONTROL|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3297 | r'CONTROLS|CONVERTING|COPY|CORR|CORRESPONDING|COUNT|CRT|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3298 | r'CURRENCY|CURSOR|CYCLE|DATE|DAY|DAY-OF-WEEK|DE|DEBUGGING|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3299 | r'DECIMAL-POINT|DECLARATIVES|DEFAULT|DELIMITED|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3300 | r'DELIMITER|DEPENDING|DESCENDING|DETAIL|DISK|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3301 | r'DOWN|DUPLICATES|DYNAMIC|EBCDIC|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3302 | r'ENTRY|ENVIRONMENT-NAME|ENVIRONMENT-VALUE|EOL|EOP|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3303 | r'EOS|ERASE|ERROR|ESCAPE|EXCEPTION|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3304 | r'EXCLUSIVE|EXTEND|EXTERNAL|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3305 | r'FILE-ID|FILLER|FINAL|FIRST|FIXED|FLOAT-LONG|FLOAT-SHORT|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3306 | r'FOOTING|FOR|FOREGROUND-COLOR|FORMAT|FROM|FULL|FUNCTION|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3307 | r'FUNCTION-ID|GIVING|GLOBAL|GROUP|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3308 | r'HEADING|HIGHLIGHT|I-O|ID|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3309 | r'IGNORE|IGNORING|IN|INDEX|INDEXED|INDICATE|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3310 | r'INITIAL|INITIALIZED|INPUT|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3311 | r'INTO|INTRINSIC|INVALID|IS|JUST|JUSTIFIED|KEY|LABEL|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3312 | r'LAST|LEADING|LEFT|LENGTH|LIMIT|LIMITS|LINAGE|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3313 | r'LINAGE-COUNTER|LINE|LINES|LOCALE|LOCK|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3314 | r'LOWLIGHT|MANUAL|MEMORY|MINUS|MODE|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3315 | r'MULTIPLE|NATIONAL|NATIONAL-EDITED|NATIVE|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3316 | r'NEGATIVE|NEXT|NO|NULL|NULLS|NUMBER|NUMBERS|NUMERIC|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3317 | r'NUMERIC-EDITED|OBJECT-COMPUTER|OCCURS|OF|OFF|OMITTED|ON|ONLY|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3318 | r'OPTIONAL|ORDER|ORGANIZATION|OTHER|OUTPUT|OVERFLOW|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3319 | r'OVERLINE|PACKED-DECIMAL|PADDING|PAGE|PARAGRAPH|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3320 | r'PLUS|POINTER|POSITION|POSITIVE|PRESENT|PREVIOUS|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3321 | r'PRINTER|PRINTING|PROCEDURE-POINTER|PROCEDURES|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3322 | r'PROCEED|PROGRAM|PROGRAM-POINTER|PROMPT|QUOTE|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3323 | r'QUOTES|RANDOM|RD|RECORD|RECORDING|RECORDS|RECURSIVE|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3324 | r'REDEFINES|REEL|REFERENCE|RELATIVE|REMAINDER|REMOVAL|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3325 | r'RENAMES|REPLACING|REPORT|REPORTING|REPORTS|REPOSITORY|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3326 | r'REQUIRED|RESERVE|RETURNING|REVERSE-VIDEO|REWIND|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3327 | r'RIGHT|ROLLBACK|ROUNDED|RUN|SAME|SCROLL|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3328 | r'SECURE|SEGMENT-LIMIT|SELECT|SENTENCE|SEPARATE|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3329 | r'SEQUENCE|SEQUENTIAL|SHARING|SIGN|SIGNED|SIGNED-INT|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3330 | r'SIGNED-LONG|SIGNED-SHORT|SIZE|SORT-MERGE|SOURCE|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3331 | r'SOURCE-COMPUTER|SPECIAL-NAMES|STANDARD|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3332 | r'STANDARD-1|STANDARD-2|STATUS|SUM|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3333 | r'SYMBOLIC|SYNC|SYNCHRONIZED|TALLYING|TAPE|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3334 | r'TEST|THROUGH|THRU|TIME|TIMES|TO|TOP|TRAILING|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3335 | r'TRANSFORM|TYPE|UNDERLINE|UNIT|UNSIGNED|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3336 | r'UNSIGNED-INT|UNSIGNED-LONG|UNSIGNED-SHORT|UNTIL|UP|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3337 | r'UPDATE|UPON|USAGE|USING|VALUE|VALUES|VARYING|WAIT|WHEN|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3338 | r'WITH|WORDS|YYYYDDD|YYYYMMDD)' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3339 | r'\s*($|(?=[^0-9a-z_\-]))', Keyword.Pseudo), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3340 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3341 | # inactive reserved words |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3342 | (r'(^|(?<=[^0-9a-z_\-]))' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3343 | r'(ACTIVE-CLASS|ALIGNED|ANYCASE|ARITHMETIC|ATTRIBUTE|B-AND|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3344 | r'B-NOT|B-OR|B-XOR|BIT|BOOLEAN|CD|CENTER|CF|CH|CHAIN|CLASS-ID|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3345 | r'CLASSIFICATION|COMMUNICATION|CONDITION|DATA-POINTER|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3346 | r'DESTINATION|DISABLE|EC|EGI|EMI|ENABLE|END-RECEIVE|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3347 | r'ENTRY-CONVENTION|EO|ESI|EXCEPTION-OBJECT|EXPANDS|FACTORY|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3348 | r'FLOAT-BINARY-16|FLOAT-BINARY-34|FLOAT-BINARY-7|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3349 | r'FLOAT-DECIMAL-16|FLOAT-DECIMAL-34|FLOAT-EXTENDED|FORMAT|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3350 | r'FUNCTION-POINTER|GET|GROUP-USAGE|IMPLEMENTS|INFINITY|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3351 | r'INHERITS|INTERFACE|INTERFACE-ID|INVOKE|LC_ALL|LC_COLLATE|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3352 | r'LC_CTYPE|LC_MESSAGES|LC_MONETARY|LC_NUMERIC|LC_TIME|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3353 | r'LINE-COUNTER|MESSAGE|METHOD|METHOD-ID|NESTED|NONE|NORMAL|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3354 | r'OBJECT|OBJECT-REFERENCE|OPTIONS|OVERRIDE|PAGE-COUNTER|PF|PH|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3355 | r'PROPERTY|PROTOTYPE|PURGE|QUEUE|RAISE|RAISING|RECEIVE|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3356 | r'RELATION|REPLACE|REPRESENTS-NOT-A-NUMBER|RESET|RESUME|RETRY|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3357 | r'RF|RH|SECONDS|SEGMENT|SELF|SEND|SOURCES|STATEMENT|STEP|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3358 | r'STRONG|SUB-QUEUE-1|SUB-QUEUE-2|SUB-QUEUE-3|SUPER|SYMBOL|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3359 | r'SYSTEM-DEFAULT|TABLE|TERMINAL|TEXT|TYPEDEF|UCS-4|UNIVERSAL|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3360 | r'USER-DEFAULT|UTF-16|UTF-8|VAL-STATUS|VALID|VALIDATE|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3361 | r'VALIDATE-STATUS)\s*($|(?=[^0-9a-z_\-]))', Error), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3362 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3363 | # Data Types |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3364 | (r'(^|(?<=[^0-9a-z_\-]))' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3365 | r'(PIC\s+.+?(?=(\s|\.\s))|PICTURE\s+.+?(?=(\s|\.\s))|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3366 | r'(COMPUTATIONAL)(-[1-5X])?|(COMP)(-[1-5X])?|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3367 | r'BINARY-C-LONG|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3368 | r'BINARY-CHAR|BINARY-DOUBLE|BINARY-LONG|BINARY-SHORT|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3369 | r'BINARY)\s*($|(?=[^0-9a-z_\-]))', Keyword.Type), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3370 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3371 | # Operators |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3372 | (r'(\*\*|\*|\+|-|/|<=|>=|<|>|==|/=|=)', Operator), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3373 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3374 | # (r'(::)', Keyword.Declaration), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3375 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3376 | (r'([(),;:&%.])', Punctuation), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3377 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3378 | # Intrinsics |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3379 | (r'(^|(?<=[^0-9a-z_\-]))(ABS|ACOS|ANNUITY|ASIN|ATAN|BYTE-LENGTH|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3380 | r'CHAR|COMBINED-DATETIME|CONCATENATE|COS|CURRENT-DATE|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3381 | r'DATE-OF-INTEGER|DATE-TO-YYYYMMDD|DAY-OF-INTEGER|DAY-TO-YYYYDDD|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3382 | r'EXCEPTION-(?:FILE|LOCATION|STATEMENT|STATUS)|EXP10|EXP|E|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3383 | r'FACTORIAL|FRACTION-PART|INTEGER-OF-(?:DATE|DAY|PART)|INTEGER|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3384 | r'LENGTH|LOCALE-(?:DATE|TIME(?:-FROM-SECONDS)?)|LOG10|LOG|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3385 | r'LOWER-CASE|MAX|MEAN|MEDIAN|MIDRANGE|MIN|MOD|NUMVAL(?:-C)?|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3386 | r'ORD(?:-MAX|-MIN)?|PI|PRESENT-VALUE|RANDOM|RANGE|REM|REVERSE|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3387 | r'SECONDS-FROM-FORMATTED-TIME|SECONDS-PAST-MIDNIGHT|SIGN|SIN|SQRT|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3388 | r'STANDARD-DEVIATION|STORED-CHAR-LENGTH|SUBSTITUTE(?:-CASE)?|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3389 | r'SUM|TAN|TEST-DATE-YYYYMMDD|TEST-DAY-YYYYDDD|TRIM|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3390 | r'UPPER-CASE|VARIANCE|WHEN-COMPILED|YEAR-TO-YYYY)\s*' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3391 | r'($|(?=[^0-9a-z_\-]))', Name.Function), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3392 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3393 | # Booleans |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3394 | (r'(^|(?<=[^0-9a-z_\-]))(true|false)\s*($|(?=[^0-9a-z_\-]))', Name.Builtin), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3395 | # Comparing Operators |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3396 | (r'(^|(?<=[^0-9a-z_\-]))(equal|equals|ne|lt|le|gt|ge|' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3397 | r'greater|less|than|not|and|or)\s*($|(?=[^0-9a-z_\-]))', Operator.Word), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3398 | ], |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3399 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3400 | # \"[^\"\n]*\"|\'[^\'\n]*\' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3401 | 'strings': [ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3402 | # apparently strings can be delimited by EOL if they are continued |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3403 | # in the next line |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3404 | (r'"[^"\n]*("|\n)', String.Double), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3405 | (r"'[^'\n]*('|\n)", String.Single), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3406 | ], |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3407 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3408 | 'nums': [ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3409 | (r'\d+(\s*|\.$|$)', Number.Integer), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3410 | (r'[+-]?\d*\.\d+([eE][-+]?\d+)?', Number.Float), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3411 | (r'[+-]?\d+\.\d*([eE][-+]?\d+)?', Number.Float), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3412 | ], |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3413 | } |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3414 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3415 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3416 | class CobolFreeformatLexer(CobolLexer): |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3417 | """ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3418 | Lexer for Free format OpenCOBOL code. |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3419 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3420 | *New in Pygments 1.6.* |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3421 | """ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3422 | name = 'COBOLFree' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3423 | aliases = ['cobolfree'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3424 | filenames = ['*.cbl', '*.CBL'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3425 | mimetypes = [] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3426 | flags = re.IGNORECASE | re.MULTILINE |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3427 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3428 | tokens = { |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3429 | 'comment': [ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3430 | (r'(\*>.*\n|^\w*\*.*$)', Comment), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3431 | ], |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3432 | } |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3433 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3434 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3435 | class LogosLexer(ObjectiveCppLexer): |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3436 | """ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3437 | For Logos + Objective-C source code with preprocessor directives. |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3438 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3439 | *New in Pygments 1.6.* |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3440 | """ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3441 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3442 | name = 'Logos' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3443 | aliases = ['logos'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3444 | filenames = ['*.x', '*.xi', '*.xm', '*.xmi'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3445 | mimetypes = ['text/x-logos'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3446 | priority = 0.25 |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3447 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3448 | tokens = { |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3449 | 'statements': [ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3450 | (r'(%orig|%log)\b', Keyword), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3451 | (r'(%c)\b(\()(\s*)([a-zA-Z$_][a-zA-Z0-9$_]*)(\s*)(\))', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3452 | bygroups(Keyword, Punctuation, Text, Name.Class, Text, Punctuation)), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3453 | (r'(%init)\b(\()', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3454 | bygroups(Keyword, Punctuation), 'logos_init_directive'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3455 | (r'(%init)(?=\s*;)', bygroups(Keyword)), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3456 | (r'(%hook|%group)(\s+)([a-zA-Z$_][a-zA-Z0-9$_]+)', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3457 | bygroups(Keyword, Text, Name.Class), '#pop'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3458 | (r'(%subclass)(\s+)', bygroups(Keyword, Text), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3459 | ('#pop', 'logos_classname')), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3460 | inherit, |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3461 | ], |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3462 | 'logos_init_directive' : [ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3463 | ('\s+', Text), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3464 | (',', Punctuation, ('logos_init_directive', '#pop')), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3465 | ('([a-zA-Z$_][a-zA-Z0-9$_]*)(\s*)(=)(\s*)([^);]*)', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3466 | bygroups(Name.Class, Text, Punctuation, Text, Text)), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3467 | ('([a-zA-Z$_][a-zA-Z0-9$_]*)', Name.Class), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3468 | ('\)', Punctuation, '#pop'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3469 | ], |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3470 | 'logos_classname' : [ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3471 | ('([a-zA-Z$_][a-zA-Z0-9$_]*)(\s*:\s*)([a-zA-Z$_][a-zA-Z0-9$_]*)?', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3472 | bygroups(Name.Class, Text, Name.Class), '#pop'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3473 | ('([a-zA-Z$_][a-zA-Z0-9$_]*)', Name.Class, '#pop') |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3474 | ], |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3475 | 'root': [ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3476 | (r'(%subclass)(\s+)', bygroups(Keyword, Text), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3477 | 'logos_classname'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3478 | (r'(%hook|%group)(\s+)([a-zA-Z$_][a-zA-Z0-9$_]+)', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3479 | bygroups(Keyword, Text, Name.Class)), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3480 | (r'(%config)(\s*\(\s*)(\w+)(\s*=\s*)(.*?)(\s*\)\s*)', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3481 | bygroups(Keyword, Text, Name.Variable, Text, String, Text)), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3482 | (r'(%ctor)(\s*)({)', bygroups(Keyword, Text, Punctuation), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3483 | 'function'), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3484 | (r'(%new)(\s*)(\()(\s*.*?\s*)(\))', |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3485 | bygroups(Keyword, Text, Keyword, String, Keyword)), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3486 | (r'(\s*)(%end)(\s*)', bygroups(Text, Keyword, Text)), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3487 | inherit, |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3488 | ], |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3489 | } |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3490 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3491 | _logos_keywords = re.compile(r'%(?:hook|ctor|init|c\()') |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3492 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3493 | def analyse_text(text): |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3494 | if LogosLexer._logos_keywords.search(text): |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3495 | return 1.0 |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
3496 | return 0 |