ThirdParty/Pygments/pygments/lexers/other.py

Sun, 17 Feb 2013 19:07:15 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 17 Feb 2013 19:07:15 +0100
changeset 2426
da76c71624de
parent 1705
b0fbc9300f2b
child 2525
8b507a9a2d40
permissions
-rw-r--r--

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.other
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 other 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
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
13
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
14 from pygments.lexer import RegexLexer, include, bygroups, using, \
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
15 this, combined, ExtendedRegexLexer
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
16 from pygments.token import Error, Punctuation, Literal, Token, \
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
17 Text, Comment, Operator, Keyword, Name, String, Number, Generic
2426
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
18 from pygments.util import get_bool_opt
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
19 from pygments.lexers.web import HtmlLexer
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
20
2426
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
21 from pygments.lexers._openedgebuiltins import OPENEDGEKEYWORDS
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
22 from pygments.lexers._robotframeworklexer import RobotFrameworkLexer
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
23
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
24 # backwards compatibility
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
25 from pygments.lexers.sql import SqlLexer, MySqlLexer, SqliteConsoleLexer
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
26 from pygments.lexers.shell import BashLexer, BashSessionLexer, BatchLexer, \
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
27 TcshLexer
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
28
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
29 __all__ = ['BrainfuckLexer', 'BefungeLexer', 'RedcodeLexer', 'MOOCodeLexer',
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
30 'SmalltalkLexer', 'LogtalkLexer', 'GnuplotLexer', 'PovrayLexer',
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
31 'AppleScriptLexer', 'ModelicaLexer', 'RebolLexer', 'ABAPLexer',
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
32 'NewspeakLexer', 'GherkinLexer', 'AsymptoteLexer', 'PostScriptLexer',
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
33 'AutohotkeyLexer', 'GoodDataCLLexer', 'MaqlLexer', 'ProtoBufLexer',
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
34 'HybrisLexer', 'AwkLexer', 'Cfengine3Lexer', 'SnobolLexer',
2426
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
35 'ECLLexer', 'UrbiscriptLexer', 'OpenEdgeLexer', 'BroLexer',
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
36 'MscgenLexer', 'KconfigLexer', 'VGLLexer', 'SourcePawnLexer',
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
37 'RobotFrameworkLexer', 'PuppetLexer', 'NSISLexer', 'RPMSpecLexer',
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
38 'CbmBasicV2Lexer', 'AutoItLexer']
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
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
41 class ECLLexer(RegexLexer):
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
42 """
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
43 Lexer for the declarative big-data `ECL
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
44 <http://hpccsystems.com/community/docs/ecl-language-reference/html>`_
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
45 language.
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
46
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
47 *New in Pygments 1.5.*
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
48 """
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
49
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
50 name = 'ECL'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
51 aliases = ['ecl']
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
52 filenames = ['*.ecl']
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
53 mimetypes = ['application/x-ecl']
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
54
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
55 flags = re.IGNORECASE | re.MULTILINE
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
56
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
57 tokens = {
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
58 'root': [
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
59 include('whitespace'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
60 include('statements'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
61 ],
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
62 'whitespace': [
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
63 (r'\s+', Text),
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
64 (r'\/\/.*', Comment.Single),
2426
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
65 (r'/(\\\n)?\*(.|\n)*?\*(\\\n)?/', Comment.Multiline),
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
66 ],
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
67 'statements': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
68 include('types'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
69 include('keywords'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
70 include('functions'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
71 include('hash'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
72 (r'"', String, 'string'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
73 (r'\'', String, 'string'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
74 (r'(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*', Number.Float),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
75 (r'(\d+\.\d*|\.\d+|\d+[fF])[fF]?', Number.Float),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
76 (r'0x[0-9a-fA-F]+[LlUu]*', Number.Hex),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
77 (r'0[0-7]+[LlUu]*', Number.Oct),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
78 (r'\d+[LlUu]*', Number.Integer),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
79 (r'\*/', Error),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
80 (r'[~!%^&*+=|?:<>/-]+', Operator),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
81 (r'[{}()\[\],.;]', Punctuation),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
82 (r'[a-zA-Z_][a-zA-Z0-9_]*', Name),
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
83 ],
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
84 'hash': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
85 (r'^#.*$', Comment.Preproc),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
86 ],
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
87 'types': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
88 (r'(RECORD|END)\D', Keyword.Declaration),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
89 (r'((?:ASCII|BIG_ENDIAN|BOOLEAN|DATA|DECIMAL|EBCDIC|INTEGER|PATTERN|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
90 r'QSTRING|REAL|RECORD|RULE|SET OF|STRING|TOKEN|UDECIMAL|UNICODE|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
91 r'UNSIGNED|VARSTRING|VARUNICODE)\d*)(\s+)',
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
92 bygroups(Keyword.Type, Text)),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
93 ],
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
94 'keywords': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
95 (r'(APPLY|ASSERT|BUILD|BUILDINDEX|EVALUATE|FAIL|KEYDIFF|KEYPATCH|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
96 r'LOADXML|NOTHOR|NOTIFY|OUTPUT|PARALLEL|SEQUENTIAL|SOAPCALL|WAIT'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
97 r'CHECKPOINT|DEPRECATED|FAILCODE|FAILMESSAGE|FAILURE|GLOBAL|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
98 r'INDEPENDENT|ONWARNING|PERSIST|PRIORITY|RECOVERY|STORED|SUCCESS|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
99 r'WAIT|WHEN)\b', Keyword.Reserved),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
100 # These are classed differently, check later
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
101 (r'(ALL|AND|ANY|AS|ATMOST|BEFORE|BEGINC\+\+|BEST|BETWEEN|CASE|CONST|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
102 r'COUNTER|CSV|DESCEND|ENCRYPT|ENDC\+\+|ENDMACRO|EXCEPT|EXCLUSIVE|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
103 r'EXPIRE|EXPORT|EXTEND|FALSE|FEW|FIRST|FLAT|FULL|FUNCTION|GROUP|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
104 r'HEADER|HEADING|HOLE|IFBLOCK|IMPORT|IN|JOINED|KEEP|KEYED|LAST|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
105 r'LEFT|LIMIT|LOAD|LOCAL|LOCALE|LOOKUP|MACRO|MANY|MAXCOUNT|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
106 r'MAXLENGTH|MIN SKEW|MODULE|INTERFACE|NAMED|NOCASE|NOROOT|NOSCAN|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
107 r'NOSORT|NOT|OF|ONLY|OPT|OR|OUTER|OVERWRITE|PACKED|PARTITION|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
108 r'PENALTY|PHYSICALLENGTH|PIPE|QUOTE|RELATIONSHIP|REPEAT|RETURN|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
109 r'RIGHT|SCAN|SELF|SEPARATOR|SERVICE|SHARED|SKEW|SKIP|SQL|STORE|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
110 r'TERMINATOR|THOR|THRESHOLD|TOKEN|TRANSFORM|TRIM|TRUE|TYPE|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
111 r'UNICODEORDER|UNSORTED|VALIDATE|VIRTUAL|WHOLE|WILD|WITHIN|XML|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
112 r'XPATH|__COMPRESSED__)\b', Keyword.Reserved),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
113 ],
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
114 'functions': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
115 (r'(ABS|ACOS|ALLNODES|ASCII|ASIN|ASSTRING|ATAN|ATAN2|AVE|CASE|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
116 r'CHOOSE|CHOOSEN|CHOOSESETS|CLUSTERSIZE|COMBINE|CORRELATION|COS|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
117 r'COSH|COUNT|COVARIANCE|CRON|DATASET|DEDUP|DEFINE|DENORMALIZE|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
118 r'DISTRIBUTE|DISTRIBUTED|DISTRIBUTION|EBCDIC|ENTH|ERROR|EVALUATE|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
119 r'EVENT|EVENTEXTRA|EVENTNAME|EXISTS|EXP|FAILCODE|FAILMESSAGE|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
120 r'FETCH|FROMUNICODE|GETISVALID|GLOBAL|GRAPH|GROUP|HASH|HASH32|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
121 r'HASH64|HASHCRC|HASHMD5|HAVING|IF|INDEX|INTFORMAT|ISVALID|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
122 r'ITERATE|JOIN|KEYUNICODE|LENGTH|LIBRARY|LIMIT|LN|LOCAL|LOG|LOOP|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
123 r'MAP|MATCHED|MATCHLENGTH|MATCHPOSITION|MATCHTEXT|MATCHUNICODE|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
124 r'MAX|MERGE|MERGEJOIN|MIN|NOLOCAL|NONEMPTY|NORMALIZE|PARSE|PIPE|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
125 r'POWER|PRELOAD|PROCESS|PROJECT|PULL|RANDOM|RANGE|RANK|RANKED|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
126 r'REALFORMAT|RECORDOF|REGEXFIND|REGEXREPLACE|REGROUP|REJECTED|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
127 r'ROLLUP|ROUND|ROUNDUP|ROW|ROWDIFF|SAMPLE|SET|SIN|SINH|SIZEOF|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
128 r'SOAPCALL|SORT|SORTED|SQRT|STEPPED|STORED|SUM|TABLE|TAN|TANH|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
129 r'THISNODE|TOPN|TOUNICODE|TRANSFER|TRIM|TRUNCATE|TYPEOF|UNGROUP|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
130 r'UNICODEORDER|VARIANCE|WHICH|WORKUNIT|XMLDECODE|XMLENCODE|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
131 r'XMLTEXT|XMLUNICODE)\b', Name.Function),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
132 ],
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
133 'string': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
134 (r'"', String, '#pop'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
135 (r'\'', String, '#pop'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
136 (r'[^"\']+', String),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
137 ],
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
138 }
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
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
141 class BrainfuckLexer(RegexLexer):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
142 """
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
143 Lexer for the esoteric `BrainFuck <http://www.muppetlabs.com/~breadbox/bf/>`_
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
144 language.
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 name = 'Brainfuck'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
148 aliases = ['brainfuck', 'bf']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
149 filenames = ['*.bf', '*.b']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
150 mimetypes = ['application/x-brainfuck']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
151
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
152 tokens = {
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
153 'common': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
154 # use different colors for different instruction types
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
155 (r'[.,]+', Name.Tag),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
156 (r'[+-]+', Name.Builtin),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
157 (r'[<>]+', Name.Variable),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
158 (r'[^.,+\-<>\[\]]+', Comment),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
159 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
160 'root': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
161 (r'\[', Keyword, 'loop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
162 (r'\]', Error),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
163 include('common'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
164 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
165 'loop': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
166 (r'\[', Keyword, '#push'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
167 (r'\]', Keyword, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
168 include('common'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
169 ]
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
170 }
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
171
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
172
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
173 class BefungeLexer(RegexLexer):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
174 """
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
175 Lexer for the esoteric `Befunge <http://en.wikipedia.org/wiki/Befunge>`_
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
176 language.
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
177
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
178 *New in Pygments 0.7.*
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
179 """
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
180 name = 'Befunge'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
181 aliases = ['befunge']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
182 filenames = ['*.befunge']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
183 mimetypes = ['application/x-befunge']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
184
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
185 tokens = {
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
186 'root': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
187 (r'[0-9a-f]', Number),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
188 (r'[\+\*/%!`-]', Operator), # Traditional math
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
189 (r'[<>^v?\[\]rxjk]', Name.Variable), # Move, imperatives
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
190 (r'[:\\$.,n]', Name.Builtin), # Stack ops, imperatives
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
191 (r'[|_mw]', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
192 (r'[{}]', Name.Tag), # Befunge-98 stack ops
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
193 (r'".*?"', String.Double), # Strings don't appear to allow escapes
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
194 (r'\'.', String.Single), # Single character
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
195 (r'[#;]', Comment), # Trampoline... depends on direction hit
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
196 (r'[pg&~=@iotsy]', Keyword), # Misc
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
197 (r'[()A-Z]', Comment), # Fingerprints
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
198 (r'\s+', Text), # Whitespace doesn't matter
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
199 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
200 }
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
201
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
202
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
203 class RedcodeLexer(RegexLexer):
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 A simple Redcode lexer based on ICWS'94.
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
206 Contributed by Adam Blinkinsop <blinks@acm.org>.
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
207
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
208 *New in Pygments 0.8.*
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
209 """
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
210 name = 'Redcode'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
211 aliases = ['redcode']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
212 filenames = ['*.cw']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
213
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
214 opcodes = ['DAT','MOV','ADD','SUB','MUL','DIV','MOD',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
215 'JMP','JMZ','JMN','DJN','CMP','SLT','SPL',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
216 'ORG','EQU','END']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
217 modifiers = ['A','B','AB','BA','F','X','I']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
218
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
219 tokens = {
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
220 'root': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
221 # Whitespace:
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
222 (r'\s+', Text),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
223 (r';.*$', Comment.Single),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
224 # Lexemes:
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
225 # Identifiers
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
226 (r'\b(%s)\b' % '|'.join(opcodes), Name.Function),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
227 (r'\b(%s)\b' % '|'.join(modifiers), Name.Decorator),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
228 (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
229 # Operators
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
230 (r'[-+*/%]', Operator),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
231 (r'[#$@<>]', Operator), # mode
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
232 (r'[.,]', Punctuation), # mode
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
233 # Numbers
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
234 (r'[-+]?\d+', Number.Integer),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
235 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
236 }
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
237
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
238
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
239 class MOOCodeLexer(RegexLexer):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
240 """
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
241 For `MOOCode <http://www.moo.mud.org/>`_ (the MOO scripting
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
242 language).
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
243
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
244 *New in Pygments 0.9.*
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
245 """
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
246 name = 'MOOCode'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
247 filenames = ['*.moo']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
248 aliases = ['moocode']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
249 mimetypes = ['text/x-moocode']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
250
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
251 tokens = {
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
252 'root' : [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
253 # Numbers
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
254 (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
255 # Strings
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
256 (r'"(\\\\|\\"|[^"])*"', String),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
257 # exceptions
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
258 (r'(E_PERM|E_DIV)', Name.Exception),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
259 # db-refs
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
260 (r'((#[-0-9]+)|(\$[a-z_A-Z0-9]+))', Name.Entity),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
261 # Keywords
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
262 (r'\b(if|else|elseif|endif|for|endfor|fork|endfork|while'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
263 r'|endwhile|break|continue|return|try'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
264 r'|except|endtry|finally|in)\b', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
265 # builtins
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
266 (r'(random|length)', Name.Builtin),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
267 # special variables
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
268 (r'(player|caller|this|args)', Name.Variable.Instance),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
269 # skip whitespace
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
270 (r'\s+', Text),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
271 (r'\n', Text),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
272 # other operators
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
273 (r'([!;=,{}&\|:\.\[\]@\(\)\<\>\?]+)', Operator),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
274 # function call
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
275 (r'([a-z_A-Z0-9]+)(\()', bygroups(Name.Function, Operator)),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
276 # variables
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
277 (r'([a-zA-Z_0-9]+)', Text),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
278 ]
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
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
281
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
282 class SmalltalkLexer(RegexLexer):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
283 """
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
284 For `Smalltalk <http://www.smalltalk.org/>`_ syntax.
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
285 Contributed by Stefan Matthias Aust.
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
286 Rewritten by Nils Winter.
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
287
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
288 *New in Pygments 0.10.*
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
289 """
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
290 name = 'Smalltalk'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
291 filenames = ['*.st']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
292 aliases = ['smalltalk', 'squeak']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
293 mimetypes = ['text/x-smalltalk']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
294
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
295 tokens = {
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
296 'root' : [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
297 (r'(<)(\w+:)(.*?)(>)', bygroups(Text, Keyword, Text, Text)),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
298 include('squeak fileout'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
299 include('whitespaces'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
300 include('method definition'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
301 (r'(\|)([\w\s]*)(\|)', bygroups(Operator, Name.Variable, Operator)),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
302 include('objects'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
303 (r'\^|\:=|\_', Operator),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
304 # temporaries
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
305 (r'[\]({}.;!]', Text),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
306 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
307 'method definition' : [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
308 # Not perfect can't allow whitespaces at the beginning and the
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
309 # without breaking everything
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
310 (r'([a-zA-Z]+\w*:)(\s*)(\w+)',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
311 bygroups(Name.Function, Text, Name.Variable)),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
312 (r'^(\b[a-zA-Z]+\w*\b)(\s*)$', bygroups(Name.Function, Text)),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
313 (r'^([-+*/\\~<>=|&!?,@%]+)(\s*)(\w+)(\s*)$',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
314 bygroups(Name.Function, Text, Name.Variable, Text)),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
315 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
316 'blockvariables' : [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
317 include('whitespaces'),
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
318 (r'(:)(\s*)(\w+)',
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
319 bygroups(Operator, Text, Name.Variable)),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
320 (r'\|', Operator, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
321 (r'', Text, '#pop'), # else pop
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
322 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
323 'literals' : [
2426
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
324 (r"'(''|[^'])*'", String, 'afterobject'),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
325 (r'\$.', String.Char, 'afterobject'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
326 (r'#\(', String.Symbol, 'parenth'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
327 (r'\)', Text, 'afterobject'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
328 (r'(\d+r)?-?\d+(\.\d+)?(e-?\d+)?', Number, 'afterobject'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
329 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
330 '_parenth_helper' : [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
331 include('whitespaces'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
332 (r'(\d+r)?-?\d+(\.\d+)?(e-?\d+)?', Number),
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
333 (r'[-+*/\\~<>=|&#!?,@%\w:]+', String.Symbol),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
334 # literals
2426
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
335 (r"'(''|[^'])*'", String),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
336 (r'\$.', String.Char),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
337 (r'#*\(', String.Symbol, 'inner_parenth'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
338 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
339 'parenth' : [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
340 # This state is a bit tricky since
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
341 # we can't just pop this state
2426
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
342 (r'\)', String.Symbol, ('root', 'afterobject')),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
343 include('_parenth_helper'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
344 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
345 'inner_parenth': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
346 (r'\)', String.Symbol, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
347 include('_parenth_helper'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
348 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
349 'whitespaces' : [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
350 # skip whitespace and comments
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
351 (r'\s+', Text),
2426
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
352 (r'"(""|[^"])*"', Comment),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
353 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
354 'objects' : [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
355 (r'\[', Text, 'blockvariables'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
356 (r'\]', Text, 'afterobject'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
357 (r'\b(self|super|true|false|nil|thisContext)\b',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
358 Name.Builtin.Pseudo, 'afterobject'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
359 (r'\b[A-Z]\w*(?!:)\b', Name.Class, 'afterobject'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
360 (r'\b[a-z]\w*(?!:)\b', Name.Variable, 'afterobject'),
2426
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
361 (r'#("(""|[^"])*"|[-+*/\\~<>=|&!?,@%]+|[\w:]+)',
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
362 String.Symbol, 'afterobject'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
363 include('literals'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
364 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
365 'afterobject' : [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
366 (r'! !$', Keyword , '#pop'), # squeak chunk delimeter
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
367 include('whitespaces'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
368 (r'\b(ifTrue:|ifFalse:|whileTrue:|whileFalse:|timesRepeat:)',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
369 Name.Builtin, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
370 (r'\b(new\b(?!:))', Name.Builtin),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
371 (r'\:=|\_', Operator, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
372 (r'\b[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
373 (r'\b[a-zA-Z]+\w*', Name.Function),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
374 (r'\w+:?|[-+*/\\~<>=|&!?,@%]+', Name.Function, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
375 (r'\.', Punctuation, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
376 (r';', Punctuation),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
377 (r'[\])}]', Text),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
378 (r'[\[({]', Text, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
379 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
380 'squeak fileout' : [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
381 # Squeak fileout format (optional)
2426
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
382 (r'^"(""|[^"])*"!', Keyword),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
383 (r"^'(''|[^'])*'!", Keyword),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
384 (r'^(!)(\w+)( commentStamp: )(.*?)( prior: .*?!\n)(.*?)(!)',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
385 bygroups(Keyword, Name.Class, Keyword, String, Keyword, Text, Keyword)),
2426
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
386 (r"^(!)(\w+(?: class)?)( methodsFor: )('(?:''|[^'])*')(.*?!)",
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
387 bygroups(Keyword, Name.Class, Keyword, String, Keyword)),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
388 (r'^(\w+)( subclass: )(#\w+)'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
389 r'(\s+instanceVariableNames: )(.*?)'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
390 r'(\s+classVariableNames: )(.*?)'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
391 r'(\s+poolDictionaries: )(.*?)'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
392 r'(\s+category: )(.*?)(!)',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
393 bygroups(Name.Class, Keyword, String.Symbol, Keyword, String, Keyword,
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
394 String, Keyword, String, Keyword, String, Keyword)),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
395 (r'^(\w+(?: class)?)(\s+instanceVariableNames: )(.*?)(!)',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
396 bygroups(Name.Class, Keyword, String, Keyword)),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
397 (r'(!\n)(\].*)(! !)$', bygroups(Keyword, Text, Keyword)),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
398 (r'! !$', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
399 ],
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
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
402
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
403 class LogtalkLexer(RegexLexer):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
404 """
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
405 For `Logtalk <http://logtalk.org/>`_ source code.
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
406
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
407 *New in Pygments 0.10.*
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
408 """
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
409
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
410 name = 'Logtalk'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
411 aliases = ['logtalk']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
412 filenames = ['*.lgt']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
413 mimetypes = ['text/x-logtalk']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
414
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
415 tokens = {
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
416 'root': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
417 # Directives
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
418 (r'^\s*:-\s',Punctuation,'directive'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
419 # Comments
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
420 (r'%.*?\n', Comment),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
421 (r'/\*(.|\n)*?\*/',Comment),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
422 # Whitespace
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
423 (r'\n', Text),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
424 (r'\s+', Text),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
425 # Numbers
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
426 (r"0'.", Number),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
427 (r'0b[01]+', Number),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
428 (r'0o[0-7]+', Number),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
429 (r'0x[0-9a-fA-F]+', Number),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
430 (r'\d+\.?\d*((e|E)(\+|-)?\d+)?', Number),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
431 # Variables
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
432 (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
433 # Event handlers
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
434 (r'(after|before)(?=[(])', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
435 # Execution-context methods
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
436 (r'(parameter|this|se(lf|nder))(?=[(])', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
437 # Reflection
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
438 (r'(current_predicate|predicate_property)(?=[(])', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
439 # DCGs and term expansion
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
440 (r'(expand_(goal|term)|(goal|term)_expansion|phrase)(?=[(])',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
441 Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
442 # Entity
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
443 (r'(abolish|c(reate|urrent))_(object|protocol|category)(?=[(])',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
444 Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
445 (r'(object|protocol|category)_property(?=[(])', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
446 # Entity relations
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
447 (r'co(mplements_object|nforms_to_protocol)(?=[(])', Keyword),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
448 (r'extends_(object|protocol|category)(?=[(])', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
449 (r'imp(lements_protocol|orts_category)(?=[(])', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
450 (r'(instantiat|specializ)es_class(?=[(])', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
451 # Events
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
452 (r'(current_event|(abolish|define)_events)(?=[(])', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
453 # Flags
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
454 (r'(current|set)_logtalk_flag(?=[(])', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
455 # Compiling, loading, and library paths
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
456 (r'logtalk_(compile|l(ibrary_path|oad_context|oad))(?=[(])',
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
457 Keyword),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
458 # Database
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
459 (r'(clause|retract(all)?)(?=[(])', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
460 (r'a(bolish|ssert(a|z))(?=[(])', Keyword),
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
461 # Control constructs
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
462 (r'(ca(ll|tch)|throw)(?=[(])', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
463 (r'(fail|true)\b', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
464 # All solutions
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
465 (r'((bag|set)of|f(ind|or)all)(?=[(])', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
466 # Multi-threading meta-predicates
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
467 (r'threaded(_(call|once|ignore|exit|peek|wait|notify))?(?=[(])',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
468 Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
469 # Term unification
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
470 (r'unify_with_occurs_check(?=[(])', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
471 # Term creation and decomposition
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
472 (r'(functor|arg|copy_term|numbervars)(?=[(])', Keyword),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
473 # Evaluable functors
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
474 (r'(rem|mod|abs|sign)(?=[(])', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
475 (r'float(_(integer|fractional)_part)?(?=[(])', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
476 (r'(floor|truncate|round|ceiling)(?=[(])', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
477 # Other arithmetic functors
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
478 (r'(cos|atan|exp|log|s(in|qrt))(?=[(])', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
479 # Term testing
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
480 (r'(var|atom(ic)?|integer|float|c(allable|ompound)|n(onvar|umber)|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
481 r'ground)(?=[(])', Keyword),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
482 # Term comparison
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
483 (r'compare(?=[(])', Keyword),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
484 # Stream selection and control
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
485 (r'(curren|se)t_(in|out)put(?=[(])', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
486 (r'(open|close)(?=[(])', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
487 (r'flush_output(?=[(])', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
488 (r'(at_end_of_stream|flush_output)\b', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
489 (r'(stream_property|at_end_of_stream|set_stream_position)(?=[(])',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
490 Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
491 # Character and byte input/output
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
492 (r'(nl|(get|peek|put)_(byte|c(har|ode)))(?=[(])', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
493 (r'\bnl\b', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
494 # Term input/output
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
495 (r'read(_term)?(?=[(])', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
496 (r'write(q|_(canonical|term))?(?=[(])', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
497 (r'(current_)?op(?=[(])', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
498 (r'(current_)?char_conversion(?=[(])', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
499 # Atomic term processing
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
500 (r'atom_(length|c(hars|o(ncat|des)))(?=[(])', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
501 (r'(char_code|sub_atom)(?=[(])', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
502 (r'number_c(har|ode)s(?=[(])', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
503 # Implementation defined hooks functions
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
504 (r'(se|curren)t_prolog_flag(?=[(])', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
505 (r'\bhalt\b', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
506 (r'halt(?=[(])', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
507 # Message sending operators
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
508 (r'(::|:|\^\^)', Operator),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
509 # External call
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
510 (r'[{}]', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
511 # Logic and control
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
512 (r'\b(ignore|once)(?=[(])', Keyword),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
513 (r'\brepeat\b', Keyword),
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
514 # Sorting
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
515 (r'(key)?sort(?=[(])', Keyword),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
516 # Bitwise functors
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
517 (r'(>>|<<|/\\|\\\\|\\)', Operator),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
518 # Arithemtic evaluation
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
519 (r'\bis\b', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
520 # Arithemtic comparison
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
521 (r'(=:=|=\\=|<|=<|>=|>)', Operator),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
522 # Term creation and decomposition
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
523 (r'=\.\.', Operator),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
524 # Term unification
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
525 (r'(=|\\=)', Operator),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
526 # Term comparison
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
527 (r'(==|\\==|@=<|@<|@>=|@>)', Operator),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
528 # Evaluable functors
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
529 (r'(//|[-+*/])', Operator),
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
530 (r'\b(e|pi|mod|rem)\b', Operator),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
531 # Other arithemtic functors
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
532 (r'\b\*\*\b', Operator),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
533 # DCG rules
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
534 (r'-->', Operator),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
535 # Control constructs
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
536 (r'([!;]|->)', Operator),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
537 # Logic and control
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
538 (r'\\+', Operator),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
539 # Mode operators
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
540 (r'[?@]', Operator),
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
541 # Existential quantifier
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
542 (r'\^', Operator),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
543 # Strings
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
544 (r'"(\\\\|\\"|[^"])*"', String),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
545 # Ponctuation
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
546 (r'[()\[\],.|]', Text),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
547 # Atoms
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
548 (r"[a-z][a-zA-Z0-9_]*", Text),
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
549 (r"'", String, 'quoted_atom'),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
550 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
551
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
552 'quoted_atom': [
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
553 (r"''", String),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
554 (r"'", String, '#pop'),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
555 (r'\\([\\abfnrtv"\']|(x[a-fA-F0-9]+|[0-7]+)\\)', String.Escape),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
556 (r"[^\\'\n]+", String),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
557 (r'\\', String),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
558 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
559
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
560 'directive': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
561 # Conditional compilation directives
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
562 (r'(el)?if(?=[(])', Keyword, 'root'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
563 (r'(e(lse|ndif))[.]', Keyword, 'root'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
564 # Entity directives
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
565 (r'(category|object|protocol)(?=[(])', Keyword, 'entityrelations'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
566 (r'(end_(category|object|protocol))[.]',Keyword, 'root'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
567 # Predicate scope directives
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
568 (r'(public|protected|private)(?=[(])', Keyword, 'root'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
569 # Other directives
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
570 (r'e(n(coding|sure_loaded)|xport)(?=[(])', Keyword, 'root'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
571 (r'in(fo|itialization)(?=[(])', Keyword, 'root'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
572 (r'(dynamic|synchronized|threaded)[.]', Keyword, 'root'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
573 (r'(alias|d(ynamic|iscontiguous)|m(eta_predicate|ode|ultifile)|'
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
574 r's(et_(logtalk|prolog)_flag|ynchronized))(?=[(])',
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
575 Keyword, 'root'),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
576 (r'op(?=[(])', Keyword, 'root'),
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
577 (r'(c(alls|oinductive)|reexport|use(s|_module))(?=[(])',
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
578 Keyword, 'root'),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
579 (r'[a-z][a-zA-Z0-9_]*(?=[(])', Text, 'root'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
580 (r'[a-z][a-zA-Z0-9_]*[.]', Text, 'root'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
581 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
582
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
583 'entityrelations': [
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
584 (r'(complements|extends|i(nstantiates|mp(lements|orts))|specializes)'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
585 r'(?=[(])', Keyword),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
586 # Numbers
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
587 (r"0'.", Number),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
588 (r'0b[01]+', Number),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
589 (r'0o[0-7]+', Number),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
590 (r'0x[0-9a-fA-F]+', Number),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
591 (r'\d+\.?\d*((e|E)(\+|-)?\d+)?', Number),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
592 # Variables
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
593 (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
594 # Atoms
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
595 (r"[a-z][a-zA-Z0-9_]*", Text),
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
596 (r"'", String, 'quoted_atom'),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
597 # Strings
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
598 (r'"(\\\\|\\"|[^"])*"', String),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
599 # End of entity-opening directive
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
600 (r'([)]\.)', Text, 'root'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
601 # Scope operator
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
602 (r'(::)', Operator),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
603 # Ponctuation
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
604 (r'[()\[\],.|]', Text),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
605 # Comments
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
606 (r'%.*?\n', Comment),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
607 (r'/\*(.|\n)*?\*/',Comment),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
608 # Whitespace
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
609 (r'\n', Text),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
610 (r'\s+', Text),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
611 ]
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
612 }
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
613
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
614 def analyse_text(text):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
615 if ':- object(' in text:
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
616 return True
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
617 if ':- protocol(' in text:
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
618 return True
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
619 if ':- category(' in text:
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
620 return True
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
621 return False
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
622
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
623
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
624 def _shortened(word):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
625 dpos = word.find('$')
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
626 return '|'.join([word[:dpos] + word[dpos+1:i] + r'\b'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
627 for i in range(len(word), dpos, -1)])
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
628 def _shortened_many(*words):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
629 return '|'.join(map(_shortened, words))
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
630
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
631 class GnuplotLexer(RegexLexer):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
632 """
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
633 For `Gnuplot <http://gnuplot.info/>`_ plotting scripts.
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
634
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
635 *New in Pygments 0.11.*
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
636 """
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
637
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
638 name = 'Gnuplot'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
639 aliases = ['gnuplot']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
640 filenames = ['*.plot', '*.plt']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
641 mimetypes = ['text/x-gnuplot']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
642
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
643 tokens = {
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
644 'root': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
645 include('whitespace'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
646 (_shortened('bi$nd'), Keyword, 'bind'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
647 (_shortened_many('ex$it', 'q$uit'), Keyword, 'quit'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
648 (_shortened('f$it'), Keyword, 'fit'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
649 (r'(if)(\s*)(\()', bygroups(Keyword, Text, Punctuation), 'if'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
650 (r'else\b', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
651 (_shortened('pa$use'), Keyword, 'pause'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
652 (_shortened_many('p$lot', 'rep$lot', 'sp$lot'), Keyword, 'plot'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
653 (_shortened('sa$ve'), Keyword, 'save'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
654 (_shortened('se$t'), Keyword, ('genericargs', 'optionarg')),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
655 (_shortened_many('sh$ow', 'uns$et'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
656 Keyword, ('noargs', 'optionarg')),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
657 (_shortened_many('low$er', 'ra$ise', 'ca$ll', 'cd$', 'cl$ear',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
658 'h$elp', '\\?$', 'hi$story', 'l$oad', 'pr$int',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
659 'pwd$', 're$read', 'res$et', 'scr$eendump',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
660 'she$ll', 'sy$stem', 'up$date'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
661 Keyword, 'genericargs'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
662 (_shortened_many('pwd$', 're$read', 'res$et', 'scr$eendump',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
663 'she$ll', 'test$'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
664 Keyword, 'noargs'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
665 ('([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
666 bygroups(Name.Variable, Text, Operator), 'genericargs'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
667 ('([a-zA-Z_][a-zA-Z0-9_]*)(\s*\(.*?\)\s*)(=)',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
668 bygroups(Name.Function, Text, Operator), 'genericargs'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
669 (r'@[a-zA-Z_][a-zA-Z0-9_]*', Name.Constant), # macros
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
670 (r';', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
671 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
672 'comment': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
673 (r'[^\\\n]', Comment),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
674 (r'\\\n', Comment),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
675 (r'\\', Comment),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
676 # don't add the newline to the Comment token
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
677 ('', Comment, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
678 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
679 'whitespace': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
680 ('#', Comment, 'comment'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
681 (r'[ \t\v\f]+', Text),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
682 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
683 'noargs': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
684 include('whitespace'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
685 # semicolon and newline end the argument list
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
686 (r';', Punctuation, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
687 (r'\n', Text, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
688 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
689 'dqstring': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
690 (r'"', String, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
691 (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
692 (r'[^\\"\n]+', String), # all other characters
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
693 (r'\\\n', String), # line continuation
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
694 (r'\\', String), # stray backslash
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
695 (r'\n', String, '#pop'), # newline ends the string too
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
696 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
697 'sqstring': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
698 (r"''", String), # escaped single quote
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
699 (r"'", String, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
700 (r"[^\\'\n]+", String), # all other characters
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
701 (r'\\\n', String), # line continuation
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
702 (r'\\', String), # normal backslash
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
703 (r'\n', String, '#pop'), # newline ends the string too
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
704 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
705 'genericargs': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
706 include('noargs'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
707 (r'"', String, 'dqstring'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
708 (r"'", String, 'sqstring'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
709 (r'(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+', Number.Float),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
710 (r'(\d+\.\d*|\.\d+)', Number.Float),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
711 (r'-?\d+', Number.Integer),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
712 ('[,.~!%^&*+=|?:<>/-]', Operator),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
713 ('[{}()\[\]]', Punctuation),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
714 (r'(eq|ne)\b', Operator.Word),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
715 (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
716 bygroups(Name.Function, Text, Punctuation)),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
717 (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
718 (r'@[a-zA-Z_][a-zA-Z0-9_]*', Name.Constant), # macros
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
719 (r'\\\n', Text),
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 'optionarg': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
722 include('whitespace'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
723 (_shortened_many(
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
724 "a$ll","an$gles","ar$row","au$toscale","b$ars","bor$der",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
725 "box$width","cl$abel","c$lip","cn$trparam","co$ntour","da$ta",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
726 "data$file","dg$rid3d","du$mmy","enc$oding","dec$imalsign",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
727 "fit$","font$path","fo$rmat","fu$nction","fu$nctions","g$rid",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
728 "hid$den3d","his$torysize","is$osamples","k$ey","keyt$itle",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
729 "la$bel","li$nestyle","ls$","loa$dpath","loc$ale","log$scale",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
730 "mac$ros","map$ping","map$ping3d","mar$gin","lmar$gin",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
731 "rmar$gin","tmar$gin","bmar$gin","mo$use","multi$plot",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
732 "mxt$ics","nomxt$ics","mx2t$ics","nomx2t$ics","myt$ics",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
733 "nomyt$ics","my2t$ics","nomy2t$ics","mzt$ics","nomzt$ics",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
734 "mcbt$ics","nomcbt$ics","of$fsets","or$igin","o$utput",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
735 "pa$rametric","pm$3d","pal$ette","colorb$ox","p$lot",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
736 "poi$ntsize","pol$ar","pr$int","obj$ect","sa$mples","si$ze",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
737 "st$yle","su$rface","table$","t$erminal","termo$ptions","ti$cs",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
738 "ticsc$ale","ticsl$evel","timef$mt","tim$estamp","tit$le",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
739 "v$ariables","ve$rsion","vi$ew","xyp$lane","xda$ta","x2da$ta",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
740 "yda$ta","y2da$ta","zda$ta","cbda$ta","xl$abel","x2l$abel",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
741 "yl$abel","y2l$abel","zl$abel","cbl$abel","xti$cs","noxti$cs",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
742 "x2ti$cs","nox2ti$cs","yti$cs","noyti$cs","y2ti$cs","noy2ti$cs",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
743 "zti$cs","nozti$cs","cbti$cs","nocbti$cs","xdti$cs","noxdti$cs",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
744 "x2dti$cs","nox2dti$cs","ydti$cs","noydti$cs","y2dti$cs",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
745 "noy2dti$cs","zdti$cs","nozdti$cs","cbdti$cs","nocbdti$cs",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
746 "xmti$cs","noxmti$cs","x2mti$cs","nox2mti$cs","ymti$cs",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
747 "noymti$cs","y2mti$cs","noy2mti$cs","zmti$cs","nozmti$cs",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
748 "cbmti$cs","nocbmti$cs","xr$ange","x2r$ange","yr$ange",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
749 "y2r$ange","zr$ange","cbr$ange","rr$ange","tr$ange","ur$ange",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
750 "vr$ange","xzeroa$xis","x2zeroa$xis","yzeroa$xis","y2zeroa$xis",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
751 "zzeroa$xis","zeroa$xis","z$ero"), Name.Builtin, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
752 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
753 'bind': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
754 ('!', Keyword, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
755 (_shortened('all$windows'), Name.Builtin),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
756 include('genericargs'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
757 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
758 'quit': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
759 (r'gnuplot\b', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
760 include('noargs'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
761 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
762 'fit': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
763 (r'via\b', Name.Builtin),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
764 include('plot'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
765 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
766 'if': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
767 (r'\)', Punctuation, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
768 include('genericargs'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
769 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
770 'pause': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
771 (r'(mouse|any|button1|button2|button3)\b', Name.Builtin),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
772 (_shortened('key$press'), Name.Builtin),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
773 include('genericargs'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
774 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
775 'plot': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
776 (_shortened_many('ax$es', 'axi$s', 'bin$ary', 'ev$ery', 'i$ndex',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
777 'mat$rix', 's$mooth', 'thru$', 't$itle',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
778 'not$itle', 'u$sing', 'w$ith'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
779 Name.Builtin),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
780 include('genericargs'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
781 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
782 'save': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
783 (_shortened_many('f$unctions', 's$et', 't$erminal', 'v$ariables'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
784 Name.Builtin),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
785 include('genericargs'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
786 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
787 }
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
788
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
789
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
790 class PovrayLexer(RegexLexer):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
791 """
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
792 For `Persistence of Vision Raytracer <http://www.povray.org/>`_ files.
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
793
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
794 *New in Pygments 0.11.*
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
795 """
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
796 name = 'POVRay'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
797 aliases = ['pov']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
798 filenames = ['*.pov', '*.inc']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
799 mimetypes = ['text/x-povray']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
800
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
801 tokens = {
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
802 'root': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
803 (r'/\*[\w\W]*?\*/', Comment.Multiline),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
804 (r'//.*\n', Comment.Single),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
805 (r'(?s)"(?:\\.|[^"\\])+"', String.Double),
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
806 (r'#(debug|default|else|end|error|fclose|fopen|ifdef|ifndef|'
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
807 r'include|range|read|render|statistics|switch|undef|version|'
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
808 r'warning|while|write|define|macro|local|declare)\b',
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
809 Comment.Preproc),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
810 (r'\b(aa_level|aa_threshold|abs|acos|acosh|adaptive|adc_bailout|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
811 r'agate|agate_turb|all|alpha|ambient|ambient_light|angle|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
812 r'aperture|arc_angle|area_light|asc|asin|asinh|assumed_gamma|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
813 r'atan|atan2|atanh|atmosphere|atmospheric_attenuation|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
814 r'attenuating|average|background|black_hole|blue|blur_samples|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
815 r'bounded_by|box_mapping|bozo|break|brick|brick_size|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
816 r'brightness|brilliance|bumps|bumpy1|bumpy2|bumpy3|bump_map|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
817 r'bump_size|case|caustics|ceil|checker|chr|clipped_by|clock|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
818 r'color|color_map|colour|colour_map|component|composite|concat|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
819 r'confidence|conic_sweep|constant|control0|control1|cos|cosh|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
820 r'count|crackle|crand|cube|cubic_spline|cylindrical_mapping|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
821 r'debug|declare|default|degrees|dents|diffuse|direction|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
822 r'distance|distance_maximum|div|dust|dust_type|eccentricity|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
823 r'else|emitting|end|error|error_bound|exp|exponent|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
824 r'fade_distance|fade_power|falloff|falloff_angle|false|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
825 r'file_exists|filter|finish|fisheye|flatness|flip|floor|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
826 r'focal_point|fog|fog_alt|fog_offset|fog_type|frequency|gif|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
827 r'global_settings|glowing|gradient|granite|gray_threshold|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
828 r'green|halo|hexagon|hf_gray_16|hierarchy|hollow|hypercomplex|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
829 r'if|ifdef|iff|image_map|incidence|include|int|interpolate|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
830 r'inverse|ior|irid|irid_wavelength|jitter|lambda|leopard|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
831 r'linear|linear_spline|linear_sweep|location|log|looks_like|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
832 r'look_at|low_error_factor|mandel|map_type|marble|material_map|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
833 r'matrix|max|max_intersections|max_iteration|max_trace_level|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
834 r'max_value|metallic|min|minimum_reuse|mod|mortar|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
835 r'nearest_count|no|normal|normal_map|no_shadow|number_of_waves|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
836 r'octaves|off|offset|omega|omnimax|on|once|onion|open|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
837 r'orthographic|panoramic|pattern1|pattern2|pattern3|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
838 r'perspective|pgm|phase|phong|phong_size|pi|pigment|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
839 r'pigment_map|planar_mapping|png|point_at|pot|pow|ppm|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
840 r'precision|pwr|quadratic_spline|quaternion|quick_color|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
841 r'quick_colour|quilted|radial|radians|radiosity|radius|rainbow|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
842 r'ramp_wave|rand|range|reciprocal|recursion_limit|red|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
843 r'reflection|refraction|render|repeat|rgb|rgbf|rgbft|rgbt|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
844 r'right|ripples|rotate|roughness|samples|scale|scallop_wave|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
845 r'scattering|seed|shadowless|sin|sine_wave|sinh|sky|sky_sphere|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
846 r'slice|slope_map|smooth|specular|spherical_mapping|spiral|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
847 r'spiral1|spiral2|spotlight|spotted|sqr|sqrt|statistics|str|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
848 r'strcmp|strength|strlen|strlwr|strupr|sturm|substr|switch|sys|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
849 r't|tan|tanh|test_camera_1|test_camera_2|test_camera_3|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
850 r'test_camera_4|texture|texture_map|tga|thickness|threshold|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
851 r'tightness|tile2|tiles|track|transform|translate|transmit|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
852 r'triangle_wave|true|ttf|turbulence|turb_depth|type|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
853 r'ultra_wide_angle|up|use_color|use_colour|use_index|u_steps|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
854 r'val|variance|vaxis_rotate|vcross|vdot|version|vlength|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
855 r'vnormalize|volume_object|volume_rendered|vol_with_light|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
856 r'vrotate|v_steps|warning|warp|water_level|waves|while|width|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
857 r'wood|wrinkles|yes)\b', Keyword),
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
858 (r'(bicubic_patch|blob|box|camera|cone|cubic|cylinder|difference|'
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
859 r'disc|height_field|intersection|julia_fractal|lathe|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
860 r'light_source|merge|mesh|object|plane|poly|polygon|prism|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
861 r'quadric|quartic|smooth_triangle|sor|sphere|superellipsoid|'
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
862 r'text|torus|triangle|union)\b', Name.Builtin),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
863 # TODO: <=, etc
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
864 (r'[\[\](){}<>;,]', Punctuation),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
865 (r'[-+*/=]', Operator),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
866 (r'\b(x|y|z|u|v)\b', Name.Builtin.Pseudo),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
867 (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
868 (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
869 (r'\.[0-9]+', Number.Float),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
870 (r'[0-9]+', Number.Integer),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
871 (r'\s+', Text),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
872 ]
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
873 }
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
874
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
875
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
876 class AppleScriptLexer(RegexLexer):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
877 """
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
878 For `AppleScript source code
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
879 <http://developer.apple.com/documentation/AppleScript/
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
880 Conceptual/AppleScriptLangGuide>`_,
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
881 including `AppleScript Studio
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
882 <http://developer.apple.com/documentation/AppleScript/
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
883 Reference/StudioReference>`_.
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
884 Contributed by Andreas Amann <aamann@mac.com>.
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
885 """
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
886
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
887 name = 'AppleScript'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
888 aliases = ['applescript']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
889 filenames = ['*.applescript']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
890
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
891 flags = re.MULTILINE | re.DOTALL
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
892
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
893 Identifiers = r'[a-zA-Z]\w*'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
894 Literals = ['AppleScript', 'current application', 'false', 'linefeed',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
895 'missing value', 'pi','quote', 'result', 'return', 'space',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
896 'tab', 'text item delimiters', 'true', 'version']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
897 Classes = ['alias ', 'application ', 'boolean ', 'class ', 'constant ',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
898 'date ', 'file ', 'integer ', 'list ', 'number ', 'POSIX file ',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
899 'real ', 'record ', 'reference ', 'RGB color ', 'script ',
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
900 'text ', 'unit types', '(?:Unicode )?text', 'string']
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
901 BuiltIn = ['attachment', 'attribute run', 'character', 'day', 'month',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
902 'paragraph', 'word', 'year']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
903 HandlerParams = ['about', 'above', 'against', 'apart from', 'around',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
904 'aside from', 'at', 'below', 'beneath', 'beside',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
905 'between', 'for', 'given', 'instead of', 'on', 'onto',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
906 'out of', 'over', 'since']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
907 Commands = ['ASCII (character|number)', 'activate', 'beep', 'choose URL',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
908 'choose application', 'choose color', 'choose file( name)?',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
909 'choose folder', 'choose from list',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
910 'choose remote application', 'clipboard info',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
911 'close( access)?', 'copy', 'count', 'current date', 'delay',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
912 'delete', 'display (alert|dialog)', 'do shell script',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
913 'duplicate', 'exists', 'get eof', 'get volume settings',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
914 'info for', 'launch', 'list (disks|folder)', 'load script',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
915 'log', 'make', 'mount volume', 'new', 'offset',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
916 'open( (for access|location))?', 'path to', 'print', 'quit',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
917 'random number', 'read', 'round', 'run( script)?',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
918 'say', 'scripting components',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
919 'set (eof|the clipboard to|volume)', 'store script',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
920 'summarize', 'system attribute', 'system info',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
921 'the clipboard', 'time to GMT', 'write', 'quoted form']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
922 References = ['(in )?back of', '(in )?front of', '[0-9]+(st|nd|rd|th)',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
923 'first', 'second', 'third', 'fourth', 'fifth', 'sixth',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
924 'seventh', 'eighth', 'ninth', 'tenth', 'after', 'back',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
925 'before', 'behind', 'every', 'front', 'index', 'last',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
926 'middle', 'some', 'that', 'through', 'thru', 'where', 'whose']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
927 Operators = ["and", "or", "is equal", "equals", "(is )?equal to", "is not",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
928 "isn't", "isn't equal( to)?", "is not equal( to)?",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
929 "doesn't equal", "does not equal", "(is )?greater than",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
930 "comes after", "is not less than or equal( to)?",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
931 "isn't less than or equal( to)?", "(is )?less than",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
932 "comes before", "is not greater than or equal( to)?",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
933 "isn't greater than or equal( to)?",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
934 "(is )?greater than or equal( to)?", "is not less than",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
935 "isn't less than", "does not come before",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
936 "doesn't come before", "(is )?less than or equal( to)?",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
937 "is not greater than", "isn't greater than",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
938 "does not come after", "doesn't come after", "starts? with",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
939 "begins? with", "ends? with", "contains?", "does not contain",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
940 "doesn't contain", "is in", "is contained by", "is not in",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
941 "is not contained by", "isn't contained by", "div", "mod",
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
942 "not", "(a )?(ref( to)?|reference to)", "is", "does"]
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
943 Control = ['considering', 'else', 'error', 'exit', 'from', 'if',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
944 'ignoring', 'in', 'repeat', 'tell', 'then', 'times', 'to',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
945 'try', 'until', 'using terms from', 'while', 'whith',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
946 'with timeout( of)?', 'with transaction', 'by', 'continue',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
947 'end', 'its?', 'me', 'my', 'return', 'of' , 'as']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
948 Declarations = ['global', 'local', 'prop(erty)?', 'set', 'get']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
949 Reserved = ['but', 'put', 'returning', 'the']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
950 StudioClasses = ['action cell', 'alert reply', 'application', 'box',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
951 'browser( cell)?', 'bundle', 'button( cell)?', 'cell',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
952 'clip view', 'color well', 'color-panel',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
953 'combo box( item)?', 'control',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
954 'data( (cell|column|item|row|source))?', 'default entry',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
955 'dialog reply', 'document', 'drag info', 'drawer',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
956 'event', 'font(-panel)?', 'formatter',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
957 'image( (cell|view))?', 'matrix', 'menu( item)?', 'item',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
958 'movie( view)?', 'open-panel', 'outline view', 'panel',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
959 'pasteboard', 'plugin', 'popup button',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
960 'progress indicator', 'responder', 'save-panel',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
961 'scroll view', 'secure text field( cell)?', 'slider',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
962 'sound', 'split view', 'stepper', 'tab view( item)?',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
963 'table( (column|header cell|header view|view))',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
964 'text( (field( cell)?|view))?', 'toolbar( item)?',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
965 'user-defaults', 'view', 'window']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
966 StudioEvents = ['accept outline drop', 'accept table drop', 'action',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
967 'activated', 'alert ended', 'awake from nib', 'became key',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
968 'became main', 'begin editing', 'bounds changed',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
969 'cell value', 'cell value changed', 'change cell value',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
970 'change item value', 'changed', 'child of item',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
971 'choose menu item', 'clicked', 'clicked toolbar item',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
972 'closed', 'column clicked', 'column moved',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
973 'column resized', 'conclude drop', 'data representation',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
974 'deminiaturized', 'dialog ended', 'document nib name',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
975 'double clicked', 'drag( (entered|exited|updated))?',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
976 'drop', 'end editing', 'exposed', 'idle', 'item expandable',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
977 'item value', 'item value changed', 'items changed',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
978 'keyboard down', 'keyboard up', 'launched',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
979 'load data representation', 'miniaturized', 'mouse down',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
980 'mouse dragged', 'mouse entered', 'mouse exited',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
981 'mouse moved', 'mouse up', 'moved',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
982 'number of browser rows', 'number of items',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
983 'number of rows', 'open untitled', 'opened', 'panel ended',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
984 'parameters updated', 'plugin loaded', 'prepare drop',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
985 'prepare outline drag', 'prepare outline drop',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
986 'prepare table drag', 'prepare table drop',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
987 'read from file', 'resigned active', 'resigned key',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
988 'resigned main', 'resized( sub views)?',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
989 'right mouse down', 'right mouse dragged',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
990 'right mouse up', 'rows changed', 'scroll wheel',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
991 'selected tab view item', 'selection changed',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
992 'selection changing', 'should begin editing',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
993 'should close', 'should collapse item',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
994 'should end editing', 'should expand item',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
995 'should open( untitled)?',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
996 'should quit( after last window closed)?',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
997 'should select column', 'should select item',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
998 'should select row', 'should select tab view item',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
999 'should selection change', 'should zoom', 'shown',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1000 'update menu item', 'update parameters',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1001 'update toolbar item', 'was hidden', 'was miniaturized',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1002 'will become active', 'will close', 'will dismiss',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1003 'will display browser cell', 'will display cell',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1004 'will display item cell', 'will display outline cell',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1005 'will finish launching', 'will hide', 'will miniaturize',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1006 'will move', 'will open', 'will pop up', 'will quit',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1007 'will resign active', 'will resize( sub views)?',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1008 'will select tab view item', 'will show', 'will zoom',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1009 'write to file', 'zoomed']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1010 StudioCommands = ['animate', 'append', 'call method', 'center',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1011 'close drawer', 'close panel', 'display',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1012 'display alert', 'display dialog', 'display panel', 'go',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1013 'hide', 'highlight', 'increment', 'item for',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1014 'load image', 'load movie', 'load nib', 'load panel',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1015 'load sound', 'localized string', 'lock focus', 'log',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1016 'open drawer', 'path for', 'pause', 'perform action',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1017 'play', 'register', 'resume', 'scroll', 'select( all)?',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1018 'show', 'size to fit', 'start', 'step back',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1019 'step forward', 'stop', 'synchronize', 'unlock focus',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1020 'update']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1021 StudioProperties = ['accepts arrow key', 'action method', 'active',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1022 'alignment', 'allowed identifiers',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1023 'allows branch selection', 'allows column reordering',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1024 'allows column resizing', 'allows column selection',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1025 'allows customization',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1026 'allows editing text attributes',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1027 'allows empty selection', 'allows mixed state',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1028 'allows multiple selection', 'allows reordering',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1029 'allows undo', 'alpha( value)?', 'alternate image',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1030 'alternate increment value', 'alternate title',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1031 'animation delay', 'associated file name',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1032 'associated object', 'auto completes', 'auto display',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1033 'auto enables items', 'auto repeat',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1034 'auto resizes( outline column)?',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1035 'auto save expanded items', 'auto save name',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1036 'auto save table columns', 'auto saves configuration',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1037 'auto scroll', 'auto sizes all columns to fit',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1038 'auto sizes cells', 'background color', 'bezel state',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1039 'bezel style', 'bezeled', 'border rect', 'border type',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1040 'bordered', 'bounds( rotation)?', 'box type',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1041 'button returned', 'button type',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1042 'can choose directories', 'can choose files',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1043 'can draw', 'can hide',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1044 'cell( (background color|size|type))?', 'characters',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1045 'class', 'click count', 'clicked( data)? column',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1046 'clicked data item', 'clicked( data)? row',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1047 'closeable', 'collating', 'color( (mode|panel))',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1048 'command key down', 'configuration',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1049 'content(s| (size|view( margins)?))?', 'context',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1050 'continuous', 'control key down', 'control size',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1051 'control tint', 'control view',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1052 'controller visible', 'coordinate system',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1053 'copies( on scroll)?', 'corner view', 'current cell',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1054 'current column', 'current( field)? editor',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1055 'current( menu)? item', 'current row',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1056 'current tab view item', 'data source',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1057 'default identifiers', 'delta (x|y|z)',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1058 'destination window', 'directory', 'display mode',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1059 'displayed cell', 'document( (edited|rect|view))?',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1060 'double value', 'dragged column', 'dragged distance',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1061 'dragged items', 'draws( cell)? background',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1062 'draws grid', 'dynamically scrolls', 'echos bullets',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1063 'edge', 'editable', 'edited( data)? column',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1064 'edited data item', 'edited( data)? row', 'enabled',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1065 'enclosing scroll view', 'ending page',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1066 'error handling', 'event number', 'event type',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1067 'excluded from windows menu', 'executable path',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1068 'expanded', 'fax number', 'field editor', 'file kind',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1069 'file name', 'file type', 'first responder',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1070 'first visible column', 'flipped', 'floating',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1071 'font( panel)?', 'formatter', 'frameworks path',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1072 'frontmost', 'gave up', 'grid color', 'has data items',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1073 'has horizontal ruler', 'has horizontal scroller',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1074 'has parent data item', 'has resize indicator',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1075 'has shadow', 'has sub menu', 'has vertical ruler',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1076 'has vertical scroller', 'header cell', 'header view',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1077 'hidden', 'hides when deactivated', 'highlights by',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1078 'horizontal line scroll', 'horizontal page scroll',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1079 'horizontal ruler view', 'horizontally resizable',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1080 'icon image', 'id', 'identifier',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1081 'ignores multiple clicks',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1082 'image( (alignment|dims when disabled|frame style|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1083 'scaling))?',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1084 'imports graphics', 'increment value',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1085 'indentation per level', 'indeterminate', 'index',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1086 'integer value', 'intercell spacing', 'item height',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1087 'key( (code|equivalent( modifier)?|window))?',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1088 'knob thickness', 'label', 'last( visible)? column',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1089 'leading offset', 'leaf', 'level', 'line scroll',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1090 'loaded', 'localized sort', 'location', 'loop mode',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1091 'main( (bunde|menu|window))?', 'marker follows cell',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1092 'matrix mode', 'maximum( content)? size',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1093 'maximum visible columns',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1094 'menu( form representation)?', 'miniaturizable',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1095 'miniaturized', 'minimized image', 'minimized title',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1096 'minimum column width', 'minimum( content)? size',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1097 'modal', 'modified', 'mouse down state',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1098 'movie( (controller|file|rect))?', 'muted', 'name',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1099 'needs display', 'next state', 'next text',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1100 'number of tick marks', 'only tick mark values',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1101 'opaque', 'open panel', 'option key down',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1102 'outline table column', 'page scroll', 'pages across',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1103 'pages down', 'palette label', 'pane splitter',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1104 'parent data item', 'parent window', 'pasteboard',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1105 'path( (names|separator))?', 'playing',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1106 'plays every frame', 'plays selection only', 'position',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1107 'preferred edge', 'preferred type', 'pressure',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1108 'previous text', 'prompt', 'properties',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1109 'prototype cell', 'pulls down', 'rate',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1110 'released when closed', 'repeated',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1111 'requested print time', 'required file type',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1112 'resizable', 'resized column', 'resource path',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1113 'returns records', 'reuses columns', 'rich text',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1114 'roll over', 'row height', 'rulers visible',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1115 'save panel', 'scripts path', 'scrollable',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1116 'selectable( identifiers)?', 'selected cell',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1117 'selected( data)? columns?', 'selected data items?',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1118 'selected( data)? rows?', 'selected item identifier',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1119 'selection by rect', 'send action on arrow key',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1120 'sends action when done editing', 'separates columns',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1121 'separator item', 'sequence number', 'services menu',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1122 'shared frameworks path', 'shared support path',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1123 'sheet', 'shift key down', 'shows alpha',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1124 'shows state by', 'size( mode)?',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1125 'smart insert delete enabled', 'sort case sensitivity',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1126 'sort column', 'sort order', 'sort type',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1127 'sorted( data rows)?', 'sound', 'source( mask)?',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1128 'spell checking enabled', 'starting page', 'state',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1129 'string value', 'sub menu', 'super menu', 'super view',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1130 'tab key traverses cells', 'tab state', 'tab type',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1131 'tab view', 'table view', 'tag', 'target( printer)?',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1132 'text color', 'text container insert',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1133 'text container origin', 'text returned',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1134 'tick mark position', 'time stamp',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1135 'title(d| (cell|font|height|position|rect))?',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1136 'tool tip', 'toolbar', 'trailing offset', 'transparent',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1137 'treat packages as directories', 'truncated labels',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1138 'types', 'unmodified characters', 'update views',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1139 'use sort indicator', 'user defaults',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1140 'uses data source', 'uses ruler',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1141 'uses threaded animation',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1142 'uses title from previous column', 'value wraps',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1143 'version',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1144 'vertical( (line scroll|page scroll|ruler view))?',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1145 'vertically resizable', 'view',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1146 'visible( document rect)?', 'volume', 'width', 'window',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1147 'windows menu', 'wraps', 'zoomable', 'zoomed']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1148
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1149 tokens = {
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1150 'root': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1151 (r'\s+', Text),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1152 (r'¬\n', String.Escape),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1153 (r"'s\s+", Text), # This is a possessive, consider moving
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1154 (r'(--|#).*?$', Comment),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1155 (r'\(\*', Comment.Multiline, 'comment'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1156 (r'[\(\){}!,.:]', Punctuation),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1157 (r'(«)([^»]+)(»)',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1158 bygroups(Text, Name.Builtin, Text)),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1159 (r'\b((?:considering|ignoring)\s*)'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1160 r'(application responses|case|diacriticals|hyphens|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1161 r'numeric strings|punctuation|white space)',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1162 bygroups(Keyword, Name.Builtin)),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1163 (r'(-|\*|\+|&|≠|>=?|<=?|=|≥|≤|/|÷|\^)', Operator),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1164 (r"\b(%s)\b" % '|'.join(Operators), Operator.Word),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1165 (r'^(\s*(?:on|end)\s+)'
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
1166 r'(%s)' % '|'.join(StudioEvents[::-1]),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1167 bygroups(Keyword, Name.Function)),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1168 (r'^(\s*)(in|on|script|to)(\s+)', bygroups(Text, Keyword, Text)),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1169 (r'\b(as )(%s)\b' % '|'.join(Classes),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1170 bygroups(Keyword, Name.Class)),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1171 (r'\b(%s)\b' % '|'.join(Literals), Name.Constant),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1172 (r'\b(%s)\b' % '|'.join(Commands), Name.Builtin),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1173 (r'\b(%s)\b' % '|'.join(Control), Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1174 (r'\b(%s)\b' % '|'.join(Declarations), Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1175 (r'\b(%s)\b' % '|'.join(Reserved), Name.Builtin),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1176 (r'\b(%s)s?\b' % '|'.join(BuiltIn), Name.Builtin),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1177 (r'\b(%s)\b' % '|'.join(HandlerParams), Name.Builtin),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1178 (r'\b(%s)\b' % '|'.join(StudioProperties), Name.Attribute),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1179 (r'\b(%s)s?\b' % '|'.join(StudioClasses), Name.Builtin),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1180 (r'\b(%s)\b' % '|'.join(StudioCommands), Name.Builtin),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1181 (r'\b(%s)\b' % '|'.join(References), Name.Builtin),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1182 (r'"(\\\\|\\"|[^"])*"', String.Double),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1183 (r'\b(%s)\b' % Identifiers, Name.Variable),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1184 (r'[-+]?(\d+\.\d*|\d*\.\d+)(E[-+][0-9]+)?', Number.Float),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1185 (r'[-+]?\d+', Number.Integer),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1186 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1187 'comment': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1188 ('\(\*', Comment.Multiline, '#push'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1189 ('\*\)', Comment.Multiline, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1190 ('[^*(]+', Comment.Multiline),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1191 ('[*(]', Comment.Multiline),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1192 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1193 }
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1194
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1195
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1196 class ModelicaLexer(RegexLexer):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1197 """
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1198 For `Modelica <http://www.modelica.org/>`_ source code.
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1199
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1200 *New in Pygments 1.1.*
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1201 """
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1202 name = 'Modelica'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1203 aliases = ['modelica']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1204 filenames = ['*.mo']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1205 mimetypes = ['text/x-modelica']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1206
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1207 flags = re.IGNORECASE | re.DOTALL
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1208
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1209 tokens = {
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1210 'whitespace': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1211 (r'\n', Text),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1212 (r'\s+', Text),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1213 (r'\\\n', Text), # line continuation
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1214 (r'//(\n|(.|\n)*?[^\\]\n)', Comment),
2426
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1215 (r'/(\\\n)?\*(.|\n)*?\*(\\\n)?/', Comment),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1216 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1217 'statements': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1218 (r'"', String, 'string'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1219 (r'(\d+\.\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
1220 (r'(\d+\.\d*|\.\d+)', Number.Float),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1221 (r'\d+[Ll]?', Number.Integer),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1222 (r'[~!%^&*+=|?:<>/-]', Operator),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1223 (r'[()\[\]{},.;]', Punctuation),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1224 (r'(true|false|NULL|Real|Integer|Boolean)\b', Name.Builtin),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1225 (r"([a-zA-Z_][\w]*|'[a-zA-Z_\+\-\*\/\^][\w]*')"
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1226 r"(\.([a-zA-Z_][\w]*|'[a-zA-Z_\+\-\*\/\^][\w]*'))+", Name.Class),
2426
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1227 (r"('[\w\+\-\*\/\^]+'|\w+)", Name),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1228 ],
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1229 'root': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1230 include('whitespace'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1231 include('keywords'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1232 include('functions'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1233 include('operators'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1234 include('classes'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1235 (r'("<html>|<html>)', Name.Tag, 'html-content'),
2426
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1236 include('statements'),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1237 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1238 'keywords': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1239 (r'(algorithm|annotation|break|connect|constant|constrainedby|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1240 r'discrete|each|else|elseif|elsewhen|encapsulated|enumeration|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1241 r'end|equation|exit|expandable|extends|'
2426
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1242 r'external|false|final|flow|for|if|import|impure|in|initial\sequation|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1243 r'inner|input|loop|nondiscrete|outer|output|parameter|partial|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1244 r'protected|public|pure|redeclare|replaceable|stream|time|then|true|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1245 r'when|while|within)\b', Keyword),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1246 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1247 'functions': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1248 (r'(abs|acos|acosh|asin|asinh|atan|atan2|atan3|ceil|cos|cosh|'
2426
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1249 r'cross|div|exp|floor|getInstanceName|log|log10|mod|rem|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1250 r'semiLinear|sign|sin|sinh|size|spatialDistribution|sqrt|tan|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1251 r'tanh|zeros)\b', Name.Function),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1252 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1253 'operators': [
2426
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1254 (r'(actualStream|and|assert|cardinality|change|Clock|delay|der|edge|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1255 r'hold|homotopy|initial|inStream|noEvent|not|or|pre|previous|reinit|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1256 r'return|sample|smooth|spatialDistribution|subSample|terminal|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1257 r'terminate)\b', Name.Builtin),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1258 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1259 'classes': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1260 (r'(block|class|connector|function|model|package|'
2426
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1261 r'record|type)(\s+)([A-Za-z_]+)',
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1262 bygroups(Keyword, Text, Name.Class))
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1263 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1264 'string': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1265 (r'"', String, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1266 (r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1267 String.Escape),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1268 (r'[^\\"\n]+', String), # all other characters
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1269 (r'\\\n', String), # line continuation
2426
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1270 (r'\\', String), # stray backslash
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1271 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1272 'html-content': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1273 (r'<\s*/\s*html\s*>', Name.Tag, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1274 (r'.+?(?=<\s*/\s*html\s*>)', using(HtmlLexer)),
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 }
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 class RebolLexer(RegexLexer):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1280 """
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1281 A `REBOL <http://www.rebol.com/>`_ lexer.
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1282
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1283 *New in Pygments 1.1.*
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1284 """
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1285 name = 'REBOL'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1286 aliases = ['rebol']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1287 filenames = ['*.r', '*.r3']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1288 mimetypes = ['text/x-rebol']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1289
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1290 flags = re.IGNORECASE | re.MULTILINE
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1291
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1292 re.IGNORECASE
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1293
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1294 escape_re = r'(?:\^\([0-9a-fA-F]{1,4}\)*)'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1295
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1296 def word_callback(lexer, match):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1297 word = match.group()
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1298
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1299 if re.match(".*:$", word):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1300 yield match.start(), Generic.Subheading, word
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1301 elif re.match(
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1302 r'(native|alias|all|any|as-string|as-binary|bind|bound\?|case|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1303 r'catch|checksum|comment|debase|dehex|exclude|difference|disarm|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1304 r'either|else|enbase|foreach|remove-each|form|free|get|get-env|if|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1305 r'in|intersect|loop|minimum-of|maximum-of|mold|new-line|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1306 r'new-line\?|not|now|prin|print|reduce|compose|construct|repeat|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1307 r'reverse|save|script\?|set|shift|switch|throw|to-hex|trace|try|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1308 r'type\?|union|unique|unless|unprotect|unset|until|use|value\?|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1309 r'while|compress|decompress|secure|open|close|read|read-io|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1310 r'write-io|write|update|query|wait|input\?|exp|log-10|log-2|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1311 r'log-e|square-root|cosine|sine|tangent|arccosine|arcsine|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1312 r'arctangent|protect|lowercase|uppercase|entab|detab|connected\?|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1313 r'browse|launch|stats|get-modes|set-modes|to-local-file|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1314 r'to-rebol-file|encloak|decloak|create-link|do-browser|bind\?|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1315 r'hide|draw|show|size-text|textinfo|offset-to-caret|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1316 r'caret-to-offset|local-request-file|rgb-to-hsv|hsv-to-rgb|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1317 r'crypt-strength\?|dh-make-key|dh-generate-key|dh-compute-key|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1318 r'dsa-make-key|dsa-generate-key|dsa-make-signature|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1319 r'dsa-verify-signature|rsa-make-key|rsa-generate-key|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1320 r'rsa-encrypt)$', word):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1321 yield match.start(), Name.Builtin, word
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1322 elif re.match(
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1323 r'(add|subtract|multiply|divide|remainder|power|and~|or~|xor~|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1324 r'minimum|maximum|negate|complement|absolute|random|head|tail|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1325 r'next|back|skip|at|pick|first|second|third|fourth|fifth|sixth|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1326 r'seventh|eighth|ninth|tenth|last|path|find|select|make|to|copy\*|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1327 r'insert|remove|change|poke|clear|trim|sort|min|max|abs|cp|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1328 r'copy)$', word):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1329 yield match.start(), Name.Function, word
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1330 elif re.match(
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1331 r'(error|source|input|license|help|install|echo|Usage|with|func|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1332 r'throw-on-error|function|does|has|context|probe|\?\?|as-pair|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1333 r'mod|modulo|round|repend|about|set-net|append|join|rejoin|reform|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1334 r'remold|charset|array|replace|move|extract|forskip|forall|alter|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1335 r'first+|also|take|for|forever|dispatch|attempt|what-dir|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1336 r'change-dir|clean-path|list-dir|dirize|rename|split-path|delete|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1337 r'make-dir|delete-dir|in-dir|confirm|dump-obj|upgrade|what|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1338 r'build-tag|process-source|build-markup|decode-cgi|read-cgi|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1339 r'write-user|save-user|set-user-name|protect-system|parse-xml|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1340 r'cvs-date|cvs-version|do-boot|get-net-info|desktop|layout|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1341 r'scroll-para|get-face|alert|set-face|uninstall|unfocus|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1342 r'request-dir|center-face|do-events|net-error|decode-url|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1343 r'parse-header|parse-header-date|parse-email-addrs|import-email|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1344 r'send|build-attach-body|resend|show-popup|hide-popup|open-events|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1345 r'find-key-face|do-face|viewtop|confine|find-window|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1346 r'insert-event-func|remove-event-func|inform|dump-pane|dump-face|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1347 r'flag-face|deflag-face|clear-fields|read-net|vbug|path-thru|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1348 r'read-thru|load-thru|do-thru|launch-thru|load-image|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1349 r'request-download|do-face-alt|set-font|set-para|get-style|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1350 r'set-style|make-face|stylize|choose|hilight-text|hilight-all|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1351 r'unlight-text|focus|scroll-drag|clear-face|reset-face|scroll-face|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1352 r'resize-face|load-stock|load-stock-block|notify|request|flash|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1353 r'request-color|request-pass|request-text|request-list|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1354 r'request-date|request-file|dbug|editor|link-relative-path|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1355 r'emailer|parse-error)$', word):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1356 yield match.start(), Keyword.Namespace, word
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1357 elif re.match(
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1358 r'(halt|quit|do|load|q|recycle|call|run|ask|parse|view|unview|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1359 r'return|exit|break)$', word):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1360 yield match.start(), Name.Exception, word
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1361 elif re.match('REBOL$', word):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1362 yield match.start(), Generic.Heading, word
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1363 elif re.match("to-.*", word):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1364 yield match.start(), Keyword, word
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1365 elif re.match('(\+|-|\*|/|//|\*\*|and|or|xor|=\?|=|==|<>|<|>|<=|>=)$',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1366 word):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1367 yield match.start(), Operator, word
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1368 elif re.match(".*\?$", word):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1369 yield match.start(), Keyword, word
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1370 elif re.match(".*\!$", word):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1371 yield match.start(), Keyword.Type, word
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1372 elif re.match("'.*", word):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1373 yield match.start(), Name.Variable.Instance, word # lit-word
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1374 elif re.match("#.*", word):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1375 yield match.start(), Name.Label, word # issue
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1376 elif re.match("%.*", word):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1377 yield match.start(), Name.Decorator, word # file
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1378 else:
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1379 yield match.start(), Name.Variable, word
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1380
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1381 tokens = {
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1382 'root': [
2426
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1383 (r'REBOL', Generic.Strong, 'script'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1384 (r'R', Comment),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1385 (r'[^R]+', Comment),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1386 ],
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1387 'script': [
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1388 (r'\s+', Text),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1389 (r'#"', String.Char, 'char'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1390 (r'#{[0-9a-fA-F]*}', Number.Hex),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1391 (r'2#{', Number.Hex, 'bin2'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1392 (r'64#{[0-9a-zA-Z+/=\s]*}', Number.Hex),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1393 (r'"', String, 'string'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1394 (r'{', String, 'string2'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1395 (r';#+.*\n', Comment.Special),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1396 (r';\*+.*\n', Comment.Preproc),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1397 (r';.*\n', Comment),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1398 (r'%"', Name.Decorator, 'stringFile'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1399 (r'%[^(\^{^")\s\[\]]+', Name.Decorator),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1400 (r'<[a-zA-Z0-9:._-]*>', Name.Tag),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1401 (r'<[^(<>\s")]+', Name.Tag, 'tag'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1402 (r'[+-]?([a-zA-Z]{1,3})?\$\d+(\.\d+)?', Number.Float), # money
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1403 (r'[+-]?\d+\:\d+(\:\d+)?(\.\d+)?', String.Other), # time
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1404 (r'\d+\-[0-9a-zA-Z]+\-\d+(\/\d+\:\d+(\:\d+)?'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1405 r'([\.\d+]?([+-]?\d+:\d+)?)?)?', String.Other), # date
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1406 (r'\d+(\.\d+)+\.\d+', Keyword.Constant), # tuple
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1407 (r'\d+[xX]\d+', Keyword.Constant), # pair
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1408 (r'[+-]?\d+(\'\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 (r'[+-]?\d+(\'\d+)?[\.,]\d*', Number.Float),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1410 (r'[+-]?\d+(\'\d+)?', Number),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1411 (r'[\[\]\(\)]', Generic.Strong),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1412 (r'[a-zA-Z]+[^(\^{"\s:)]*://[^(\^{"\s)]*', Name.Decorator), # url
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1413 (r'mailto:[^(\^{"@\s)]+@[^(\^{"@\s)]+', Name.Decorator), # url
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1414 (r'[^(\^{"@\s)]+@[^(\^{"@\s)]+', Name.Decorator), # email
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1415 (r'comment\s', Comment, 'comment'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1416 (r'/[^(\^{^")\s/[\]]*', Name.Attribute),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1417 (r'([^(\^{^")\s/[\]]+)(?=[:({"\s/\[\]])', word_callback),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1418 (r'([^(\^{^")\s]+)', Text),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1419 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1420 'string': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1421 (r'[^(\^")]+', String),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1422 (escape_re, String.Escape),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1423 (r'[\(|\)]+', String),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1424 (r'\^.', String.Escape),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1425 (r'"', String, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1426 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1427 'string2': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1428 (r'[^(\^{^})]+', String),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1429 (escape_re, String.Escape),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1430 (r'[\(|\)]+', String),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1431 (r'\^.', String.Escape),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1432 (r'{', String, '#push'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1433 (r'}', String, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1434 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1435 'stringFile': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1436 (r'[^(\^")]+', Name.Decorator),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1437 (escape_re, Name.Decorator),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1438 (r'\^.', Name.Decorator),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1439 (r'"', Name.Decorator, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1440 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1441 'char': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1442 (escape_re + '"', String.Char, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1443 (r'\^."', String.Char, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1444 (r'."', String.Char, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1445 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1446 'tag': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1447 (escape_re, Name.Tag),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1448 (r'"', Name.Tag, 'tagString'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1449 (r'[^(<>\r\n")]+', Name.Tag),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1450 (r'>', Name.Tag, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1451 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1452 'tagString': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1453 (r'[^(\^")]+', Name.Tag),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1454 (escape_re, Name.Tag),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1455 (r'[\(|\)]+', Name.Tag),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1456 (r'\^.', Name.Tag),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1457 (r'"', Name.Tag, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1458 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1459 'tuple': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1460 (r'(\d+\.)+', Keyword.Constant),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1461 (r'\d+', Keyword.Constant, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1462 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1463 'bin2': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1464 (r'\s+', Number.Hex),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1465 (r'([0-1]\s*){8}', Number.Hex),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1466 (r'}', Number.Hex, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1467 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1468 'comment': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1469 (r'"', Comment, 'commentString1'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1470 (r'{', Comment, 'commentString2'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1471 (r'\[', Comment, 'commentBlock'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1472 (r'[^(\s{\"\[]+', Comment, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1473 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1474 'commentString1': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1475 (r'[^(\^")]+', Comment),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1476 (escape_re, Comment),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1477 (r'[\(|\)]+', Comment),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1478 (r'\^.', Comment),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1479 (r'"', Comment, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1480 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1481 'commentString2': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1482 (r'[^(\^{^})]+', Comment),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1483 (escape_re, Comment),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1484 (r'[\(|\)]+', Comment),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1485 (r'\^.', Comment),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1486 (r'{', Comment, '#push'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1487 (r'}', Comment, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1488 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1489 'commentBlock': [
2426
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1490 (r'\[', Comment, '#push'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1491 (r'\]', Comment, '#pop'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1492 (r'[^(\[\])]+', Comment),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1493 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1494 }
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1495
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1496
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1497 class ABAPLexer(RegexLexer):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1498 """
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1499 Lexer for ABAP, SAP's integrated language.
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1500
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1501 *New in Pygments 1.1.*
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1502 """
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1503 name = 'ABAP'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1504 aliases = ['abap']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1505 filenames = ['*.abap']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1506 mimetypes = ['text/x-abap']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1507
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1508 flags = re.IGNORECASE | re.MULTILINE
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1509
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1510 tokens = {
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1511 'common': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1512 (r'\s+', Text),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1513 (r'^\*.*$', Comment.Single),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1514 (r'\".*?\n', Comment.Single),
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 'variable-names': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1517 (r'<[\S_]+>', Name.Variable),
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
1518 (r'\w[\w~]*(?:(\[\])|->\*)?', Name.Variable),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1519 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1520 'root': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1521 include('common'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1522 #function calls
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1523 (r'(CALL\s+(?:BADI|CUSTOMER-FUNCTION|FUNCTION))(\s+)(\'?\S+\'?)',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1524 bygroups(Keyword, Text, Name.Function)),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1525 (r'(CALL\s+(?:DIALOG|SCREEN|SUBSCREEN|SELECTION-SCREEN|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1526 r'TRANSACTION|TRANSFORMATION))\b',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1527 Keyword),
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
1528 (r'(FORM|PERFORM)(\s+)(\w+)',
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1529 bygroups(Keyword, Text, Name.Function)),
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
1530 (r'(PERFORM)(\s+)(\()(\w+)(\))',
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1531 bygroups(Keyword, Text, Punctuation, Name.Variable, Punctuation )),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1532 (r'(MODULE)(\s+)(\S+)(\s+)(INPUT|OUTPUT)',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1533 bygroups(Keyword, Text, Name.Function, Text, Keyword)),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1534
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1535 # method implementation
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
1536 (r'(METHOD)(\s+)([\w~]+)',
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1537 bygroups(Keyword, Text, Name.Function)),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1538 # method calls
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
1539 (r'(\s+)([\w\-]+)([=\-]>)([\w\-~]+)',
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1540 bygroups(Text, Name.Variable, Operator, Name.Function)),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1541 # call methodnames returning style
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
1542 (r'(?<=(=|-)>)([\w\-~]+)(?=\()', Name.Function),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1543
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1544 # keywords with dashes in them.
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1545 # these need to be first, because for instance the -ID part
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1546 # of MESSAGE-ID wouldn't get highlighted if MESSAGE was
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1547 # first in the list of keywords.
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1548 (r'(ADD-CORRESPONDING|AUTHORITY-CHECK|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1549 r'CLASS-DATA|CLASS-EVENTS|CLASS-METHODS|CLASS-POOL|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1550 r'DELETE-ADJACENT|DIVIDE-CORRESPONDING|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1551 r'EDITOR-CALL|ENHANCEMENT-POINT|ENHANCEMENT-SECTION|EXIT-COMMAND|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1552 r'FIELD-GROUPS|FIELD-SYMBOLS|FUNCTION-POOL|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1553 r'INTERFACE-POOL|INVERTED-DATE|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1554 r'LOAD-OF-PROGRAM|LOG-POINT|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1555 r'MESSAGE-ID|MOVE-CORRESPONDING|MULTIPLY-CORRESPONDING|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1556 r'NEW-LINE|NEW-PAGE|NEW-SECTION|NO-EXTENSION|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1557 r'OUTPUT-LENGTH|PRINT-CONTROL|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1558 r'SELECT-OPTIONS|START-OF-SELECTION|SUBTRACT-CORRESPONDING|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1559 r'SYNTAX-CHECK|SYSTEM-EXCEPTIONS|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1560 r'TYPE-POOL|TYPE-POOLS'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1561 r')\b', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1562
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1563 # keyword kombinations
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1564 (r'CREATE\s+(PUBLIC|PRIVATE|DATA|OBJECT)|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1565 r'((PUBLIC|PRIVATE|PROTECTED)\s+SECTION|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1566 r'(TYPE|LIKE)(\s+(LINE\s+OF|REF\s+TO|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1567 r'(SORTED|STANDARD|HASHED)\s+TABLE\s+OF))?|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1568 r'FROM\s+(DATABASE|MEMORY)|CALL\s+METHOD|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1569 r'(GROUP|ORDER) BY|HAVING|SEPARATED BY|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1570 r'GET\s+(BADI|BIT|CURSOR|DATASET|LOCALE|PARAMETER|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1571 r'PF-STATUS|(PROPERTY|REFERENCE)\s+OF|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1572 r'RUN\s+TIME|TIME\s+(STAMP)?)?|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1573 r'SET\s+(BIT|BLANK\s+LINES|COUNTRY|CURSOR|DATASET|EXTENDED\s+CHECK|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1574 r'HANDLER|HOLD\s+DATA|LANGUAGE|LEFT\s+SCROLL-BOUNDARY|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1575 r'LOCALE|MARGIN|PARAMETER|PF-STATUS|PROPERTY\s+OF|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1576 r'RUN\s+TIME\s+(ANALYZER|CLOCK\s+RESOLUTION)|SCREEN|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1577 r'TITLEBAR|UPADTE\s+TASK\s+LOCAL|USER-COMMAND)|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1578 r'CONVERT\s+((INVERTED-)?DATE|TIME|TIME\s+STAMP|TEXT)|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1579 r'(CLOSE|OPEN)\s+(DATASET|CURSOR)|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1580 r'(TO|FROM)\s+(DATA BUFFER|INTERNAL TABLE|MEMORY ID|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1581 r'DATABASE|SHARED\s+(MEMORY|BUFFER))|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1582 r'DESCRIBE\s+(DISTANCE\s+BETWEEN|FIELD|LIST|TABLE)|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1583 r'FREE\s(MEMORY|OBJECT)?|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1584 r'PROCESS\s+(BEFORE\s+OUTPUT|AFTER\s+INPUT|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1585 r'ON\s+(VALUE-REQUEST|HELP-REQUEST))|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1586 r'AT\s+(LINE-SELECTION|USER-COMMAND|END\s+OF|NEW)|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1587 r'AT\s+SELECTION-SCREEN(\s+(ON(\s+(BLOCK|(HELP|VALUE)-REQUEST\s+FOR|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1588 r'END\s+OF|RADIOBUTTON\s+GROUP))?|OUTPUT))?|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1589 r'SELECTION-SCREEN:?\s+((BEGIN|END)\s+OF\s+((TABBED\s+)?BLOCK|LINE|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1590 r'SCREEN)|COMMENT|FUNCTION\s+KEY|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1591 r'INCLUDE\s+BLOCKS|POSITION|PUSHBUTTON|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1592 r'SKIP|ULINE)|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1593 r'LEAVE\s+(LIST-PROCESSING|PROGRAM|SCREEN|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1594 r'TO LIST-PROCESSING|TO TRANSACTION)'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1595 r'(ENDING|STARTING)\s+AT|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1596 r'FORMAT\s+(COLOR|INTENSIFIED|INVERSE|HOTSPOT|INPUT|FRAMES|RESET)|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1597 r'AS\s+(CHECKBOX|SUBSCREEN|WINDOW)|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1598 r'WITH\s+(((NON-)?UNIQUE)?\s+KEY|FRAME)|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1599 r'(BEGIN|END)\s+OF|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1600 r'DELETE(\s+ADJACENT\s+DUPLICATES\sFROM)?|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1601 r'COMPARING(\s+ALL\s+FIELDS)?|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1602 r'INSERT(\s+INITIAL\s+LINE\s+INTO|\s+LINES\s+OF)?|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1603 r'IN\s+((BYTE|CHARACTER)\s+MODE|PROGRAM)|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1604 r'END-OF-(DEFINITION|PAGE|SELECTION)|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1605 r'WITH\s+FRAME(\s+TITLE)|'
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 # simple kombinations
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1608 r'AND\s+(MARK|RETURN)|CLIENT\s+SPECIFIED|CORRESPONDING\s+FIELDS\s+OF|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1609 r'IF\s+FOUND|FOR\s+EVENT|INHERITING\s+FROM|LEAVE\s+TO\s+SCREEN|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1610 r'LOOP\s+AT\s+(SCREEN)?|LOWER\s+CASE|MATCHCODE\s+OBJECT|MODIF\s+ID|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1611 r'MODIFY\s+SCREEN|NESTING\s+LEVEL|NO\s+INTERVALS|OF\s+STRUCTURE|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1612 r'RADIOBUTTON\s+GROUP|RANGE\s+OF|REF\s+TO|SUPPRESS DIALOG|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1613 r'TABLE\s+OF|UPPER\s+CASE|TRANSPORTING\s+NO\s+FIELDS|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1614 r'VALUE\s+CHECK|VISIBLE\s+LENGTH|HEADER\s+LINE)\b', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1615
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1616 # single word keywords.
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1617 (r'(^|(?<=(\s|\.)))(ABBREVIATED|ADD|ALIASES|APPEND|ASSERT|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1618 r'ASSIGN(ING)?|AT(\s+FIRST)?|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1619 r'BACK|BLOCK|BREAK-POINT|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1620 r'CASE|CATCH|CHANGING|CHECK|CLASS|CLEAR|COLLECT|COLOR|COMMIT|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1621 r'CREATE|COMMUNICATION|COMPONENTS?|COMPUTE|CONCATENATE|CONDENSE|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1622 r'CONSTANTS|CONTEXTS|CONTINUE|CONTROLS|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1623 r'DATA|DECIMALS|DEFAULT|DEFINE|DEFINITION|DEFERRED|DEMAND|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1624 r'DETAIL|DIRECTORY|DIVIDE|DO|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1625 r'ELSE(IF)?|ENDAT|ENDCASE|ENDCLASS|ENDDO|ENDFORM|ENDFUNCTION|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1626 r'ENDIF|ENDLOOP|ENDMETHOD|ENDMODULE|ENDSELECT|ENDTRY|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1627 r'ENHANCEMENT|EVENTS|EXCEPTIONS|EXIT|EXPORT|EXPORTING|EXTRACT|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1628 r'FETCH|FIELDS?|FIND|FOR|FORM|FORMAT|FREE|FROM|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1629 r'HIDE|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1630 r'ID|IF|IMPORT|IMPLEMENTATION|IMPORTING|IN|INCLUDE|INCLUDING|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1631 r'INDEX|INFOTYPES|INITIALIZATION|INTERFACE|INTERFACES|INTO|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1632 r'LENGTH|LINES|LOAD|LOCAL|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1633 r'JOIN|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1634 r'KEY|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1635 r'MAXIMUM|MESSAGE|METHOD[S]?|MINIMUM|MODULE|MODIFY|MOVE|MULTIPLY|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1636 r'NODES|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1637 r'OBLIGATORY|OF|OFF|ON|OVERLAY|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1638 r'PACK|PARAMETERS|PERCENTAGE|POSITION|PROGRAM|PROVIDE|PUBLIC|PUT|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1639 r'RAISE|RAISING|RANGES|READ|RECEIVE|REFRESH|REJECT|REPORT|RESERVE|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1640 r'RESUME|RETRY|RETURN|RETURNING|RIGHT|ROLLBACK|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1641 r'SCROLL|SEARCH|SELECT|SHIFT|SINGLE|SKIP|SORT|SPLIT|STATICS|STOP|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1642 r'SUBMIT|SUBTRACT|SUM|SUMMARY|SUMMING|SUPPLY|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1643 r'TABLE|TABLES|TIMES|TITLE|TO|TOP-OF-PAGE|TRANSFER|TRANSLATE|TRY|TYPES|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1644 r'ULINE|UNDER|UNPACK|UPDATE|USING|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1645 r'VALUE|VALUES|VIA|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1646 r'WAIT|WHEN|WHERE|WHILE|WITH|WINDOW|WRITE)\b', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1647
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1648 # builtins
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1649 (r'(abs|acos|asin|atan|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1650 r'boolc|boolx|bit_set|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1651 r'char_off|charlen|ceil|cmax|cmin|condense|contains|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1652 r'contains_any_of|contains_any_not_of|concat_lines_of|cos|cosh|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1653 r'count|count_any_of|count_any_not_of|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1654 r'dbmaxlen|distance|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1655 r'escape|exp|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1656 r'find|find_end|find_any_of|find_any_not_of|floor|frac|from_mixed|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1657 r'insert|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1658 r'lines|log|log10|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1659 r'match|matches|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1660 r'nmax|nmin|numofchar|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1661 r'repeat|replace|rescale|reverse|round|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1662 r'segment|shift_left|shift_right|sign|sin|sinh|sqrt|strlen|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1663 r'substring|substring_after|substring_from|substring_before|substring_to|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1664 r'tan|tanh|to_upper|to_lower|to_mixed|translate|trunc|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1665 r'xstrlen)(\()\b', bygroups(Name.Builtin, Punctuation)),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1666
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1667 (r'&[0-9]', Name),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1668 (r'[0-9]+', Number.Integer),
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 # operators which look like variable names before
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1671 # parsing variable names.
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1672 (r'(?<=(\s|.))(AND|EQ|NE|GT|LT|GE|LE|CO|CN|CA|NA|CS|NOT|NS|CP|NP|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1673 r'BYTE-CO|BYTE-CN|BYTE-CA|BYTE-NA|BYTE-CS|BYTE-NS|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1674 r'IS\s+(NOT\s+)?(INITIAL|ASSIGNED|REQUESTED|BOUND))\b', Operator),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1675
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1676 include('variable-names'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1677
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1678 # standard oparators after variable names,
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1679 # because < and > are part of field symbols.
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1680 (r'[?*<>=\-+]', Operator),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1681 (r"'(''|[^'])*'", String.Single),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1682 (r'[/;:()\[\],\.]', Punctuation)
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1683 ],
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
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 class NewspeakLexer(RegexLexer):
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 For `Newspeak <http://newspeaklanguage.org/>` syntax.
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1690 """
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1691 name = 'Newspeak'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1692 filenames = ['*.ns2']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1693 aliases = ['newspeak', ]
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1694 mimetypes = ['text/x-newspeak']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1695
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1696 tokens = {
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1697 'root' : [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1698 (r'\b(Newsqueak2)\b',Keyword.Declaration),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1699 (r"'[^']*'",String),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1700 (r'\b(class)(\s+)([a-zA-Z0-9_]+)(\s*)',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1701 bygroups(Keyword.Declaration,Text,Name.Class,Text)),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1702 (r'\b(mixin|self|super|private|public|protected|nil|true|false)\b',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1703 Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1704 (r'([a-zA-Z0-9_]+\:)(\s*)([a-zA-Z_]\w+)',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1705 bygroups(Name.Function,Text,Name.Variable)),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1706 (r'([a-zA-Z0-9_]+)(\s*)(=)',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1707 bygroups(Name.Attribute,Text,Operator)),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1708 (r'<[a-zA-Z0-9_]+>', Comment.Special),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1709 include('expressionstat'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1710 include('whitespace')
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1711 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1712
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1713 'expressionstat': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1714 (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
1715 (r'\d+', Number.Integer),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1716 (r':\w+',Name.Variable),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1717 (r'(\w+)(::)', bygroups(Name.Variable, Operator)),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1718 (r'\w+:', Name.Function),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1719 (r'\w+', Name.Variable),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1720 (r'\(|\)', Punctuation),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1721 (r'\[|\]', Punctuation),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1722 (r'\{|\}', Punctuation),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1723
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1724 (r'(\^|\+|\/|~|\*|<|>|=|@|%|\||&|\?|!|,|-|:)', Operator),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1725 (r'\.|;', Punctuation),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1726 include('whitespace'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1727 include('literals'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1728 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1729 'literals': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1730 (r'\$.', String),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1731 (r"'[^']*'", String),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1732 (r"#'[^']*'", String.Symbol),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1733 (r"#\w+:?", String.Symbol),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1734 (r"#(\+|\/|~|\*|<|>|=|@|%|\||&|\?|!|,|-)+", String.Symbol)
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1735
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1736 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1737 'whitespace' : [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1738 (r'\s+', Text),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1739 (r'"[^"]*"', Comment)
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1740 ]
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1741 }
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1742
2426
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1743
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1744 class GherkinLexer(RegexLexer):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1745 """
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1746 For `Gherkin <http://github.com/aslakhellesoy/gherkin/>` syntax.
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1747
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1748 *New in Pygments 1.2.*
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 name = 'Gherkin'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1751 aliases = ['Cucumber', 'cucumber', 'Gherkin', 'gherkin']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1752 filenames = ['*.feature']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1753 mimetypes = ['text/x-gherkin']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1754
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1755 feature_keywords = r'^(기능|機能|功能|フィーチャ|خاصية|תכונה|Функціонал|Функционалност|Функционал|Фича|Особина|Могућност|Özellik|Właściwość|Tính năng|Trajto|Savybė|Požiadavka|Požadavek|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Fīča|Funzionalità|Funktionalität|Funkcionalnost|Funkcionalitāte|Funcționalitate|Functionaliteit|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Feature|Egenskap|Egenskab|Crikey|Característica|Arwedd)(:)(.*)$'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1756 feature_element_keywords = r'^(\s*)(시나리오 개요|시나리오|배경|背景|場景大綱|場景|场景大纲|场景|劇本大綱|劇本|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|シナリオ|سيناريو مخطط|سيناريو|الخلفية|תרחיש|תבנית תרחיש|רקע|Тарих|Сценарій|Сценарио|Сценарий структураси|Сценарий|Структура сценарію|Структура сценарија|Структура сценария|Скица|Рамка на сценарий|Пример|Предыстория|Предистория|Позадина|Передумова|Основа|Концепт|Контекст|Założenia|Wharrimean is|Tình huống|The thing of it is|Tausta|Taust|Tapausaihio|Tapaus|Szenariogrundriss|Szenario|Szablon scenariusza|Stsenaarium|Struktura scenarija|Skica|Skenario konsep|Skenario|Situācija|Senaryo taslağı|Senaryo|Scénář|Scénario|Schema dello scenario|Scenārijs pēc parauga|Scenārijs|Scenár|Scenaro|Scenariusz|Scenariul de şablon|Scenariul de sablon|Scenariu|Scenario Outline|Scenario Amlinellol|Scenario|Scenarijus|Scenarijaus šablonas|Scenarij|Scenarie|Rerefons|Raamstsenaarium|Primer|Pozadí|Pozadina|Pozadie|Plan du scénario|Plan du Scénario|Osnova scénáře|Osnova|Náčrt Scénáře|Náčrt Scenáru|Mate|MISHUN SRSLY|MISHUN|Kịch bản|Konturo de la scenaro|Kontext|Konteksts|Kontekstas|Kontekst|Koncept|Khung tình huống|Khung kịch bản|Háttér|Grundlage|Geçmiş|Forgatókönyv vázlat|Forgatókönyv|Fono|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l\'escenari|Escenario|Escenari|Dis is what went down|Dasar|Contexto|Contexte|Contesto|Condiţii|Conditii|Cenário|Cenario|Cefndir|Bối cảnh|Blokes|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|All y\'all|Achtergrond|Abstrakt Scenario|Abstract Scenario)(:)(.*)$'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1757 examples_keywords = r'^(\s*)(예|例子|例|サンプル|امثلة|דוגמאות|Сценарији|Примери|Приклади|Мисоллар|Значения|Örnekler|Voorbeelden|Variantai|Tapaukset|Scenarios|Scenariji|Scenarijai|Příklady|Példák|Príklady|Przykłady|Primjeri|Primeri|Piemēri|Pavyzdžiai|Paraugs|Juhtumid|Exemplos|Exemples|Exemplele|Exempel|Examples|Esempi|Enghreifftiau|Ekzemploj|Eksempler|Ejemplos|EXAMPLZ|Dữ liệu|Contoh|Cobber|Beispiele)(:)(.*)$'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1758 step_keywords = r'^(\s*)(하지만|조건|먼저|만일|만약|단|그리고|그러면|那麼|那么|而且|當|当|前提|假設|假如|但是|但し|並且|もし|ならば|ただし|しかし|かつ|و |متى |لكن |عندما |ثم |بفرض |اذاً |כאשר |וגם |בהינתן |אזי |אז |אבל |Якщо |Унда |То |Припустимо, що |Припустимо |Онда |Но |Нехай |Лекин |Когато |Када |Кад |К тому же |И |Задато |Задати |Задате |Если |Допустим |Дадено |Ва |Бирок |Аммо |Али |Але |Агар |А |І |Și |És |Zatati |Zakładając |Zadato |Zadate |Zadano |Zadani |Zadan |Youse know when youse got |Youse know like when |Yna |Ya know how |Ya gotta |Y |Wun |Wtedy |When y\'all |When |Wenn |WEN |Và |Ve |Und |Un |Thì |Then y\'all |Then |Tapi |Tak |Tada |Tad |Så |Stel |Soit |Siis |Si |Sed |Se |Quando |Quand |Quan |Pryd |Pokud |Pokiaľ |Però |Pero |Pak |Oraz |Onda |Ond |Oletetaan |Og |Och |O zaman |Når |När |Niin |Nhưng |N |Mutta |Men |Mas |Maka |Majd |Mais |Maar |Ma |Lorsque |Lorsqu\'|Kun |Kuid |Kui |Khi |Keď |Ketika |Když |Kaj |Kai |Kada |Kad |Jeżeli |Ja |Ir |I CAN HAZ |I |Ha |Givun |Givet |Given y\'all |Given |Gitt |Gegeven |Gegeben sei |Fakat |Eğer ki |Etant donné |Et |Então |Entonces |Entao |En |Eeldades |E |Duota |Dun |Donitaĵo |Donat |Donada |Do |Diyelim ki |Dengan |Den youse gotta |De |Dato |Dar |Dann |Dan |Dado |Dacă |Daca |DEN |Când |Cuando |Cho |Cept |Cand |Cal |But y\'all |But |Buh |Biết |Bet |BUT |Atès |Atunci |Atesa |Anrhegedig a |Angenommen |And y\'all |And |An |Ama |Als |Alors |Allora |Ali |Aleshores |Ale |Akkor |Aber |AN |A také |A |\* )'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1759
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1760 tokens = {
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1761 'comments': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1762 (r'#.*$', Comment),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1763 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1764 'feature_elements' : [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1765 (step_keywords, Keyword, "step_content_stack"),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1766 include('comments'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1767 (r"(\s|.)", Name.Function),
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 'feature_elements_on_stack' : [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1770 (step_keywords, Keyword, "#pop:2"),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1771 include('comments'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1772 (r"(\s|.)", Name.Function),
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 'examples_table': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1775 (r"\s+\|", Keyword, 'examples_table_header'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1776 include('comments'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1777 (r"(\s|.)", Name.Function),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1778 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1779 'examples_table_header': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1780 (r"\s+\|\s*$", Keyword, "#pop:2"),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1781 include('comments'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1782 (r"\s*\|", Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1783 (r"[^\|]", Name.Variable),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1784 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1785 'scenario_sections_on_stack': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1786 (feature_element_keywords, bygroups(Name.Function, Keyword, Keyword, Name.Function), "feature_elements_on_stack"),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1787 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1788 'narrative': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1789 include('scenario_sections_on_stack'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1790 (r"(\s|.)", Name.Function),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1791 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1792 'table_vars': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1793 (r'(<[^>]+>)', Name.Variable),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1794 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1795 'numbers': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1796 (r'(\d+\.?\d*|\d*\.\d+)([eE][+-]?[0-9]+)?', String),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1797 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1798 'string': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1799 include('table_vars'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1800 (r'(\s|.)', String),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1801 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1802 'py_string': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1803 (r'"""', Keyword, "#pop"),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1804 include('string'),
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 'step_content_root':[
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1807 (r"$", Keyword, "#pop"),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1808 include('step_content'),
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 'step_content_stack':[
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1811 (r"$", Keyword, "#pop:2"),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1812 include('step_content'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1813 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1814 'step_content':[
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1815 (r'"', Name.Function, "double_string"),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1816 include('table_vars'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1817 include('numbers'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1818 include('comments'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1819 (r'(\s|.)', Name.Function),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1820 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1821 'table_content': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1822 (r"\s+\|\s*$", Keyword, "#pop"),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1823 include('comments'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1824 (r"\s*\|", Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1825 include('string'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1826 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1827 'double_string': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1828 (r'"', Name.Function, "#pop"),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1829 include('string'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1830 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1831 'root': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1832 (r'\n', Name.Function),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1833 include('comments'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1834 (r'"""', Keyword, "py_string"),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1835 (r'\s+\|', Keyword, 'table_content'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1836 (r'"', Name.Function, "double_string"),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1837 include('table_vars'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1838 include('numbers'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1839 (r'(\s*)(@[^@\r\n\t ]+)', bygroups(Name.Function, Name.Tag)),
2426
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1840 (step_keywords, bygroups(Name.Function, Keyword),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1841 'step_content_root'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1842 (feature_keywords, bygroups(Keyword, Keyword, Name.Function),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1843 'narrative'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1844 (feature_element_keywords,
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1845 bygroups(Name.Function, Keyword, Keyword, Name.Function),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1846 'feature_elements'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1847 (examples_keywords,
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1848 bygroups(Name.Function, Keyword, Keyword, Name.Function),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1849 'examples_table'),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1850 (r'(\s|.)', Name.Function),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1851 ]
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1852 }
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1853
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1854 class AsymptoteLexer(RegexLexer):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1855 """
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1856 For `Asymptote <http://asymptote.sf.net/>`_ source code.
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1857
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1858 *New in Pygments 1.2.*
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1859 """
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1860 name = 'Asymptote'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1861 aliases = ['asy', 'asymptote']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1862 filenames = ['*.asy']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1863 mimetypes = ['text/x-asymptote']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1864
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1865 #: optional Comment or Whitespace
2426
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1866 _ws = r'(?:\s|//.*?\n|/\*.*?\*/)+'
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1867
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1868 tokens = {
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1869 'whitespace': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1870 (r'\n', Text),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1871 (r'\s+', Text),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1872 (r'\\\n', Text), # line continuation
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1873 (r'//(\n|(.|\n)*?[^\\]\n)', Comment),
2426
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1874 (r'/(\\\n)?\*(.|\n)*?\*(\\\n)?/', Comment),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1875 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1876 'statements': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1877 # simple string (TeX friendly)
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1878 (r'"(\\\\|\\"|[^"])*"', String),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1879 # C style string (with character escapes)
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1880 (r"'", String, 'string'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1881 (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
1882 (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
1883 (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
1884 (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
1885 (r'\d+[Ll]?', Number.Integer),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1886 (r'[~!%^&*+=|?:<>/-]', Operator),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1887 (r'[()\[\],.]', Punctuation),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1888 (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
1889 (r'(and|controls|tension|atleast|curl|if|else|while|for|do|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1890 r'return|break|continue|struct|typedef|new|access|import|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1891 r'unravel|from|include|quote|static|public|private|restricted|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1892 r'this|explicit|true|false|null|cycle|newframe|operator)\b', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1893 # Since an asy-type-name can be also an asy-function-name,
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1894 # in the following we test if the string " [a-zA-Z]" follows
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1895 # the Keyword.Type.
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1896 # Of course it is not perfect !
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1897 (r'(Braid|FitResult|Label|Legend|TreeNode|abscissa|arc|arrowhead|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1898 r'binarytree|binarytreeNode|block|bool|bool3|bounds|bqe|circle|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1899 r'conic|coord|coordsys|cputime|ellipse|file|filltype|frame|grid3|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1900 r'guide|horner|hsv|hyperbola|indexedTransform|int|inversion|key|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1901 r'light|line|linefit|marginT|marker|mass|object|pair|parabola|path|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1902 r'path3|pen|picture|point|position|projection|real|revolution|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1903 r'scaleT|scientific|segment|side|slice|splitface|string|surface|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1904 r'tensionSpecifier|ticklocate|ticksgridT|tickvalues|transform|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1905 r'transformation|tree|triangle|trilinear|triple|vector|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1906 r'vertex|void)(?=([ ]{1,}[a-zA-Z]))', Keyword.Type),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1907 # Now the asy-type-name which are not asy-function-name
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1908 # except yours !
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1909 # Perhaps useless
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1910 (r'(Braid|FitResult|TreeNode|abscissa|arrowhead|block|bool|bool3|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1911 r'bounds|coord|frame|guide|horner|int|linefit|marginT|pair|pen|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1912 r'picture|position|real|revolution|slice|splitface|ticksgridT|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1913 r'tickvalues|tree|triple|vertex|void)\b', Keyword.Type),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1914 ('[a-zA-Z_][a-zA-Z0-9_]*:(?!:)', Name.Label),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1915 ('[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
1916 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1917 'root': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1918 include('whitespace'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1919 # functions
2426
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1920 (r'((?:[a-zA-Z0-9_*\s])+?(?:\s|\*))' # return arguments
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1921 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
1922 r'(\s*\([^;]*?\))' # signature
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1923 r'(' + _ws + r')({)',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1924 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
1925 Punctuation),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1926 'function'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1927 # function declarations
2426
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
1928 (r'((?:[a-zA-Z0-9_*\s])+?(?:\s|\*))' # return arguments
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1929 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
1930 r'(\s*\([^;]*?\))' # signature
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1931 r'(' + _ws + r')(;)',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1932 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
1933 Punctuation)),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1934 ('', Text, 'statement'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1935 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1936 'statement' : [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1937 include('whitespace'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1938 include('statements'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1939 ('[{}]', Punctuation),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1940 (';', Punctuation, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1941 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1942 'function': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1943 include('whitespace'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1944 include('statements'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1945 (';', Punctuation),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1946 ('{', Punctuation, '#push'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1947 ('}', Punctuation, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1948 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1949 'string': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1950 (r"'", String, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1951 (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
1952 (r'\n', String),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1953 (r"[^\\'\n]+", String), # all other characters
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1954 (r'\\\n', String),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1955 (r'\\n', String), # line continuation
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1956 (r'\\', String), # stray backslash
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1957 ]
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1958 }
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1959
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1960 def get_tokens_unprocessed(self, text):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1961 from pygments.lexers._asybuiltins import ASYFUNCNAME, ASYVARNAME
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1962 for index, token, value in \
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1963 RegexLexer.get_tokens_unprocessed(self, text):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1964 if token is Name and value in ASYFUNCNAME:
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1965 token = Name.Function
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1966 elif token is Name and value in ASYVARNAME:
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1967 token = Name.Variable
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1968 yield index, token, value
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 class PostScriptLexer(RegexLexer):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1972 """
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1973 Lexer for PostScript files.
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 The PostScript Language Reference published by Adobe at
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1976 <http://partners.adobe.com/public/developer/en/ps/PLRM.pdf>
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1977 is the authority for this.
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 *New in Pygments 1.4.*
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1980 """
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1981 name = 'PostScript'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1982 aliases = ['postscript']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1983 filenames = ['*.ps', '*.eps']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1984 mimetypes = ['application/postscript']
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 delimiter = r'\(\)\<\>\[\]\{\}\/\%\s'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1987 delimiter_end = r'(?=[%s])' % delimiter
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 valid_name_chars = r'[^%s]' % delimiter
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1990 valid_name = r"%s+%s" % (valid_name_chars, delimiter_end)
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1991
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1992 tokens = {
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1993 'root': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1994 # All comment types
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1995 (r'^%!.+\n', Comment.Preproc),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1996 (r'%%.*\n', Comment.Special),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1997 (r'(^%.*\n){2,}', Comment.Multiline),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1998 (r'%.*\n', Comment.Single),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
1999
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2000 # String literals are awkward; enter separate state.
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2001 (r'\(', String, 'stringliteral'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2002
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2003 (r'[\{\}(\<\<)(\>\>)\[\]]', Punctuation),
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 # Numbers
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2006 (r'<[0-9A-Fa-f]+>' + delimiter_end, Number.Hex),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2007 # Slight abuse: use Oct to signify any explicit base system
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2008 (r'[0-9]+\#(\-|\+)?([0-9]+\.?|[0-9]*\.[0-9]+|[0-9]+\.[0-9]*)'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2009 r'((e|E)[0-9]+)?' + delimiter_end, Number.Oct),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2010 (r'(\-|\+)?([0-9]+\.?|[0-9]*\.[0-9]+|[0-9]+\.[0-9]*)((e|E)[0-9]+)?'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2011 + delimiter_end, Number.Float),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2012 (r'(\-|\+)?[0-9]+' + delimiter_end, Number.Integer),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2013
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2014 # References
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2015 (r'\/%s' % valid_name, Name.Variable),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2016
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2017 # Names
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2018 (valid_name, Name.Function), # Anything else is executed
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2019
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2020 # These keywords taken from
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2021 # <http://www.math.ubc.ca/~cass/graphics/manual/pdf/a1.pdf>
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2022 # Is there an authoritative list anywhere that doesn't involve
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2023 # trawling documentation?
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2024
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2025 (r'(false|true)' + delimiter_end, Keyword.Constant),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2026
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2027 # Conditionals / flow control
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2028 (r'(eq|ne|ge|gt|le|lt|and|or|not|if|ifelse|for|forall)'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2029 + delimiter_end, Keyword.Reserved),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2030
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2031 ('(abs|add|aload|arc|arcn|array|atan|begin|bind|ceiling|charpath|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2032 'clip|closepath|concat|concatmatrix|copy|cos|currentlinewidth|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2033 'currentmatrix|currentpoint|curveto|cvi|cvs|def|defaultmatrix|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2034 'dict|dictstackoverflow|div|dtransform|dup|end|exch|exec|exit|exp|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2035 'fill|findfont|floor|get|getinterval|grestore|gsave|gt|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2036 'identmatrix|idiv|idtransform|index|invertmatrix|itransform|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2037 'length|lineto|ln|load|log|loop|matrix|mod|moveto|mul|neg|newpath|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2038 'pathforall|pathbbox|pop|print|pstack|put|quit|rand|rangecheck|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2039 'rcurveto|repeat|restore|rlineto|rmoveto|roll|rotate|round|run|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2040 'save|scale|scalefont|setdash|setfont|setgray|setlinecap|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2041 'setlinejoin|setlinewidth|setmatrix|setrgbcolor|shfill|show|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2042 'showpage|sin|sqrt|stack|stringwidth|stroke|strokepath|sub|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2043 'syntaxerror|transform|translate|truncate|typecheck|undefined|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2044 'undefinedfilename|undefinedresult)' + delimiter_end,
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2045 Name.Builtin),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2046
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2047 (r'\s+', Text),
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
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2050 'stringliteral': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2051 (r'[^\(\)\\]+', String),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2052 (r'\\', String.Escape, 'escape'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2053 (r'\(', String, '#push'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2054 (r'\)', String, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2055 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2056
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2057 'escape': [
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2058 (r'([0-8]{3}|n|r|t|b|f|\\|\(|\))?', String.Escape, '#pop'),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2059 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2060 }
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2061
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 class AutohotkeyLexer(RegexLexer):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2064 """
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2065 For `autohotkey <http://www.autohotkey.com/>`_ source code.
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 *New in Pygments 1.4.*
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2068 """
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2069 name = 'autohotkey'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2070 aliases = ['ahk']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2071 filenames = ['*.ahk', '*.ahkl']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2072 mimetypes = ['text/x-autohotkey']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2073
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2074 tokens = {
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2075 'root': [
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2076 (r'^(\s*)(/\*)', bygroups(Text, Comment.Multiline),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2077 'incomment'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2078 (r'^(\s*)(\()', bygroups(Text, Generic), 'incontinuation'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2079 (r'\s+;.*?$', Comment.Singleline),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2080 (r'^;.*?$', Comment.Singleline),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2081 (r'[]{}(),;[]', Punctuation),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2082 (r'(in|is|and|or|not)\b', Operator.Word),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2083 (r'\%[a-zA-Z_#@$][a-zA-Z0-9_#@$]*\%', Name.Variable),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2084 (r'!=|==|:=|\.=|<<|>>|[-~+/*%=<>&^|?:!.]', Operator),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2085 include('commands'),
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2086 include('labels'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2087 include('builtInFunctions'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2088 include('builtInVariables'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2089 (r'"', String, combined('stringescape', 'dqs')),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2090 include('numbers'),
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2091 (r'[a-zA-Z_#@$][a-zA-Z0-9_#@$]*', Name),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2092 (r'\\|\'', Text),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2093 (r'\`([\,\%\`abfnrtv\-\+;])', String.Escape),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2094 include('garbage'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2095 ],
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2096 'incomment': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2097 (r'^\s*\*/', Comment.Multiline, '#pop'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2098 (r'[^*/]', Comment.Multiline),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2099 (r'[*/]', Comment.Multiline)
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2100 ],
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2101 'incontinuation': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2102 (r'^\s*\)', Generic, '#pop'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2103 (r'[^)]', Generic),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2104 (r'[)]', Generic),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2105 ],
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2106 'commands': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2107 (r'(?i)^(\s*)(global|local|static|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2108 r'#AllowSameLineComments|#ClipboardTimeout|#CommentFlag|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2109 r'#ErrorStdOut|#EscapeChar|#HotkeyInterval|#HotkeyModifierTimeout|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2110 r'#Hotstring|#IfWinActive|#IfWinExist|#IfWinNotActive|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2111 r'#IfWinNotExist|#IncludeAgain|#Include|#InstallKeybdHook|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2112 r'#InstallMouseHook|#KeyHistory|#LTrim|#MaxHotkeysPerInterval|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2113 r'#MaxMem|#MaxThreads|#MaxThreadsBuffer|#MaxThreadsPerHotkey|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2114 r'#NoEnv|#NoTrayIcon|#Persistent|#SingleInstance|#UseHook|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2115 r'#WinActivateForce|AutoTrim|BlockInput|Break|Click|ClipWait|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2116 r'Continue|Control|ControlClick|ControlFocus|ControlGetFocus|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2117 r'ControlGetPos|ControlGetText|ControlGet|ControlMove|ControlSend|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2118 r'ControlSendRaw|ControlSetText|CoordMode|Critical|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2119 r'DetectHiddenText|DetectHiddenWindows|Drive|DriveGet|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2120 r'DriveSpaceFree|Edit|Else|EnvAdd|EnvDiv|EnvGet|EnvMult|EnvSet|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2121 r'EnvSub|EnvUpdate|Exit|ExitApp|FileAppend|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2122 r'FileCopy|FileCopyDir|FileCreateDir|FileCreateShortcut|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2123 r'FileDelete|FileGetAttrib|FileGetShortcut|FileGetSize|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2124 r'FileGetTime|FileGetVersion|FileInstall|FileMove|FileMoveDir|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2125 r'FileRead|FileReadLine|FileRecycle|FileRecycleEmpty|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2126 r'FileRemoveDir|FileSelectFile|FileSelectFolder|FileSetAttrib|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2127 r'FileSetTime|FormatTime|GetKeyState|Gosub|Goto|GroupActivate|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2128 r'GroupAdd|GroupClose|GroupDeactivate|Gui|GuiControl|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2129 r'GuiControlGet|Hotkey|IfEqual|IfExist|IfGreaterOrEqual|IfGreater|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2130 r'IfInString|IfLess|IfLessOrEqual|IfMsgBox|IfNotEqual|IfNotExist|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2131 r'IfNotInString|IfWinActive|IfWinExist|IfWinNotActive|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2132 r'IfWinNotExist|If |ImageSearch|IniDelete|IniRead|IniWrite|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2133 r'InputBox|Input|KeyHistory|KeyWait|ListHotkeys|ListLines|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2134 r'ListVars|Loop|Menu|MouseClickDrag|MouseClick|MouseGetPos|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2135 r'MouseMove|MsgBox|OnExit|OutputDebug|Pause|PixelGetColor|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2136 r'PixelSearch|PostMessage|Process|Progress|Random|RegDelete|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2137 r'RegRead|RegWrite|Reload|Repeat|Return|RunAs|RunWait|Run|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2138 r'SendEvent|SendInput|SendMessage|SendMode|SendPlay|SendRaw|Send|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2139 r'SetBatchLines|SetCapslockState|SetControlDelay|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2140 r'SetDefaultMouseSpeed|SetEnv|SetFormat|SetKeyDelay|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2141 r'SetMouseDelay|SetNumlockState|SetScrollLockState|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2142 r'SetStoreCapslockMode|SetTimer|SetTitleMatchMode|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2143 r'SetWinDelay|SetWorkingDir|Shutdown|Sleep|Sort|SoundBeep|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2144 r'SoundGet|SoundGetWaveVolume|SoundPlay|SoundSet|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2145 r'SoundSetWaveVolume|SplashImage|SplashTextOff|SplashTextOn|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2146 r'SplitPath|StatusBarGetText|StatusBarWait|StringCaseSense|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2147 r'StringGetPos|StringLeft|StringLen|StringLower|StringMid|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2148 r'StringReplace|StringRight|StringSplit|StringTrimLeft|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2149 r'StringTrimRight|StringUpper|Suspend|SysGet|Thread|ToolTip|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2150 r'Transform|TrayTip|URLDownloadToFile|While|WinActivate|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2151 r'WinActivateBottom|WinClose|WinGetActiveStats|WinGetActiveTitle|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2152 r'WinGetClass|WinGetPos|WinGetText|WinGetTitle|WinGet|WinHide|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2153 r'WinKill|WinMaximize|WinMenuSelectItem|WinMinimizeAllUndo|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2154 r'WinMinimizeAll|WinMinimize|WinMove|WinRestore|WinSetTitle|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2155 r'WinSet|WinShow|WinWaitActive|WinWaitClose|WinWaitNotActive|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2156 r'WinWait)\b', bygroups(Text, Name.Builtin)),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2157 ],
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2158 'builtInFunctions': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2159 (r'(?i)(Abs|ACos|Asc|ASin|ATan|Ceil|Chr|Cos|DllCall|Exp|FileExist|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2160 r'Floor|GetKeyState|IL_Add|IL_Create|IL_Destroy|InStr|IsFunc|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2161 r'IsLabel|Ln|Log|LV_Add|LV_Delete|LV_DeleteCol|LV_GetCount|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2162 r'LV_GetNext|LV_GetText|LV_Insert|LV_InsertCol|LV_Modify|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2163 r'LV_ModifyCol|LV_SetImageList|Mod|NumGet|NumPut|OnMessage|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2164 r'RegExMatch|RegExReplace|RegisterCallback|Round|SB_SetIcon|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2165 r'SB_SetParts|SB_SetText|Sin|Sqrt|StrLen|SubStr|Tan|TV_Add|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2166 r'TV_Delete|TV_GetChild|TV_GetCount|TV_GetNext|TV_Get|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2167 r'TV_GetParent|TV_GetPrev|TV_GetSelection|TV_GetText|TV_Modify|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2168 r'VarSetCapacity|WinActive|WinExist|Object|ComObjActive|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2169 r'ComObjArray|ComObjEnwrap|ComObjUnwrap|ComObjParameter|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2170 r'ComObjType|ComObjConnect|ComObjCreate|ComObjGet|ComObjError|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2171 r'ComObjValue|Insert|MinIndex|MaxIndex|Remove|SetCapacity|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2172 r'GetCapacity|GetAddress|_NewEnum|FileOpen|Read|Write|ReadLine|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2173 r'WriteLine|ReadNumType|WriteNumType|RawRead|RawWrite|Seek|Tell|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2174 r'Close|Next|IsObject|StrPut|StrGet|Trim|LTrim|RTrim)\b',
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2175 Name.Function),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2176 ],
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2177 'builtInVariables': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2178 (r'(?i)(A_AhkPath|A_AhkVersion|A_AppData|A_AppDataCommon|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2179 r'A_AutoTrim|A_BatchLines|A_CaretX|A_CaretY|A_ComputerName|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2180 r'A_ControlDelay|A_Cursor|A_DDDD|A_DDD|A_DD|A_DefaultMouseSpeed|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2181 r'A_Desktop|A_DesktopCommon|A_DetectHiddenText|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2182 r'A_DetectHiddenWindows|A_EndChar|A_EventInfo|A_ExitReason|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2183 r'A_FormatFloat|A_FormatInteger|A_Gui|A_GuiEvent|A_GuiControl|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2184 r'A_GuiControlEvent|A_GuiHeight|A_GuiWidth|A_GuiX|A_GuiY|A_Hour|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2185 r'A_IconFile|A_IconHidden|A_IconNumber|A_IconTip|A_Index|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2186 r'A_IPAddress1|A_IPAddress2|A_IPAddress3|A_IPAddress4|A_ISAdmin|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2187 r'A_IsCompiled|A_IsCritical|A_IsPaused|A_IsSuspended|A_KeyDelay|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2188 r'A_Language|A_LastError|A_LineFile|A_LineNumber|A_LoopField|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2189 r'A_LoopFileAttrib|A_LoopFileDir|A_LoopFileExt|A_LoopFileFullPath|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2190 r'A_LoopFileLongPath|A_LoopFileName|A_LoopFileShortName|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2191 r'A_LoopFileShortPath|A_LoopFileSize|A_LoopFileSizeKB|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2192 r'A_LoopFileSizeMB|A_LoopFileTimeAccessed|A_LoopFileTimeCreated|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2193 r'A_LoopFileTimeModified|A_LoopReadLine|A_LoopRegKey|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2194 r'A_LoopRegName|A_LoopRegSubkey|A_LoopRegTimeModified|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2195 r'A_LoopRegType|A_MDAY|A_Min|A_MM|A_MMM|A_MMMM|A_Mon|A_MouseDelay|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2196 r'A_MSec|A_MyDocuments|A_Now|A_NowUTC|A_NumBatchLines|A_OSType|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2197 r'A_OSVersion|A_PriorHotkey|A_ProgramFiles|A_Programs|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2198 r'A_ProgramsCommon|A_ScreenHeight|A_ScreenWidth|A_ScriptDir|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2199 r'A_ScriptFullPath|A_ScriptName|A_Sec|A_Space|A_StartMenu|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2200 r'A_StartMenuCommon|A_Startup|A_StartupCommon|A_StringCaseSense|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2201 r'A_Tab|A_Temp|A_ThisFunc|A_ThisHotkey|A_ThisLabel|A_ThisMenu|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2202 r'A_ThisMenuItem|A_ThisMenuItemPos|A_TickCount|A_TimeIdle|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2203 r'A_TimeIdlePhysical|A_TimeSincePriorHotkey|A_TimeSinceThisHotkey|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2204 r'A_TitleMatchMode|A_TitleMatchModeSpeed|A_UserName|A_WDay|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2205 r'A_WinDelay|A_WinDir|A_WorkingDir|A_YDay|A_YEAR|A_YWeek|A_YYYY|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2206 r'Clipboard|ClipboardAll|ComSpec|ErrorLevel|ProgramFiles|True|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2207 r'False|A_IsUnicode|A_FileEncoding|A_OSVersion|A_PtrSize)\b',
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2208 Name.Variable),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2209 ],
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2210 'labels': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2211 # hotkeys and labels
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2212 # technically, hotkey names are limited to named keys and buttons
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2213 (r'(^\s*)([^:\s\(\"]+?:{1,2})', bygroups(Text, Name.Label)),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2214 (r'(^\s*)(::[^:\s]+?::)', bygroups(Text, Name.Label)),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2215 ],
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2216 'numbers': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2217 (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
2218 (r'\d+[eE][+-]?[0-9]+', Number.Float),
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2219 (r'0\d+', Number.Oct),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2220 (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
2221 (r'\d+L', Number.Integer.Long),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2222 (r'\d+', Number.Integer)
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2223 ],
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2224 'stringescape': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2225 (r'\"\"|\`([\,\%\`abfnrtv])', String.Escape),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2226 ],
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2227 'strings': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2228 (r'[^"\n]+', String),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2229 ],
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2230 'dqs': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2231 (r'"', String, '#pop'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2232 include('strings')
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2233 ],
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2234 'garbage': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2235 (r'[^\S\n]', Text),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2236 # (r'.', Text), # no cheating
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2237 ],
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2238 }
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2239
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2240
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2241 class MaqlLexer(RegexLexer):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2242 """
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2243 Lexer for `GoodData MAQL
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2244 <https://secure.gooddata.com/docs/html/advanced.metric.tutorial.html>`_
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2245 scripts.
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2246
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2247 *New in Pygments 1.4.*
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2248 """
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2249
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2250 name = 'MAQL'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2251 aliases = ['maql']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2252 filenames = ['*.maql']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2253 mimetypes = ['text/x-gooddata-maql','application/x-gooddata-maql']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2254
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2255 flags = re.IGNORECASE
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2256 tokens = {
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2257 'root': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2258 # IDENTITY
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2259 (r'IDENTIFIER\b', Name.Builtin),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2260 # IDENTIFIER
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2261 (r'\{[^}]+\}', Name.Variable),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2262 # NUMBER
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2263 (r'[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]{1,3})?', Literal.Number),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2264 # STRING
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2265 (r'"', Literal.String, 'string-literal'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2266 # RELATION
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2267 (r'\<\>|\!\=', Operator),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2268 (r'\=|\>\=|\>|\<\=|\<', Operator),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2269 # :=
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2270 (r'\:\=', Operator),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2271 # OBJECT
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2272 (r'\[[^]]+\]', Name.Variable.Class),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2273 # keywords
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2274 (r'(DIMENSIONS?|BOTTOM|METRIC|COUNT|OTHER|FACT|WITH|TOP|OR|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2275 r'ATTRIBUTE|CREATE|PARENT|FALSE|ROWS?|FROM|ALL|AS|PF|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2276 r'COLUMNS?|DEFINE|REPORT|LIMIT|TABLE|LIKE|AND|BY|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2277 r'BETWEEN|EXCEPT|SELECT|MATCH|WHERE|TRUE|FOR|IN|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2278 r'WITHOUT|FILTER|ALIAS|ORDER|FACT|WHEN|NOT|ON|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2279 r'KEYS|KEY|FULLSET|PRIMARY|LABELS|LABEL|VISUAL|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2280 r'TITLE|DESCRIPTION|FOLDER|ALTER|DROP|ADD|DATASET|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2281 r'DATATYPE|INT|BIGINT|DOUBLE|DATE|VARCHAR|DECIMAL|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2282 r'SYNCHRONIZE|TYPE|DEFAULT|ORDER|ASC|DESC|HYPERLINK|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2283 r'INCLUDE|TEMPLATE|MODIFY)\b', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2284 # FUNCNAME
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2285 (r'[a-zA-Z]\w*\b', Name.Function),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2286 # Comments
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2287 (r'#.*', Comment.Single),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2288 # Punctuation
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2289 (r'[,;\(\)]', Token.Punctuation),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2290 # Space is not significant
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2291 (r'\s+', Text)
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2292 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2293 'string-literal': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2294 (r'\\[tnrfbae"\\]', String.Escape),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2295 (r'"', Literal.String, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2296 (r'[^\\"]+', Literal.String)
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2297 ],
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
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 class GoodDataCLLexer(RegexLexer):
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 Lexer for `GoodData-CL <http://github.com/gooddata/GoodData-CL/raw/master/cli/src/main/resources/com/gooddata/processor/COMMANDS.txt>`_
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2304 script files.
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2305
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2306 *New in Pygments 1.4.*
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2307 """
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2308
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2309 name = 'GoodData-CL'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2310 aliases = ['gooddata-cl']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2311 filenames = ['*.gdc']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2312 mimetypes = ['text/x-gooddata-cl']
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 flags = re.IGNORECASE
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2315 tokens = {
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2316 'root': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2317 # Comments
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2318 (r'#.*', Comment.Single),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2319 # Function call
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2320 (r'[a-zA-Z]\w*', Name.Function),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2321 # Argument list
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2322 (r'\(', Token.Punctuation, 'args-list'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2323 # Punctuation
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2324 (r';', Token.Punctuation),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2325 # Space is not significant
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2326 (r'\s+', Text)
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2327 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2328 'args-list': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2329 (r'\)', Token.Punctuation, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2330 (r',', Token.Punctuation),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2331 (r'[a-zA-Z]\w*', Name.Variable),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2332 (r'=', Operator),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2333 (r'"', Literal.String, 'string-literal'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2334 (r'[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]{1,3})?', Literal.Number),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2335 # Space is not significant
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2336 (r'\s', Text)
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2337 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2338 'string-literal': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2339 (r'\\[tnrfbae"\\]', String.Escape),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2340 (r'"', Literal.String, '#pop'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2341 (r'[^\\"]+', Literal.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 }
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2344
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2345
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2346 class ProtoBufLexer(RegexLexer):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2347 """
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2348 Lexer for `Protocol Buffer <http://code.google.com/p/protobuf/>`_
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2349 definition files.
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 *New in Pygments 1.4.*
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2352 """
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 name = 'Protocol Buffer'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2355 aliases = ['protobuf']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2356 filenames = ['*.proto']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2357
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2358 tokens = {
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2359 'root': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2360 (r'[ \t]+', Text),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2361 (r'[,;{}\[\]\(\)]', Punctuation),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2362 (r'/(\\\n)?/(\n|(.|\n)*?[^\\]\n)', Comment.Single),
2426
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2363 (r'/(\\\n)?\*(.|\n)*?\*(\\\n)?/', Comment.Multiline),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2364 (r'\b(import|option|optional|required|repeated|default|packed|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2365 r'ctype|extensions|to|max|rpc|returns)\b', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2366 (r'(int32|int64|uint32|uint64|sint32|sint64|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2367 r'fixed32|fixed64|sfixed32|sfixed64|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2368 r'float|double|bool|string|bytes)\b', Keyword.Type),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2369 (r'(true|false)\b', Keyword.Constant),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2370 (r'(package)(\s+)', bygroups(Keyword.Namespace, Text), 'package'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2371 (r'(message|extend)(\s+)',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2372 bygroups(Keyword.Declaration, Text), 'message'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2373 (r'(enum|group|service)(\s+)',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2374 bygroups(Keyword.Declaration, Text), 'type'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2375 (r'\".*\"', String),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2376 (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
2377 (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
2378 (r'(\-?(inf|nan))', Number.Float),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2379 (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
2380 (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
2381 (r'\d+[LlUu]*', Number.Integer),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2382 (r'[+-=]', Operator),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2383 (r'([a-zA-Z_][a-zA-Z0-9_\.]*)([ \t]*)(=)',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2384 bygroups(Name.Attribute, Text, Operator)),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2385 ('[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
2386 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2387 'package': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2388 (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
2389 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2390 'message': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2391 (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
2392 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2393 'type': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2394 (r'[a-zA-Z_][a-zA-Z0-9_]*', Name, '#pop')
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2395 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2396 }
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2397
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2398
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2399 class HybrisLexer(RegexLexer):
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2400 """
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2401 For `Hybris <http://www.hybris-lang.org>`_ source code.
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2402
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2403 *New in Pygments 1.4.*
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
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2406 name = 'Hybris'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2407 aliases = ['hybris', 'hy']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2408 filenames = ['*.hy', '*.hyb']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2409 mimetypes = ['text/x-hybris', 'application/x-hybris']
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2410
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2411 flags = re.MULTILINE | re.DOTALL
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2412
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2413 tokens = {
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2414 'root': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2415 # method names
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2416 (r'^(\s*(?:function|method|operator\s+)+?)'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2417 r'([a-zA-Z_][a-zA-Z0-9_]*)'
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2418 r'(\s*)(\()', bygroups(Keyword, Name.Function, Text, Operator)),
808
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2419 (r'[^\S\n]+', Text),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2420 (r'//.*?\n', Comment.Single),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2421 (r'/\*.*?\*/', Comment.Multiline),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2422 (r'@[a-zA-Z_][a-zA-Z0-9_\.]*', Name.Decorator),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2423 (r'(break|case|catch|next|default|do|else|finally|for|foreach|of|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2424 r'unless|if|new|return|switch|me|throw|try|while)\b', Keyword),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2425 (r'(extends|private|protected|public|static|throws|function|method|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2426 r'operator)\b', Keyword.Declaration),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2427 (r'(true|false|null|__FILE__|__LINE__|__VERSION__|__LIB_PATH__|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2428 r'__INC_PATH__)\b', Keyword.Constant),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2429 (r'(class|struct)(\s+)',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2430 bygroups(Keyword.Declaration, Text), 'class'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2431 (r'(import|include)(\s+)',
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2432 bygroups(Keyword.Namespace, Text), 'import'),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2433 (r'(gc_collect|gc_mm_items|gc_mm_usage|gc_collect_threshold|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2434 r'urlencode|urldecode|base64encode|base64decode|sha1|crc32|sha2|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2435 r'md5|md5_file|acos|asin|atan|atan2|ceil|cos|cosh|exp|fabs|floor|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2436 r'fmod|log|log10|pow|sin|sinh|sqrt|tan|tanh|isint|isfloat|ischar|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2437 r'isstring|isarray|ismap|isalias|typeof|sizeof|toint|tostring|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2438 r'fromxml|toxml|binary|pack|load|eval|var_names|var_values|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2439 r'user_functions|dyn_functions|methods|call|call_method|mknod|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2440 r'mkfifo|mount|umount2|umount|ticks|usleep|sleep|time|strtime|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2441 r'strdate|dllopen|dlllink|dllcall|dllcall_argv|dllclose|env|exec|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2442 r'fork|getpid|wait|popen|pclose|exit|kill|pthread_create|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2443 r'pthread_create_argv|pthread_exit|pthread_join|pthread_kill|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2444 r'smtp_send|http_get|http_post|http_download|socket|bind|listen|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2445 r'accept|getsockname|getpeername|settimeout|connect|server|recv|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2446 r'send|close|print|println|printf|input|readline|serial_open|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2447 r'serial_fcntl|serial_get_attr|serial_get_ispeed|serial_get_ospeed|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2448 r'serial_set_attr|serial_set_ispeed|serial_set_ospeed|serial_write|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2449 r'serial_read|serial_close|xml_load|xml_parse|fopen|fseek|ftell|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2450 r'fsize|fread|fwrite|fgets|fclose|file|readdir|pcre_replace|size|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2451 r'pop|unmap|has|keys|values|length|find|substr|replace|split|trim|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2452 r'remove|contains|join)\b', Name.Builtin),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2453 (r'(MethodReference|Runner|Dll|Thread|Pipe|Process|Runnable|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2454 r'CGI|ClientSocket|Socket|ServerSocket|File|Console|Directory|'
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2455 r'Exception)\b', Keyword.Type),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2456 (r'"(\\\\|\\"|[^"])*"', String),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2457 (r"'\\.'|'[^\\]'|'\\u[0-9a-f]{4}'", String.Char),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2458 (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
2459 bygroups(Operator, Name.Attribute)),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2460 (r'[a-zA-Z_][a-zA-Z0-9_]*:', Name.Label),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2461 (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
2462 (r'[~\^\*!%&\[\]\(\)\{\}<>\|+=:;,./?\-@]+', Operator),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2463 (r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2464 (r'0x[0-9a-f]+', Number.Hex),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2465 (r'[0-9]+L?', Number.Integer),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2466 (r'\n', Text),
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2467 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2468 'class': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2469 (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
2470 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2471 'import': [
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2472 (r'[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
2473 ],
8f85926125ef Updated Pygments to version 1.4.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
2474 }
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2475
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2476
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2477 class AwkLexer(RegexLexer):
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2478 """
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2479 For Awk scripts.
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2480
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2481 *New in Pygments 1.5.*
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2482 """
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2483
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2484 name = 'Awk'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2485 aliases = ['awk', 'gawk', 'mawk', 'nawk']
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2486 filenames = ['*.awk']
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2487 mimetypes = ['application/x-awk']
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2488
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2489 tokens = {
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2490 'commentsandwhitespace': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2491 (r'\s+', Text),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2492 (r'#.*$', Comment.Single)
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2493 ],
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2494 'slashstartsregex': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2495 include('commentsandwhitespace'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2496 (r'/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2497 r'\B', String.Regex, '#pop'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2498 (r'(?=/)', Text, ('#pop', 'badregex')),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2499 (r'', Text, '#pop')
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2500 ],
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2501 'badregex': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2502 (r'\n', Text, '#pop')
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2503 ],
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2504 'root': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2505 (r'^(?=\s|/)', Text, 'slashstartsregex'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2506 include('commentsandwhitespace'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2507 (r'\+\+|--|\|\||&&|in|\$|!?~|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2508 r'(\*\*|[-<>+*%\^/!=])=?', Operator, 'slashstartsregex'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2509 (r'[{(\[;,]', Punctuation, 'slashstartsregex'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2510 (r'[})\].]', Punctuation),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2511 (r'(break|continue|do|while|exit|for|if|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2512 r'return)\b', Keyword, 'slashstartsregex'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2513 (r'function\b', Keyword.Declaration, 'slashstartsregex'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2514 (r'(atan2|cos|exp|int|log|rand|sin|sqrt|srand|gensub|gsub|index|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2515 r'length|match|split|sprintf|sub|substr|tolower|toupper|close|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2516 r'fflush|getline|next|nextfile|print|printf|strftime|systime|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2517 r'delete|system)\b', Keyword.Reserved),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2518 (r'(ARGC|ARGIND|ARGV|CONVFMT|ENVIRON|ERRNO|FIELDWIDTHS|FILENAME|FNR|FS|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2519 r'IGNORECASE|NF|NR|OFMT|OFS|ORFS|RLENGTH|RS|RSTART|RT|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2520 r'SUBSEP)\b', Name.Builtin),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2521 (r'[$a-zA-Z_][a-zA-Z0-9_]*', Name.Other),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2522 (r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2523 (r'0x[0-9a-fA-F]+', Number.Hex),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2524 (r'[0-9]+', Number.Integer),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2525 (r'"(\\\\|\\"|[^"])*"', String.Double),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2526 (r"'(\\\\|\\'|[^'])*'", String.Single),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2527 ]
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2528 }
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2529
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2530
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2531 class Cfengine3Lexer(RegexLexer):
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2532 """
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2533 Lexer for `CFEngine3 <http://cfengine.org>`_ policy files.
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2534
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2535 *New in Pygments 1.5.*
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2536 """
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2537
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2538 name = 'CFEngine3'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2539 aliases = ['cfengine3', 'cf3']
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2540 filenames = ['*.cf']
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2541 mimetypes = []
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2542
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2543 tokens = {
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2544 'root': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2545 (r'#.*?\n', Comment),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2546 (r'(body)(\s+)(\S+)(\s+)(control)',
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2547 bygroups(Keyword, Text, Keyword, Text, Keyword)),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2548 (r'(body|bundle)(\s+)(\S+)(\s+)(\w+)(\()',
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2549 bygroups(Keyword, Text, Keyword, Text, Name.Function, Punctuation),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2550 'arglist'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2551 (r'(body|bundle)(\s+)(\S+)(\s+)(\w+)',
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2552 bygroups(Keyword, Text, Keyword, Text, Name.Function)),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2553 (r'(")([^"]+)(")(\s+)(string|slist|int|real)(\s*)(=>)(\s*)',
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2554 bygroups(Punctuation,Name.Variable,Punctuation,
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2555 Text,Keyword.Type,Text,Operator,Text)),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2556 (r'(\S+)(\s*)(=>)(\s*)',
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2557 bygroups(Keyword.Reserved,Text,Operator,Text)),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2558 (r'"', String, 'string'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2559 (r'(\w+)(\()', bygroups(Name.Function, Punctuation)),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2560 (r'([\w.!&|\(\)]+)(::)', bygroups(Name.Class, Punctuation)),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2561 (r'(\w+)(:)', bygroups(Keyword.Declaration,Punctuation)),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2562 (r'@[\{\(][^\)\}]+[\}\)]', Name.Variable),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2563 (r'[(){},;]', Punctuation),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2564 (r'=>', Operator),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2565 (r'->', Operator),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2566 (r'\d+\.\d+', Number.Float),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2567 (r'\d+', Number.Integer),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2568 (r'\w+', Name.Function),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2569 (r'\s+', Text),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2570 ],
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2571 'string': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2572 (r'\$[\{\(]', String.Interpol, 'interpol'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2573 (r'\\.', String.Escape),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2574 (r'"', String, '#pop'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2575 (r'\n', String),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2576 (r'.', String),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2577 ],
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2578 'interpol': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2579 (r'\$[\{\(]', String.Interpol, '#push'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2580 (r'[\}\)]', String.Interpol, '#pop'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2581 (r'[^\$\{\(\)\}]+', String.Interpol),
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 'arglist': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2584 (r'\)', Punctuation, '#pop'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2585 (r',', Punctuation),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2586 (r'\w+', Name.Variable),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2587 (r'\s+', Text),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2588 ],
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
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2592 class SnobolLexer(RegexLexer):
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2593 """
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2594 Lexer for the SNOBOL4 programming language.
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 Recognizes the common ASCII equivalents of the original SNOBOL4 operators.
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2597 Does not require spaces around binary operators.
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2598
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2599 *New in Pygments 1.5.*
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2600 """
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2601
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2602 name = "Snobol"
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2603 aliases = ["snobol"]
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2604 filenames = ['*.snobol']
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2605 mimetypes = ['text/x-snobol']
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2606
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2607 tokens = {
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2608 # root state, start of line
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2609 # comments, continuation lines, and directives start in column 1
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2610 # as do labels
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2611 'root': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2612 (r'\*.*\n', Comment),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2613 (r'[\+\.] ', Punctuation, 'statement'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2614 (r'-.*\n', Comment),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2615 (r'END\s*\n', Name.Label, 'heredoc'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2616 (r'[A-Za-z\$][\w$]*', Name.Label, 'statement'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2617 (r'\s+', Text, 'statement'),
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 # statement state, line after continuation or label
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2620 'statement': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2621 (r'\s*\n', Text, '#pop'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2622 (r'\s+', Text),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2623 (r'(?<=[^\w.])(LT|LE|EQ|NE|GE|GT|INTEGER|IDENT|DIFFER|LGT|SIZE|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2624 r'REPLACE|TRIM|DUPL|REMDR|DATE|TIME|EVAL|APPLY|OPSYN|LOAD|UNLOAD|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2625 r'LEN|SPAN|BREAK|ANY|NOTANY|TAB|RTAB|REM|POS|RPOS|FAIL|FENCE|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2626 r'ABORT|ARB|ARBNO|BAL|SUCCEED|INPUT|OUTPUT|TERMINAL)(?=[^\w.])',
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2627 Name.Builtin),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2628 (r'[A-Za-z][\w\.]*', Name),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2629 # ASCII equivalents of original operators
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2630 # | for the EBCDIC equivalent, ! likewise
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2631 # \ for EBCDIC negation
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2632 (r'\*\*|[\?\$\.!%\*/#+\-@\|&\\=]', Operator),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2633 (r'"[^"]*"', String),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2634 (r"'[^']*'", String),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2635 # Accept SPITBOL syntax for real numbers
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2636 # as well as Macro SNOBOL4
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2637 (r'[0-9]+(?=[^\.EeDd])', Number.Integer),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2638 (r'[0-9]+(\.[0-9]*)?([EDed][-+]?[0-9]+)?', Number.Float),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2639 # Goto
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2640 (r':', Punctuation, 'goto'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2641 (r'[\(\)<>,;]', Punctuation),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2642 ],
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2643 # Goto block
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2644 'goto': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2645 (r'\s*\n', Text, "#pop:2"),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2646 (r'\s+', Text),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2647 (r'F|S', Keyword),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2648 (r'(\()([A-Za-z][\w.]*)(\))',
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2649 bygroups(Punctuation, Name.Label, Punctuation))
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2650 ],
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2651 # everything after the END statement is basically one
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2652 # big heredoc.
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2653 'heredoc': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2654 (r'.*\n', String.Heredoc)
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2655 ]
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2656 }
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2657
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2658
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2659 class UrbiscriptLexer(ExtendedRegexLexer):
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2660 """
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2661 For UrbiScript source code.
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2662
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2663 *New in Pygments 1.5.*
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2664 """
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2665
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2666 name = 'UrbiScript'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2667 aliases = ['urbiscript']
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2668 filenames = ['*.u']
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2669 mimetypes = ['application/x-urbiscript']
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 flags = re.DOTALL
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2672
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2673 ## TODO
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2674 # - handle Experimental and deprecated tags with specific tokens
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2675 # - handle Angles and Durations with specific tokens
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2676
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2677 def blob_callback(lexer, match, ctx):
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2678 text_before_blob = match.group(1)
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2679 blob_start = match.group(2)
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2680 blob_size_str = match.group(3)
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2681 blob_size = int(blob_size_str)
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2682 yield match.start(), String, text_before_blob
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2683 ctx.pos += len(text_before_blob)
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 # if blob size doesn't match blob format (example : "\B(2)(aaa)")
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2686 # yield blob as a string
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2687 if ctx.text[match.end() + blob_size] != ")":
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2688 result = "\\B(" + blob_size_str + ")("
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2689 yield match.start(), String, result
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2690 ctx.pos += len(result)
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2691 return
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2692
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2693 # if blob is well formated, yield as Escape
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2694 blob_text = blob_start + ctx.text[match.end():match.end()+blob_size] + ")"
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2695 yield match.start(), String.Escape, blob_text
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2696 ctx.pos = match.end() + blob_size + 1 # +1 is the ending ")"
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2697
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2698 tokens = {
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2699 'root': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2700 (r'\s+', Text),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2701 # comments
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2702 (r'//.*?\n', Comment),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2703 (r'/\*', Comment.Multiline, 'comment'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2704 (r'(?:every|for|loop|while)(?:;|&|\||,)',Keyword),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2705 (r'(?:assert|at|break|case|catch|closure|compl|continue|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2706 r'default|else|enum|every|external|finally|for|freezeif|if|new|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2707 r'onleave|return|stopif|switch|this|throw|timeout|try|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2708 r'waituntil|whenever|while)\b', Keyword),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2709 (r'(?:asm|auto|bool|char|const_cast|delete|double|dynamic_cast|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2710 r'explicit|export|extern|float|friend|goto|inline|int|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2711 r'long|mutable|namespace|register|reinterpret_cast|short|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2712 r'signed|sizeof|static_cast|struct|template|typedef|typeid|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2713 r'typename|union|unsigned|using|virtual|volatile|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2714 r'wchar_t)\b', Keyword.Reserved),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2715 # deprecated keywords, use a meaningfull token when available
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2716 (r'(?:emit|foreach|internal|loopn|static)\b', Keyword),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2717 # ignored keywords, use a meaningfull token when available
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2718 (r'(?:private|protected|public)\b', Keyword),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2719 (r'(?:var|do|const|function|class)\b', Keyword.Declaration),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2720 (r'(?:true|false|nil|void)\b', Keyword.Constant),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2721 (r'(?:Barrier|Binary|Boolean|CallMessage|Channel|Code|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2722 r'Comparable|Container|Control|Date|Dictionary|Directory|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2723 r'Duration|Enumeration|Event|Exception|Executable|File|Finalizable|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2724 r'Float|FormatInfo|Formatter|Global|Group|Hash|InputStream|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2725 r'IoService|Job|Kernel|Lazy|List|Loadable|Lobby|Location|Logger|Math|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2726 r'Mutex|nil|Object|Orderable|OutputStream|Pair|Path|Pattern|Position|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2727 r'Primitive|Process|Profile|PseudoLazy|PubSub|RangeIterable|Regexp|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2728 r'Semaphore|Server|Singleton|Socket|StackFrame|Stream|String|System|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2729 r'Tag|Timeout|Traceable|TrajectoryGenerator|Triplet|Tuple'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2730 r'|UObject|UValue|UVar)\b', Name.Builtin),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2731 (r'(?:this)\b', Name.Builtin.Pseudo),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2732 # don't match single | and &
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2733 (r'(?:[-=+*%/<>~^:]+|\.&?|\|\||&&)', Operator),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2734 (r'(?:and_eq|and|bitand|bitor|in|not|not_eq|or_eq|or|xor_eq|xor)\b',
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2735 Operator.Word),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2736 (r'[{}\[\]()]+', Punctuation),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2737 (r'(?:;|\||,|&|\?|!)+', Punctuation),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2738 (r'[$a-zA-Z_][a-zA-Z0-9_]*', Name.Other),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2739 (r'0x[0-9a-fA-F]+', Number.Hex),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2740 # Float, Integer, Angle and Duration
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2741 (r'(?:[0-9]+(?:(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?)?'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2742 r'((?:rad|deg|grad)|(?:ms|s|min|h|d))?)\b', Number.Float),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2743 # handle binary blob in strings
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2744 (r'"', String.Double, "string.double"),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2745 (r"'", String.Single, "string.single"),
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 'string.double': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2748 (r'((?:\\\\|\\"|[^"])*?)(\\B\((\d+)\)\()', blob_callback),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2749 (r'(\\\\|\\"|[^"])*?"', String.Double, '#pop'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2750 ],
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2751 'string.single': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2752 (r"((?:\\\\|\\'|[^'])*?)(\\B\((\d+)\)\()", blob_callback),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2753 (r"(\\\\|\\'|[^'])*?'", String.Single, '#pop'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2754 ],
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2755 # from http://pygments.org/docs/lexerdevelopment/#changing-states
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2756 'comment': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2757 (r'[^*/]', Comment.Multiline),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2758 (r'/\*', Comment.Multiline, '#push'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2759 (r'\*/', Comment.Multiline, '#pop'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2760 (r'[*/]', Comment.Multiline),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2761 ]
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2762 }
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2763
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2764
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2765 class OpenEdgeLexer(RegexLexer):
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2766 """
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2767 Lexer for `OpenEdge ABL (formerly Progress)
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2768 <http://web.progress.com/en/openedge/abl.html>`_ source code.
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2769
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2770 *New in Pygments 1.5.*
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2771 """
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2772 name = 'OpenEdge ABL'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2773 aliases = ['openedge', 'abl', 'progress']
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2774 filenames = ['*.p', '*.cls']
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2775 mimetypes = ['text/x-openedge', 'application/x-openedge']
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2776
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2777 types = (r'(?i)(^|(?<=[^0-9a-z_\-]))(CHARACTER|CHAR|CHARA|CHARAC|CHARACT|CHARACTE|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2778 r'COM-HANDLE|DATE|DATETIME|DATETIME-TZ|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2779 r'DECIMAL|DEC|DECI|DECIM|DECIMA|HANDLE|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2780 r'INT64|INTEGER|INT|INTE|INTEG|INTEGE|'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2781 r'LOGICAL|LONGCHAR|MEMPTR|RAW|RECID|ROWID)\s*($|(?=[^0-9a-z_\-]))')
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2782
2426
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2783 keywords = (r'(?i)(^|(?<=[^0-9a-z_\-]))(' +
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2784 r'|'.join(OPENEDGEKEYWORDS) +
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2785 r')\s*($|(?=[^0-9a-z_\-]))')
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2786 tokens = {
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2787 'root': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2788 (r'/\*', Comment.Multiline, 'comment'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2789 (r'\{', Comment.Preproc, 'preprocessor'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2790 (r'\s*&.*', Comment.Preproc),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2791 (r'0[xX][0-9a-fA-F]+[LlUu]*', Number.Hex),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2792 (r'(?i)(DEFINE|DEF|DEFI|DEFIN)\b', Keyword.Declaration),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2793 (types, Keyword.Type),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2794 (keywords, Name.Builtin),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2795 (r'"(\\\\|\\"|[^"])*"', String.Double),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2796 (r"'(\\\\|\\'|[^'])*'", String.Single),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2797 (r'[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?', Number.Float),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2798 (r'[0-9]+', Number.Integer),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2799 (r'\s+', Text),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2800 (r'[+*/=-]', Operator),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2801 (r'[.:()]', Punctuation),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2802 (r'.', Name.Variable), # Lazy catch-all
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2803 ],
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2804 'comment': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2805 (r'[^*/]', Comment.Multiline),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2806 (r'/\*', Comment.Multiline, '#push'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2807 (r'\*/', Comment.Multiline, '#pop'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2808 (r'[*/]', Comment.Multiline)
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 'preprocessor': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2811 (r'[^{}]', Comment.Preproc),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2812 (r'{', Comment.Preproc, '#push'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2813 (r'}', Comment.Preproc, '#pop'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2814 ],
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2815 }
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2816
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2817
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2818 class BroLexer(RegexLexer):
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 For `Bro <http://bro-ids.org/>`_ scripts.
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2821
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2822 *New in Pygments 1.5.*
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2823 """
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2824 name = 'Bro'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2825 aliases = ['bro']
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2826 filenames = ['*.bro']
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 _hex = r'[0-9a-fA-F_]+'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2829 _float = r'((\d*\.?\d+)|(\d+\.?\d*))([eE][-+]?\d+)?'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2830 _h = r'[A-Za-z0-9][-A-Za-z0-9]*'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2831
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2832 tokens = {
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2833 'root': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2834 # Whitespace
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2835 (r'^@.*?\n', Comment.Preproc),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2836 (r'#.*?\n', Comment.Single),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2837 (r'\n', Text),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2838 (r'\s+', Text),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2839 (r'\\\n', Text),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2840 # Keywords
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2841 (r'(add|alarm|break|case|const|continue|delete|do|else|enum|event'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2842 r'|export|for|function|if|global|local|module|next'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2843 r'|of|print|redef|return|schedule|type|when|while)\b', Keyword),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2844 (r'(addr|any|bool|count|counter|double|file|int|interval|net'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2845 r'|pattern|port|record|set|string|subnet|table|time|timer'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2846 r'|vector)\b', Keyword.Type),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2847 (r'(T|F)\b', Keyword.Constant),
2426
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2848 (r'(&)((?:add|delete|expire)_func|attr|(?:create|read|write)_expire'
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2849 r'|default|disable_print_hook|raw_output|encrypt|group|log'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2850 r'|mergeable|optional|persistent|priority|redef'
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2851 r'|rotate_(?:interval|size)|synchronized)\b', bygroups(Punctuation,
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2852 Keyword)),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2853 (r'\s+module\b', Keyword.Namespace),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2854 # Addresses, ports and networks
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2855 (r'\d+/(tcp|udp|icmp|unknown)\b', Number),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2856 (r'(\d+\.){3}\d+', Number),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2857 (r'(' + _hex + r'){7}' + _hex, Number),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2858 (r'0x' + _hex + r'(' + _hex + r'|:)*::(' + _hex + r'|:)*', Number),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2859 (r'((\d+|:)(' + _hex + r'|:)*)?::(' + _hex + r'|:)*', Number),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2860 (r'(\d+\.\d+\.|(\d+\.){2}\d+)', Number),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2861 # Hostnames
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2862 (_h + r'(\.' + _h + r')+', String),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2863 # Numeric
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2864 (_float + r'\s+(day|hr|min|sec|msec|usec)s?\b', Literal.Date),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2865 (r'0[xX]' + _hex, Number.Hex),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2866 (_float, Number.Float),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2867 (r'\d+', Number.Integer),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2868 (r'/', String.Regex, 'regex'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2869 (r'"', String, 'string'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2870 # Operators
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2871 (r'[!%*/+:<=>?~|-]', Operator),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2872 (r'([-+=&|]{2}|[+=!><-]=)', Operator),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2873 (r'(in|match)\b', Operator.Word),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2874 (r'[{}()\[\]$.,;]', Punctuation),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2875 # Identfier
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2876 (r'([_a-zA-Z]\w*)(::)', bygroups(Name, Name.Namespace)),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2877 (r'[a-zA-Z_][a-zA-Z_0-9]*', Name)
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 'string': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2880 (r'"', String, '#pop'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2881 (r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})', String.Escape),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2882 (r'[^\\"\n]+', String),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2883 (r'\\\n', String),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2884 (r'\\', String)
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2885 ],
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2886 'regex': [
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2887 (r'/', String.Regex, '#pop'),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2888 (r'\\[\\nt/]', String.Regex), # String.Escape is too intense here.
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2889 (r'[^\\/\n]+', String.Regex),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2890 (r'\\\n', String.Regex),
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 808
diff changeset
2891 (r'\\', String.Regex)
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 }
2426
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2894
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2895
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2896 class CbmBasicV2Lexer(RegexLexer):
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2897 """
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2898 For CBM BASIC V2 sources.
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2899
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2900 *New in Pygments 1.6.*
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2901 """
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2902 name = 'CBM BASIC V2'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2903 aliases = ['cbmbas']
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2904 filenames = ['*.bas']
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2905
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2906 flags = re.IGNORECASE
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2907
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2908 tokens = {
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2909 'root': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2910 (r'rem.*\n', Comment.Single),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2911 (r'\s+', Text),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2912 (r'new|run|end|for|to|next|step|go(to|sub)?|on|return|stop|cont'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2913 r'|if|then|input#?|read|wait|load|save|verify|poke|sys|print#?'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2914 r'|list|clr|cmd|open|close|get#?', Keyword.Reserved),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2915 (r'data|restore|dim|let|def|fn', Keyword.Declaration),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2916 (r'tab|spc|sgn|int|abs|usr|fre|pos|sqr|rnd|log|exp|cos|sin|tan|atn'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2917 r'|peek|len|val|asc|(str|chr|left|right|mid)\$', Name.Builtin),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2918 (r'[-+*/^<>=]', Operator),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2919 (r'not|and|or', Operator.Word),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2920 (r'"[^"\n]*.', String),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2921 (r'\d+|[-+]?\d*\.\d*(e[-+]?\d+)?', Number.Float),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2922 (r'[\(\),:;]', Punctuation),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2923 (r'\w+[$%]?', Name),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2924 ]
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2925 }
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2926
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2927 def analyse_text(self, text):
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2928 # if it starts with a line number, it shouldn't be a "modern" Basic
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2929 # like VB.net
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2930 if re.match(r'\d+', text):
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2931 return True
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2932
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2933
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2934 class MscgenLexer(RegexLexer):
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2935 """
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2936 For `Mscgen <http://www.mcternan.me.uk/mscgen/>`_ files.
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2937
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2938 *New in Pygments 1.6.*
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2939 """
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2940 name = 'Mscgen'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2941 aliases = ['mscgen', 'msc']
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2942 filenames = ['*.msc']
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2943
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2944 _var = r'([a-zA-Z0-9_]+|"(?:\\"|[^"])*")'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2945
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2946 tokens = {
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2947 'root': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2948 (r'msc\b', Keyword.Type),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2949 # Options
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2950 (r'(hscale|HSCALE|width|WIDTH|wordwraparcs|WORDWRAPARCS'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2951 r'|arcgradient|ARCGRADIENT)\b', Name.Property),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2952 # Operators
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2953 (r'(abox|ABOX|rbox|RBOX|box|BOX|note|NOTE)\b', Operator.Word),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2954 (r'(\.|-|\|){3}', Keyword),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2955 (r'(?:-|=|\.|:){2}'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2956 r'|<<=>>|<->|<=>|<<>>|<:>'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2957 r'|->|=>>|>>|=>|:>|-x|-X'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2958 r'|<-|<<=|<<|<=|<:|x-|X-|=', Operator),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2959 # Names
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2960 (r'\*', Name.Builtin),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2961 (_var, Name.Variable),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2962 # Other
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2963 (r'\[', Punctuation, 'attrs'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2964 (r'\{|\}|,|;', Punctuation),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2965 include('comments')
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2966 ],
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2967 'attrs': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2968 (r'\]', Punctuation, '#pop'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2969 (_var + r'(\s*)(=)(\s*)' + _var,
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2970 bygroups(Name.Attribute, Text.Whitespace, Operator, Text.Whitespace,
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2971 String)),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2972 (r',', Punctuation),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2973 include('comments')
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2974 ],
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2975 'comments': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2976 (r'(?://|#).*?\n', Comment.Single),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2977 (r'/\*(?:.|\n)*?\*/', Comment.Multiline),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2978 (r'[ \t\r\n]+', Text.Whitespace)
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2979 ]
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2980 }
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2981
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2982
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2983 def _rx_indent(level):
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2984 # Kconfig *always* interprets a tab as 8 spaces, so this is the default.
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2985 # Edit this if you are in an environment where KconfigLexer gets expanded
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2986 # input (tabs expanded to spaces) and the expansion tab width is != 8,
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2987 # e.g. in connection with Trac (trac.ini, [mimeviewer], tab_width).
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2988 # Value range here is 2 <= {tab_width} <= 8.
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2989 tab_width = 8
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2990 # Regex matching a given indentation {level}, assuming that indentation is
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2991 # a multiple of {tab_width}. In other cases there might be problems.
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2992 return r'(?:\t| {1,%s}\t| {%s}){%s}.*\n' % (tab_width-1, tab_width, level)
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2993
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2994
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2995 class KconfigLexer(RegexLexer):
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2996 """
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2997 For Linux-style Kconfig files.
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2998
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
2999 *New in Pygments 1.6.*
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
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3002 name = 'Kconfig'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3003 aliases = ['kconfig', 'menuconfig', 'linux-config', 'kernel-config']
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3004 # Adjust this if new kconfig file names appear in your environment
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3005 filenames = ['Kconfig', '*Config.in*', 'external.in*',
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3006 'standard-modules.in']
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3007 mimetypes = ['text/x-kconfig']
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3008 # No re.MULTILINE, indentation-aware help text needs line-by-line handling
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3009 flags = 0
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3010
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3011 def call_indent(level):
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3012 # If indentation >= {level} is detected, enter state 'indent{level}'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3013 return (_rx_indent(level), String.Doc, 'indent%s' % level)
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 def do_indent(level):
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3016 # Print paragraphs of indentation level >= {level} as String.Doc,
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3017 # ignoring blank lines. Then return to 'root' state.
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3018 return [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3019 (_rx_indent(level), String.Doc),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3020 (r'\s*\n', Text),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3021 (r'', Generic, '#pop:2')
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3022 ]
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3023
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3024 tokens = {
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3025 'root': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3026 (r'\s+', Text),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3027 (r'#.*?\n', Comment.Single),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3028 (r'(mainmenu|config|menuconfig|choice|endchoice|comment|menu|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3029 r'endmenu|visible if|if|endif|source|prompt|select|depends on|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3030 r'default|range|option)\b', Keyword),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3031 (r'(---help---|help)[\t ]*\n', Keyword, 'help'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3032 (r'(bool|tristate|string|hex|int|defconfig_list|modules|env)\b',
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3033 Name.Builtin),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3034 (r'[!=&|]', Operator),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3035 (r'[()]', Punctuation),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3036 (r'[0-9]+', Number.Integer),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3037 (r"'(''|[^'])*'", String.Single),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3038 (r'"(""|[^"])*"', String.Double),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3039 (r'\S+', Text),
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 # Help text is indented, multi-line and ends when a lower indentation
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3042 # level is detected.
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3043 'help': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3044 # Skip blank lines after help token, if any
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3045 (r'\s*\n', Text),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3046 # Determine the first help line's indentation level heuristically(!).
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3047 # Attention: this is not perfect, but works for 99% of "normal"
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3048 # indentation schemes up to a max. indentation level of 7.
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3049 call_indent(7),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3050 call_indent(6),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3051 call_indent(5),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3052 call_indent(4),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3053 call_indent(3),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3054 call_indent(2),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3055 call_indent(1),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3056 ('', Text, '#pop'), # for incomplete help sections without text
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3057 ],
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3058 # Handle text for indentation levels 7 to 1
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3059 'indent7': do_indent(7),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3060 'indent6': do_indent(6),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3061 'indent5': do_indent(5),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3062 'indent4': do_indent(4),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3063 'indent3': do_indent(3),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3064 'indent2': do_indent(2),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3065 'indent1': do_indent(1),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3066 }
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3067
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3068
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3069 class VGLLexer(RegexLexer):
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3070 """
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3071 For `SampleManager VGL <http://www.thermoscientific.com/samplemanager>`_
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3072 source code.
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3073
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3074 *New in Pygments 1.6.*
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3075 """
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3076 name = 'VGL'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3077 aliases = ['vgl']
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3078 filenames = ['*.rpf']
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3079
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3080 flags = re.MULTILINE | re.DOTALL | re.IGNORECASE
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3081
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3082 tokens = {
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3083 'root': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3084 (r'\{[^\}]*\}', Comment.Multiline),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3085 (r'declare', Keyword.Constant),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3086 (r'(if|then|else|endif|while|do|endwhile|and|or|prompt|object'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3087 r'|create|on|line|with|global|routine|value|endroutine|constant'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3088 r'|global|set|join|library|compile_option|file|exists|create|copy'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3089 r'|delete|enable|windows|name|notprotected)(?! *[=<>.,()])',
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3090 Keyword),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3091 (r'(true|false|null|empty|error|locked)', Keyword.Constant),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3092 (r'[~\^\*\#!%&\[\]\(\)<>\|+=:;,./?-]', Operator),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3093 (r'"[^"]*"', String),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3094 (r'(\.)([a-z_\$][a-z0-9_\$]*)', bygroups(Operator, Name.Attribute)),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3095 (r'[0-9][0-9]*(\.[0-9]+(e[+\-]?[0-9]+)?)?', Number),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3096 (r'[a-z_\$][a-z0-9_\$]*', Name),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3097 (r'[\r\n]+', Text),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3098 (r'\s+', Text)
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
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3102
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3103 class SourcePawnLexer(RegexLexer):
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3104 """
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3105 For SourcePawn source code with preprocessor directives.
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3106
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3107 *New in Pygments 1.6.*
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3108 """
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3109 name = 'SourcePawn'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3110 aliases = ['sp']
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3111 filenames = ['*.sp']
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3112 mimetypes = ['text/x-sourcepawn']
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3113
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3114 #: optional Comment or Whitespace
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3115 _ws = r'(?:\s|//.*?\n|/\*.*?\*/)+'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3116
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3117 tokens = {
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3118 'root': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3119 # preprocessor directives: without whitespace
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3120 ('^#if\s+0', Comment.Preproc, 'if0'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3121 ('^#', Comment.Preproc, 'macro'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3122 # or with whitespace
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3123 ('^' + _ws + r'#if\s+0', Comment.Preproc, 'if0'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3124 ('^' + _ws + '#', Comment.Preproc, 'macro'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3125 (r'\n', Text),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3126 (r'\s+', Text),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3127 (r'\\\n', Text), # line continuation
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3128 (r'/(\\\n)?/(\n|(.|\n)*?[^\\]\n)', Comment.Single),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3129 (r'/(\\\n)?\*(.|\n)*?\*(\\\n)?/', Comment.Multiline),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3130 (r'[{}]', Punctuation),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3131 (r'L?"', String, 'string'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3132 (r"L?'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])'", String.Char),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3133 (r'(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*', Number.Float),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3134 (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
3135 (r'0x[0-9a-fA-F]+[LlUu]*', Number.Hex),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3136 (r'0[0-7]+[LlUu]*', Number.Oct),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3137 (r'\d+[LlUu]*', Number.Integer),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3138 (r'\*/', Error),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3139 (r'[~!%^&*+=|?:<>/-]', Operator),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3140 (r'[()\[\],.;]', Punctuation),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3141 (r'(case|const|continue|native|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3142 r'default|else|enum|for|if|new|operator|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3143 r'public|return|sizeof|static|decl|struct|switch)\b', Keyword),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3144 (r'(bool|Float)\b', Keyword.Type),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3145 (r'(true|false)\b', Keyword.Constant),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3146 ('[a-zA-Z_][a-zA-Z0-9_]*', Name),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3147 ],
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3148 'string': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3149 (r'"', String, '#pop'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3150 (r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})', String.Escape),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3151 (r'[^\\"\n]+', String), # all other characters
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3152 (r'\\\n', String), # line continuation
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3153 (r'\\', String), # stray backslash
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3154 ],
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3155 'macro': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3156 (r'[^/\n]+', Comment.Preproc),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3157 (r'/\*(.|\n)*?\*/', Comment.Multiline),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3158 (r'//.*?\n', Comment.Single, '#pop'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3159 (r'/', Comment.Preproc),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3160 (r'(?<=\\)\n', Comment.Preproc),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3161 (r'\n', Comment.Preproc, '#pop'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3162 ],
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3163 'if0': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3164 (r'^\s*#if.*?(?<!\\)\n', Comment.Preproc, '#push'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3165 (r'^\s*#endif.*?(?<!\\)\n', Comment.Preproc, '#pop'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3166 (r'.*?\n', Comment),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3167 ]
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3168 }
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3169
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3170 SM_TYPES = ['Action', 'bool', 'Float', 'Plugin', 'String', 'any',
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3171 'AdminFlag', 'OverrideType', 'OverrideRule', 'ImmunityType',
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3172 'GroupId', 'AdminId', 'AdmAccessMode', 'AdminCachePart',
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3173 'CookieAccess', 'CookieMenu', 'CookieMenuAction', 'NetFlow',
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3174 'ConVarBounds', 'QueryCookie', 'ReplySource',
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3175 'ConVarQueryResult', 'ConVarQueryFinished', 'Function',
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3176 'Action', 'Identity', 'PluginStatus', 'PluginInfo', 'DBResult',
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3177 'DBBindType', 'DBPriority', 'PropType', 'PropFieldType',
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3178 'MoveType', 'RenderMode', 'RenderFx', 'EventHookMode',
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3179 'EventHook', 'FileType', 'FileTimeMode', 'PathType',
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3180 'ParamType', 'ExecType', 'DialogType', 'Handle', 'KvDataTypes',
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3181 'NominateResult', 'MapChange', 'MenuStyle', 'MenuAction',
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3182 'MenuSource', 'RegexError', 'SDKCallType', 'SDKLibrary',
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3183 'SDKFuncConfSource', 'SDKType', 'SDKPassMethod', 'RayType',
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3184 'TraceEntityFilter', 'ListenOverride', 'SortOrder', 'SortType',
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3185 'SortFunc2D', 'APLRes', 'FeatureType', 'FeatureStatus',
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3186 'SMCResult', 'SMCError', 'TFClassType', 'TFTeam', 'TFCond',
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3187 'TFResourceType', 'Timer', 'TopMenuAction', 'TopMenuObjectType',
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3188 'TopMenuPosition', 'TopMenuObject', 'UserMsg']
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3189
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3190 def __init__(self, **options):
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3191 self.smhighlighting = get_bool_opt(options,
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3192 'sourcemod', True)
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3193
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3194 self._functions = []
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3195 if self.smhighlighting:
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3196 from pygments.lexers._sourcemodbuiltins import FUNCTIONS
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3197 self._functions.extend(FUNCTIONS)
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3198 RegexLexer.__init__(self, **options)
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3199
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3200 def get_tokens_unprocessed(self, text):
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3201 for index, token, value in \
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3202 RegexLexer.get_tokens_unprocessed(self, text):
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3203 if token is Name:
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3204 if self.smhighlighting:
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3205 if value in self.SM_TYPES:
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3206 token = Keyword.Type
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3207 elif value in self._functions:
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3208 token = Name.Builtin
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3209 yield index, token, value
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3210
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3211
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3212 class PuppetLexer(RegexLexer):
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3213 """
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3214 For `Puppet <http://puppetlabs.com/>`__ configuration DSL.
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3215
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3216 *New in Pygments 1.6.*
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3217 """
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3218 name = 'Puppet'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3219 aliases = ['puppet']
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3220 filenames = ['*.pp']
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 tokens = {
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3223 'root': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3224 include('comments'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3225 include('keywords'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3226 include('names'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3227 include('numbers'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3228 include('operators'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3229 include('strings'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3230
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3231 (r'[]{}:(),;[]', Punctuation),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3232 (r'[^\S\n]+', Text),
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
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3235 'comments': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3236 (r'\s*#.*$', Comment),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3237 (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3238 ],
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3239
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3240 'operators': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3241 (r'(=>|\?|<|>|=|\+|-|/|\*|~|!|\|)', Operator),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3242 (r'(in|and|or|not)\b', Operator.Word),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3243 ],
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3244
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3245 'names': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3246 ('[a-zA-Z_][a-zA-Z0-9_]*', Name.Attribute),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3247 (r'(\$\S+)(\[)(\S+)(\])', bygroups(Name.Variable, Punctuation,
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3248 String, Punctuation)),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3249 (r'\$\S+', Name.Variable),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3250 ],
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3251
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3252 'numbers': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3253 # Copypasta from the Python lexer
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3254 (r'(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?j?', Number.Float),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3255 (r'\d+[eE][+-]?[0-9]+j?', Number.Float),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3256 (r'0[0-7]+j?', Number.Oct),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3257 (r'0[xX][a-fA-F0-9]+', Number.Hex),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3258 (r'\d+L', Number.Integer.Long),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3259 (r'\d+j?', Number.Integer)
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3260 ],
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3261
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3262 'keywords': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3263 # Left out 'group' and 'require'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3264 # Since they're often used as attributes
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3265 (r'(?i)(absent|alert|alias|audit|augeas|before|case|check|class|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3266 r'computer|configured|contained|create_resources|crit|cron|debug|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3267 r'default|define|defined|directory|else|elsif|emerg|err|exec|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3268 r'extlookup|fail|false|file|filebucket|fqdn_rand|generate|host|if|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3269 r'import|include|info|inherits|inline_template|installed|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3270 r'interface|k5login|latest|link|loglevel|macauthorization|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3271 r'mailalias|maillist|mcx|md5|mount|mounted|nagios_command|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3272 r'nagios_contact|nagios_contactgroup|nagios_host|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3273 r'nagios_hostdependency|nagios_hostescalation|nagios_hostextinfo|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3274 r'nagios_hostgroup|nagios_service|nagios_servicedependency|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3275 r'nagios_serviceescalation|nagios_serviceextinfo|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3276 r'nagios_servicegroup|nagios_timeperiod|node|noop|notice|notify|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3277 r'package|present|purged|realize|regsubst|resources|role|router|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3278 r'running|schedule|scheduled_task|search|selboolean|selmodule|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3279 r'service|sha1|shellquote|split|sprintf|ssh_authorized_key|sshkey|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3280 r'stage|stopped|subscribe|tag|tagged|template|tidy|true|undef|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3281 r'unmounted|user|versioncmp|vlan|warning|yumrepo|zfs|zone|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3282 r'zpool)\b', Keyword),
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
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3285 'strings': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3286 (r'"([^"])*"', String),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3287 (r'\'([^\'])*\'', String),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3288 ],
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3289
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3290 }
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3291
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3292
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3293 class NSISLexer(RegexLexer):
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3294 """
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3295 For `NSIS <http://nsis.sourceforge.net/>`_ scripts.
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3296
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3297 *New in Pygments 1.6.*
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3298 """
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3299 name = 'NSIS'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3300 aliases = ['nsis', 'nsi', 'nsh']
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3301 filenames = ['*.nsi', '*.nsh']
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3302 mimetypes = ['text/x-nsis']
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3303
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3304 flags = re.IGNORECASE
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3305
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3306 tokens = {
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3307 'root': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3308 (r'[;\#].*\n', Comment),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3309 (r"'.*'", String.Single),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3310 (r'"', String.Double, 'str_double'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3311 (r'`', String.Backtick, 'str_backtick'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3312 include('macro'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3313 include('interpol'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3314 include('basic'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3315 (r'\$\{[a-z_|][\w|]*\}', Keyword.Pseudo),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3316 (r'/[a-z_]\w*', Name.Attribute),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3317 ('.', Text),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3318 ],
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3319 'basic': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3320 (r'(\n)(Function)(\s+)([._a-z][.\w]*)\b',
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3321 bygroups(Text, Keyword, Text, Name.Function)),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3322 (r'\b([_a-z]\w*)(::)([a-z][a-z0-9]*)\b',
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3323 bygroups(Keyword.Namespace, Punctuation, Name.Function)),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3324 (r'\b([_a-z]\w*)(:)', bygroups(Name.Label, Punctuation)),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3325 (r'(\b[ULS]|\B)([\!\<\>=]?=|\<\>?|\>)\B', Operator),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3326 (r'[|+-]', Operator),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3327 (r'\\', Punctuation),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3328 (r'\b(Abort|Add(?:BrandingImage|Size)|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3329 r'Allow(?:RootDirInstall|SkipFiles)|AutoCloseWindow|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3330 r'BG(?:Font|Gradient)|BrandingText|BringToFront|Call(?:InstDLL)?|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3331 r'(?:Sub)?Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3332 r'ComponentText|CopyFiles|CRCCheck|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3333 r'Create(?:Directory|Font|Shortcut)|Delete(?:INI(?:Sec|Str)|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3334 r'Reg(?:Key|Value))?|DetailPrint|DetailsButtonText|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3335 r'Dir(?:Show|Text|Var|Verify)|(?:Disabled|Enabled)Bitmap|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3336 r'EnableWindow|EnumReg(?:Key|Value)|Exch|Exec(?:Shell|Wait)?|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3337 r'ExpandEnvStrings|File(?:BufSize|Close|ErrorText|Open|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3338 r'Read(?:Byte)?|Seek|Write(?:Byte)?)?|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3339 r'Find(?:Close|First|Next|Window)|FlushINI|Function(?:End)?|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3340 r'Get(?:CurInstType|CurrentAddress|DlgItem|DLLVersion(?:Local)?|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3341 r'ErrorLevel|FileTime(?:Local)?|FullPathName|FunctionAddress|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3342 r'InstDirError|LabelAddress|TempFileName)|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3343 r'Goto|HideWindow|Icon|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3344 r'If(?:Abort|Errors|FileExists|RebootFlag|Silent)|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3345 r'InitPluginsDir|Install(?:ButtonText|Colors|Dir(?:RegKey)?)|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3346 r'Inst(?:ProgressFlags|Type(?:[GS]etText)?)|Int(?:CmpU?|Fmt|Op)|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3347 r'IsWindow|LangString(?:UP)?|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3348 r'License(?:BkColor|Data|ForceSelection|LangString|Text)|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3349 r'LoadLanguageFile|LockWindow|Log(?:Set|Text)|MessageBox|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3350 r'MiscButtonText|Name|Nop|OutFile|(?:Uninst)?Page(?:Ex(?:End)?)?|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3351 r'PluginDir|Pop|Push|Quit|Read(?:(?:Env|INI|Reg)Str|RegDWORD)|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3352 r'Reboot|(?:Un)?RegDLL|Rename|RequestExecutionLevel|ReserveFile|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3353 r'Return|RMDir|SearchPath|Section(?:Divider|End|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3354 r'(?:(?:Get|Set)(?:Flags|InstTypes|Size|Text))|Group(?:End)?|In)?|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3355 r'SendMessage|Set(?:AutoClose|BrandingImage|Compress(?:ionLevel|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3356 r'or(?:DictSize)?)?|CtlColors|CurInstType|DatablockOptimize|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3357 r'DateSave|Details(?:Print|View)|Error(?:s|Level)|FileAttributes|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3358 r'Font|OutPath|Overwrite|PluginUnload|RebootFlag|ShellVarContext|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3359 r'Silent|StaticBkColor)|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3360 r'Show(?:(?:I|Uni)nstDetails|Window)|Silent(?:Un)?Install|Sleep|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3361 r'SpaceTexts|Str(?:CmpS?|Cpy|Len)|SubSection(?:End)?|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3362 r'Uninstall(?:ButtonText|(?:Sub)?Caption|EXEName|Icon|Text)|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3363 r'UninstPage|Var|VI(?:AddVersionKey|ProductVersion)|WindowIcon|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3364 r'Write(?:INIStr|Reg(:?Bin|DWORD|(?:Expand)?Str)|Uninstaller)|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3365 r'XPStyle)\b', Keyword),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3366 (r'\b(CUR|END|(?:FILE_ATTRIBUTE_)?'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3367 r'(?:ARCHIVE|HIDDEN|NORMAL|OFFLINE|READONLY|SYSTEM|TEMPORARY)|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3368 r'HK(CC|CR|CU|DD|LM|PD|U)|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3369 r'HKEY_(?:CLASSES_ROOT|CURRENT_(?:CONFIG|USER)|DYN_DATA|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3370 r'LOCAL_MACHINE|PERFORMANCE_DATA|USERS)|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3371 r'ID(?:ABORT|CANCEL|IGNORE|NO|OK|RETRY|YES)|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3372 r'MB_(?:ABORTRETRYIGNORE|DEFBUTTON[1-4]|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3373 r'ICON(?:EXCLAMATION|INFORMATION|QUESTION|STOP)|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3374 r'OK(?:CANCEL)?|RETRYCANCEL|RIGHT|SETFOREGROUND|TOPMOST|USERICON|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3375 r'YESNO(?:CANCEL)?)|SET|SHCTX|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3376 r'SW_(?:HIDE|SHOW(?:MAXIMIZED|MINIMIZED|NORMAL))|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3377 r'admin|all|auto|both|bottom|bzip2|checkbox|colored|current|false|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3378 r'force|hide|highest|if(?:diff|newer)|lastused|leave|left|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3379 r'listonly|lzma|nevershow|none|normal|off|on|pop|push|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3380 r'radiobuttons|right|show|silent|silentlog|smooth|textonly|top|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3381 r'true|try|user|zlib)\b', Name.Constant),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3382 ],
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3383 'macro': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3384 (r'\!(addincludedir(?:dir)?|addplugindir|appendfile|cd|define|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3385 r'delfilefile|echo(?:message)?|else|endif|error|execute|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3386 r'if(?:macro)?n?(?:def)?|include|insertmacro|macro(?:end)?|packhdr|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3387 r'search(?:parse|replace)|system|tempfilesymbol|undef|verbose|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3388 r'warning)\b', Comment.Preproc),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3389 ],
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3390 'interpol': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3391 (r'\$(R?[0-9])', Name.Builtin.Pseudo), # registers
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3392 (r'\$(ADMINTOOLS|APPDATA|CDBURN_AREA|COOKIES|COMMONFILES(?:32|64)|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3393 r'DESKTOP|DOCUMENTS|EXE(?:DIR|FILE|PATH)|FAVORITES|FONTS|HISTORY|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3394 r'HWNDPARENT|INTERNET_CACHE|LOCALAPPDATA|MUSIC|NETHOOD|PICTURES|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3395 r'PLUGINSDIR|PRINTHOOD|PROFILE|PROGRAMFILES(?:32|64)|QUICKLAUNCH|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3396 r'RECENT|RESOURCES(?:_LOCALIZED)?|SENDTO|SM(?:PROGRAMS|STARTUP)|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3397 r'STARTMENU|SYSDIR|TEMP(?:LATES)?|VIDEOS|WINDIR|\{NSISDIR\})',
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3398 Name.Builtin),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3399 (r'\$(CMDLINE|INSTDIR|OUTDIR|LANGUAGE)', Name.Variable.Global),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3400 (r'\$[a-z_]\w*', Name.Variable),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3401 ],
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3402 'str_double': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3403 (r'"', String, '#pop'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3404 (r'\$(\\[nrt"]|\$)', String.Escape),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3405 include('interpol'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3406 (r'.', String.Double),
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 'str_backtick': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3409 (r'`', String, '#pop'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3410 (r'\$(\\[nrt"]|\$)', String.Escape),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3411 include('interpol'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3412 (r'.', String.Double),
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
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3417 class RPMSpecLexer(RegexLexer):
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3418 """
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3419 For RPM *.spec files
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3420
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3421 *New in Pygments 1.6.*
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3422 """
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3423
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3424 name = 'RPMSpec'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3425 aliases = ['spec']
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3426 filenames = ['*.spec']
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3427 mimetypes = ['text/x-rpm-spec']
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3428
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3429 _directives = ('(?:package|prep|build|install|clean|check|pre[a-z]*|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3430 'post[a-z]*|trigger[a-z]*|files)')
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 tokens = {
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3433 'root': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3434 (r'#.*\n', Comment),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3435 include('basic'),
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 'description': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3438 (r'^(%' + _directives + ')(.*)$',
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3439 bygroups(Name.Decorator, Text), '#pop'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3440 (r'\n', Text),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3441 (r'.', Text),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3442 ],
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3443 'changelog': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3444 (r'\*.*\n', Generic.Subheading),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3445 (r'^(%' + _directives + ')(.*)$',
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3446 bygroups(Name.Decorator, Text), '#pop'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3447 (r'\n', Text),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3448 (r'.', Text),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3449 ],
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3450 'string': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3451 (r'"', String.Double, '#pop'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3452 (r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})', String.Escape),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3453 include('interpol'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3454 (r'.', String.Double),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3455 ],
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3456 'basic': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3457 include('macro'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3458 (r'(?i)^(Name|Version|Release|Epoch|Summary|Group|License|Packager|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3459 r'Vendor|Icon|URL|Distribution|Prefix|Patch[0-9]*|Source[0-9]*|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3460 r'Requires\(?[a-z]*\)?|[a-z]+Req|Obsoletes|Provides|Conflicts|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3461 r'Build[a-z]+|[a-z]+Arch|Auto[a-z]+)(:)(.*)$',
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3462 bygroups(Generic.Heading, Punctuation, using(this))),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3463 (r'^%description', Name.Decorator, 'description'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3464 (r'^%changelog', Name.Decorator, 'changelog'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3465 (r'^(%' + _directives + ')(.*)$', bygroups(Name.Decorator, Text)),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3466 (r'%(attr|defattr|dir|doc(?:dir)?|setup|config(?:ure)?|'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3467 r'make(?:install)|ghost|patch[0-9]+|find_lang|exclude|verify)',
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3468 Keyword),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3469 include('interpol'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3470 (r"'.*'", String.Single),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3471 (r'"', String.Double, 'string'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3472 (r'.', Text),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3473 ],
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3474 'macro': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3475 (r'%define.*\n', Comment.Preproc),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3476 (r'%\{\!\?.*%define.*\}', Comment.Preproc),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3477 (r'(%(?:if(?:n?arch)?|else(?:if)?|endif))(.*)$',
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3478 bygroups(Comment.Preproc, Text)),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3479 ],
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3480 'interpol': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3481 (r'%\{?__[a-z_]+\}?', Name.Function),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3482 (r'%\{?_([a-z_]+dir|[a-z_]+path|prefix)\}?', Keyword.Pseudo),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3483 (r'%\{\?[A-Za-z0-9_]+\}', Name.Variable),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3484 (r'\$\{?RPM_[A-Z0-9_]+\}?', Name.Variable.Global),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3485 (r'%\{[a-zA-Z][a-zA-Z0-9_]+\}', Keyword.Constant),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3486 ]
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3487 }
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 class AutoItLexer(RegexLexer):
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3491 """
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3492 For `AutoIt <http://www.autoitscript.com/site/autoit/>`_ files.
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3493
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3494 AutoIt is a freeware BASIC-like scripting language
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3495 designed for automating the Windows GUI and general scripting
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3496
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3497 *New in Pygments 1.6.*
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3498 """
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3499 name = 'AutoIt'
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3500 aliases = ['autoit', 'Autoit']
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3501 filenames = ['*.au3']
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3502 mimetypes = ['text/x-autoit']
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3503
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3504 # Keywords, functions, macros from au3.keywords.properties
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3505 # which can be found in AutoIt installed directory, e.g.
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3506 # c:\Program Files (x86)\AutoIt3\SciTE\au3.keywords.properties
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3507
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3508 keywords = """\
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3509 #include-once #include #endregion #forcedef #forceref #region
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3510 and byref case continueloop dim do else elseif endfunc endif
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3511 endselect exit exitloop for func global
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3512 if local next not or return select step
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3513 then to until wend while exit""".split()
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3514
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3515 functions = """\
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3516 abs acos adlibregister adlibunregister asc ascw asin assign atan
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3517 autoitsetoption autoitwingettitle autoitwinsettitle beep binary binarylen
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3518 binarymid binarytostring bitand bitnot bitor bitrotate bitshift bitxor
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3519 blockinput break call cdtray ceiling chr chrw clipget clipput consoleread
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3520 consolewrite consolewriteerror controlclick controlcommand controldisable
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3521 controlenable controlfocus controlgetfocus controlgethandle controlgetpos
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3522 controlgettext controlhide controllistview controlmove controlsend
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3523 controlsettext controlshow controltreeview cos dec dircopy dircreate
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3524 dirgetsize dirmove dirremove dllcall dllcalladdress dllcallbackfree
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3525 dllcallbackgetptr dllcallbackregister dllclose dllopen dllstructcreate
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3526 dllstructgetdata dllstructgetptr dllstructgetsize dllstructsetdata
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3527 drivegetdrive drivegetfilesystem drivegetlabel drivegetserial drivegettype
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3528 drivemapadd drivemapdel drivemapget drivesetlabel drivespacefree
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3529 drivespacetotal drivestatus envget envset envupdate eval execute exp
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3530 filechangedir fileclose filecopy filecreatentfslink filecreateshortcut
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3531 filedelete fileexists filefindfirstfile filefindnextfile fileflush
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3532 filegetattrib filegetencoding filegetlongname filegetpos filegetshortcut
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3533 filegetshortname filegetsize filegettime filegetversion fileinstall filemove
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3534 fileopen fileopendialog fileread filereadline filerecycle filerecycleempty
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3535 filesavedialog fileselectfolder filesetattrib filesetpos filesettime
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3536 filewrite filewriteline floor ftpsetproxy guicreate guictrlcreateavi
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3537 guictrlcreatebutton guictrlcreatecheckbox guictrlcreatecombo
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3538 guictrlcreatecontextmenu guictrlcreatedate guictrlcreatedummy
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3539 guictrlcreateedit guictrlcreategraphic guictrlcreategroup guictrlcreateicon
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3540 guictrlcreateinput guictrlcreatelabel guictrlcreatelist
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3541 guictrlcreatelistview guictrlcreatelistviewitem guictrlcreatemenu
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3542 guictrlcreatemenuitem guictrlcreatemonthcal guictrlcreateobj
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3543 guictrlcreatepic guictrlcreateprogress guictrlcreateradio
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3544 guictrlcreateslider guictrlcreatetab guictrlcreatetabitem
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3545 guictrlcreatetreeview guictrlcreatetreeviewitem guictrlcreateupdown
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3546 guictrldelete guictrlgethandle guictrlgetstate guictrlread guictrlrecvmsg
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3547 guictrlregisterlistviewsort guictrlsendmsg guictrlsendtodummy
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3548 guictrlsetbkcolor guictrlsetcolor guictrlsetcursor guictrlsetdata
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3549 guictrlsetdefbkcolor guictrlsetdefcolor guictrlsetfont guictrlsetgraphic
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3550 guictrlsetimage guictrlsetlimit guictrlsetonevent guictrlsetpos
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3551 guictrlsetresizing guictrlsetstate guictrlsetstyle guictrlsettip guidelete
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3552 guigetcursorinfo guigetmsg guigetstyle guiregistermsg guisetaccelerators
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3553 guisetbkcolor guisetcoord guisetcursor guisetfont guisethelp guiseticon
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3554 guisetonevent guisetstate guisetstyle guistartgroup guiswitch hex hotkeyset
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3555 httpsetproxy httpsetuseragent hwnd inetclose inetget inetgetinfo inetgetsize
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3556 inetread inidelete iniread inireadsection inireadsectionnames
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3557 inirenamesection iniwrite iniwritesection inputbox int isadmin isarray
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3558 isbinary isbool isdeclared isdllstruct isfloat ishwnd isint iskeyword
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3559 isnumber isobj isptr isstring log memgetstats mod mouseclick mouseclickdrag
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3560 mousedown mousegetcursor mousegetpos mousemove mouseup mousewheel msgbox
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3561 number objcreate objcreateinterface objevent objevent objget objname
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3562 onautoitexitregister onautoitexitunregister opt ping pixelchecksum
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3563 pixelgetcolor pixelsearch pluginclose pluginopen processclose processexists
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3564 processgetstats processlist processsetpriority processwait processwaitclose
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3565 progressoff progresson progressset ptr random regdelete regenumkey
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3566 regenumval regread regwrite round run runas runaswait runwait send
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3567 sendkeepactive seterror setextended shellexecute shellexecutewait shutdown
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3568 sin sleep soundplay soundsetwavevolume splashimageon splashoff splashtexton
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3569 sqrt srandom statusbargettext stderrread stdinwrite stdioclose stdoutread
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3570 string stringaddcr stringcompare stringformat stringfromasciiarray
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3571 stringinstr stringisalnum stringisalpha stringisascii stringisdigit
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3572 stringisfloat stringisint stringislower stringisspace stringisupper
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3573 stringisxdigit stringleft stringlen stringlower stringmid stringregexp
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3574 stringregexpreplace stringreplace stringright stringsplit stringstripcr
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3575 stringstripws stringtoasciiarray stringtobinary stringtrimleft
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3576 stringtrimright stringupper tan tcpaccept tcpclosesocket tcpconnect
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3577 tcplisten tcpnametoip tcprecv tcpsend tcpshutdown tcpstartup timerdiff
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3578 timerinit tooltip traycreateitem traycreatemenu traygetmsg trayitemdelete
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3579 trayitemgethandle trayitemgetstate trayitemgettext trayitemsetonevent
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3580 trayitemsetstate trayitemsettext traysetclick trayseticon traysetonevent
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3581 traysetpauseicon traysetstate traysettooltip traytip ubound udpbind
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3582 udpclosesocket udpopen udprecv udpsend udpshutdown udpstartup vargettype
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3583 winactivate winactive winclose winexists winflash wingetcaretpos
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3584 wingetclasslist wingetclientsize wingethandle wingetpos wingetprocess
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3585 wingetstate wingettext wingettitle winkill winlist winmenuselectitem
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3586 winminimizeall winminimizeallundo winmove winsetontop winsetstate
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3587 winsettitle winsettrans winwait winwaitactive winwaitclose
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3588 winwaitnotactive""".split()
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3589
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3590 macros = """\
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3591 @appdatacommondir @appdatadir @autoitexe @autoitpid @autoitversion
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3592 @autoitx64 @com_eventobj @commonfilesdir @compiled @computername @comspec
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3593 @cpuarch @cr @crlf @desktopcommondir @desktopdepth @desktopdir
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3594 @desktopheight @desktoprefresh @desktopwidth @documentscommondir @error
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3595 @exitcode @exitmethod @extended @favoritescommondir @favoritesdir
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3596 @gui_ctrlhandle @gui_ctrlid @gui_dragfile @gui_dragid @gui_dropid
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3597 @gui_winhandle @homedrive @homepath @homeshare @hotkeypressed @hour
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3598 @ipaddress1 @ipaddress2 @ipaddress3 @ipaddress4 @kblayout @lf
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3599 @logondnsdomain @logondomain @logonserver @mday @min @mon @msec @muilang
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3600 @mydocumentsdir @numparams @osarch @osbuild @oslang @osservicepack @ostype
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3601 @osversion @programfilesdir @programscommondir @programsdir @scriptdir
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3602 @scriptfullpath @scriptlinenumber @scriptname @sec @startmenucommondir
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3603 @startmenudir @startupcommondir @startupdir @sw_disable @sw_enable @sw_hide
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3604 @sw_lock @sw_maximize @sw_minimize @sw_restore @sw_show @sw_showdefault
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3605 @sw_showmaximized @sw_showminimized @sw_showminnoactive @sw_showna
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3606 @sw_shownoactivate @sw_shownormal @sw_unlock @systemdir @tab @tempdir
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3607 @tray_id @trayiconflashing @trayiconvisible @username @userprofiledir @wday
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3608 @windowsdir @workingdir @yday @year""".split()
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3609
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3610 tokens = {
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3611 'root': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3612 (r';.*\n', Comment.Single),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3613 (r'(#comments-start|#cs).*?(#comments-end|#ce)', Comment.Multiline),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3614 (r'[\[\]{}(),;]', Punctuation),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3615 (r'(and|or|not)\b', Operator.Word),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3616 (r'[\$|@][a-zA-Z_][a-zA-Z0-9_]*', Name.Variable),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3617 (r'!=|==|:=|\.=|<<|>>|[-~+/*%=<>&^|?:!.]', Operator),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3618 include('commands'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3619 include('labels'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3620 include('builtInFunctions'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3621 include('builtInMarcros'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3622 (r'"', String, combined('stringescape', 'dqs')),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3623 include('numbers'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3624 (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
3625 (r'\\|\'', Text),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3626 (r'\`([\,\%\`abfnrtv\-\+;])', String.Escape),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3627 (r'_\n', Text), # Line continuation
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3628 include('garbage'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3629 ],
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3630 'commands': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3631 (r'(?i)(\s*)(%s)\b' % '|'.join(keywords),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3632 bygroups(Text, Name.Builtin)),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3633 ],
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3634 'builtInFunctions': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3635 (r'(?i)(%s)\b' % '|'.join(functions),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3636 Name.Function),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3637 ],
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3638 'builtInMarcros': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3639 (r'(?i)(%s)\b' % '|'.join(macros),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3640 Name.Variable.Global),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3641 ],
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3642 'labels': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3643 # sendkeys
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3644 (r'(^\s*)({\S+?})', bygroups(Text, Name.Label)),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3645 ],
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3646 'numbers': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3647 (r'(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?', Number.Float),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3648 (r'\d+[eE][+-]?[0-9]+', Number.Float),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3649 (r'0\d+', Number.Oct),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3650 (r'0[xX][a-fA-F0-9]+', Number.Hex),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3651 (r'\d+L', Number.Integer.Long),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3652 (r'\d+', Number.Integer)
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3653 ],
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3654 'stringescape': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3655 (r'\"\"|\`([\,\%\`abfnrtv])', String.Escape),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3656 ],
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3657 'strings': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3658 (r'[^"\n]+', String),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3659 ],
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3660 'dqs': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3661 (r'"', String, '#pop'),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3662 include('strings')
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3663 ],
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3664 'garbage': [
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3665 (r'[^\S\n]', Text),
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3666 ],
da76c71624de Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1705
diff changeset
3667 }

eric ide

mercurial