Sun, 24 Jan 2016 19:28:37 +0100
Updated Pygments to 2.1.
4172
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | """ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
3 | pygments.lexers.configs |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | ~~~~~~~~~~~~~~~~~~~~~~~ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | Lexers for configuration file formats. |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | |
4697
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
8 | :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS. |
4172
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | :license: BSD, see LICENSE for details. |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | """ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | import re |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | from pygments.lexer import RegexLexer, default, words, bygroups, include, using |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | from pygments.token import Text, Comment, Operator, Keyword, Name, String, \ |
4697
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
16 | Number, Punctuation, Whitespace, Literal |
4172
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | from pygments.lexers.shell import BashLexer |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | __all__ = ['IniLexer', 'RegeditLexer', 'PropertiesLexer', 'KconfigLexer', |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | 'Cfengine3Lexer', 'ApacheConfLexer', 'SquidConfLexer', |
4697
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
21 | 'NginxConfLexer', 'LighttpdConfLexer', 'DockerLexer', |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
22 | 'TerraformLexer', 'TermcapLexer', 'TerminfoLexer', |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
23 | 'PkgConfigLexer', 'PacmanConfLexer'] |
4172
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | class IniLexer(RegexLexer): |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | """ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | Lexer for configuration files in INI style. |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | """ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | name = 'INI' |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | aliases = ['ini', 'cfg', 'dosini'] |
4697
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
33 | filenames = ['*.ini', '*.cfg', '*.inf'] |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
34 | mimetypes = ['text/x-ini', 'text/inf'] |
4172
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | tokens = { |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | 'root': [ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | (r'\s+', Text), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | (r'[;#].*', Comment.Single), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | (r'\[.*?\]$', Keyword), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | (r'(.*?)([ \t]*)(=)([ \t]*)(.*(?:\n[ \t].+)*)', |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | bygroups(Name.Attribute, Text, Operator, Text, String)) |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | ] |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | } |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | def analyse_text(text): |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | npos = text.find('\n') |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | if npos < 3: |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | return False |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | return text[0] == '[' and text[npos-1] == ']' |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | class RegeditLexer(RegexLexer): |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | """ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | Lexer for `Windows Registry |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | <http://en.wikipedia.org/wiki/Windows_Registry#.REG_files>`_ files produced |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | by regedit. |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | .. versionadded:: 1.6 |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | """ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | name = 'reg' |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | aliases = ['registry'] |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | filenames = ['*.reg'] |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | mimetypes = ['text/x-windows-registry'] |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | tokens = { |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | 'root': [ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | (r'Windows Registry Editor.*', Text), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | (r'\s+', Text), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | (r'[;#].*', Comment.Single), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | (r'(\[)(-?)(HKEY_[A-Z_]+)(.*?\])$', |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | bygroups(Keyword, Operator, Name.Builtin, Keyword)), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | # String keys, which obey somewhat normal escaping |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | (r'("(?:\\"|\\\\|[^"])+")([ \t]*)(=)([ \t]*)', |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | bygroups(Name.Attribute, Text, Operator, Text), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | 'value'), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | # Bare keys (includes @) |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | (r'(.*?)([ \t]*)(=)([ \t]*)', |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | bygroups(Name.Attribute, Text, Operator, Text), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | 'value'), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | ], |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | 'value': [ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | (r'-', Operator, '#pop'), # delete value |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | (r'(dword|hex(?:\([0-9a-fA-F]\))?)(:)([0-9a-fA-F,]+)', |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | bygroups(Name.Variable, Punctuation, Number), '#pop'), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | # As far as I know, .reg files do not support line continuation. |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | (r'.+', String, '#pop'), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | default('#pop'), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | ] |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | } |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | def analyse_text(text): |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | return text.startswith('Windows Registry Editor') |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | class PropertiesLexer(RegexLexer): |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | """ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | Lexer for configuration files in Java's properties format. |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | .. versionadded:: 1.4 |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102 | """ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
104 | name = 'Properties' |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | aliases = ['properties', 'jproperties'] |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | filenames = ['*.properties'] |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | mimetypes = ['text/x-java-properties'] |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | tokens = { |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | 'root': [ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
111 | (r'\s+', Text), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
112 | (r'(?:[;#]|//).*$', Comment), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | (r'(.*?)([ \t]*)([=:])([ \t]*)(.*(?:(?<=\\)\n.*)*)', |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
114 | bygroups(Name.Attribute, Text, Operator, Text, String)), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
115 | ], |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
116 | } |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
118 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
119 | def _rx_indent(level): |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | # Kconfig *always* interprets a tab as 8 spaces, so this is the default. |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121 | # Edit this if you are in an environment where KconfigLexer gets expanded |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
122 | # input (tabs expanded to spaces) and the expansion tab width is != 8, |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
123 | # e.g. in connection with Trac (trac.ini, [mimeviewer], tab_width). |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | # Value range here is 2 <= {tab_width} <= 8. |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | tab_width = 8 |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | # Regex matching a given indentation {level}, assuming that indentation is |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | # a multiple of {tab_width}. In other cases there might be problems. |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | if tab_width == 2: |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | space_repeat = '+' |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | else: |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | space_repeat = '{1,%d}' % (tab_width - 1) |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | if level == 1: |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133 | level_repeat = '' |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | else: |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
135 | level_repeat = '{%s}' % level |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136 | return r'(?:\t| %s\t| {%s})%s.*\n' % (space_repeat, tab_width, level_repeat) |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
137 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
138 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
139 | class KconfigLexer(RegexLexer): |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
140 | """ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
141 | For Linux-style Kconfig files. |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
142 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
143 | .. versionadded:: 1.6 |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
144 | """ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
145 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
146 | name = 'Kconfig' |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
147 | aliases = ['kconfig', 'menuconfig', 'linux-config', 'kernel-config'] |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
148 | # Adjust this if new kconfig file names appear in your environment |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
149 | filenames = ['Kconfig', '*Config.in*', 'external.in*', |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
150 | 'standard-modules.in'] |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
151 | mimetypes = ['text/x-kconfig'] |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152 | # No re.MULTILINE, indentation-aware help text needs line-by-line handling |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
153 | flags = 0 |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
154 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
155 | def call_indent(level): |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
156 | # If indentation >= {level} is detected, enter state 'indent{level}' |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
157 | return (_rx_indent(level), String.Doc, 'indent%s' % level) |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
158 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
159 | def do_indent(level): |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
160 | # Print paragraphs of indentation level >= {level} as String.Doc, |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
161 | # ignoring blank lines. Then return to 'root' state. |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
162 | return [ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
163 | (_rx_indent(level), String.Doc), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
164 | (r'\s*\n', Text), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
165 | default('#pop:2') |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
166 | ] |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
167 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
168 | tokens = { |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
169 | 'root': [ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
170 | (r'\s+', Text), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
171 | (r'#.*?\n', Comment.Single), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
172 | (words(( |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
173 | 'mainmenu', 'config', 'menuconfig', 'choice', 'endchoice', |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
174 | 'comment', 'menu', 'endmenu', 'visible if', 'if', 'endif', |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
175 | 'source', 'prompt', 'select', 'depends on', 'default', |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
176 | 'range', 'option'), suffix=r'\b'), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
177 | Keyword), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
178 | (r'(---help---|help)[\t ]*\n', Keyword, 'help'), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
179 | (r'(bool|tristate|string|hex|int|defconfig_list|modules|env)\b', |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
180 | Name.Builtin), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
181 | (r'[!=&|]', Operator), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
182 | (r'[()]', Punctuation), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
183 | (r'[0-9]+', Number.Integer), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
184 | (r"'(''|[^'])*'", String.Single), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
185 | (r'"(""|[^"])*"', String.Double), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
186 | (r'\S+', Text), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
187 | ], |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
188 | # Help text is indented, multi-line and ends when a lower indentation |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
189 | # level is detected. |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
190 | 'help': [ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
191 | # Skip blank lines after help token, if any |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
192 | (r'\s*\n', Text), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
193 | # Determine the first help line's indentation level heuristically(!). |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
194 | # Attention: this is not perfect, but works for 99% of "normal" |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
195 | # indentation schemes up to a max. indentation level of 7. |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
196 | call_indent(7), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
197 | call_indent(6), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
198 | call_indent(5), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
199 | call_indent(4), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
200 | call_indent(3), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
201 | call_indent(2), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
202 | call_indent(1), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
203 | default('#pop'), # for incomplete help sections without text |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
204 | ], |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
205 | # Handle text for indentation levels 7 to 1 |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
206 | 'indent7': do_indent(7), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
207 | 'indent6': do_indent(6), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
208 | 'indent5': do_indent(5), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
209 | 'indent4': do_indent(4), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
210 | 'indent3': do_indent(3), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
211 | 'indent2': do_indent(2), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
212 | 'indent1': do_indent(1), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
213 | } |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
214 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
215 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
216 | class Cfengine3Lexer(RegexLexer): |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
217 | """ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
218 | Lexer for `CFEngine3 <http://cfengine.org>`_ policy files. |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
219 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
220 | .. versionadded:: 1.5 |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
221 | """ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
222 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
223 | name = 'CFEngine3' |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
224 | aliases = ['cfengine3', 'cf3'] |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
225 | filenames = ['*.cf'] |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
226 | mimetypes = [] |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
227 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
228 | tokens = { |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
229 | 'root': [ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
230 | (r'#.*?\n', Comment), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
231 | (r'(body)(\s+)(\S+)(\s+)(control)', |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
232 | bygroups(Keyword, Text, Keyword, Text, Keyword)), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
233 | (r'(body|bundle)(\s+)(\S+)(\s+)(\w+)(\()', |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
234 | bygroups(Keyword, Text, Keyword, Text, Name.Function, Punctuation), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
235 | 'arglist'), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
236 | (r'(body|bundle)(\s+)(\S+)(\s+)(\w+)', |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
237 | bygroups(Keyword, Text, Keyword, Text, Name.Function)), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
238 | (r'(")([^"]+)(")(\s+)(string|slist|int|real)(\s*)(=>)(\s*)', |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
239 | bygroups(Punctuation, Name.Variable, Punctuation, |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
240 | Text, Keyword.Type, Text, Operator, Text)), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
241 | (r'(\S+)(\s*)(=>)(\s*)', |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
242 | bygroups(Keyword.Reserved, Text, Operator, Text)), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
243 | (r'"', String, 'string'), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
244 | (r'(\w+)(\()', bygroups(Name.Function, Punctuation)), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
245 | (r'([\w.!&|()]+)(::)', bygroups(Name.Class, Punctuation)), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
246 | (r'(\w+)(:)', bygroups(Keyword.Declaration, Punctuation)), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
247 | (r'@[{(][^)}]+[})]', Name.Variable), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
248 | (r'[(){},;]', Punctuation), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
249 | (r'=>', Operator), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
250 | (r'->', Operator), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
251 | (r'\d+\.\d+', Number.Float), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
252 | (r'\d+', Number.Integer), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
253 | (r'\w+', Name.Function), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
254 | (r'\s+', Text), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
255 | ], |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
256 | 'string': [ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
257 | (r'\$[{(]', String.Interpol, 'interpol'), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
258 | (r'\\.', String.Escape), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
259 | (r'"', String, '#pop'), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
260 | (r'\n', String), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
261 | (r'.', String), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
262 | ], |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
263 | 'interpol': [ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
264 | (r'\$[{(]', String.Interpol, '#push'), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
265 | (r'[})]', String.Interpol, '#pop'), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
266 | (r'[^${()}]+', String.Interpol), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
267 | ], |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
268 | 'arglist': [ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
269 | (r'\)', Punctuation, '#pop'), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
270 | (r',', Punctuation), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
271 | (r'\w+', Name.Variable), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
272 | (r'\s+', Text), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
273 | ], |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
274 | } |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
275 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
276 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
277 | class ApacheConfLexer(RegexLexer): |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
278 | """ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
279 | Lexer for configuration files following the Apache config file |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
280 | format. |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
281 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
282 | .. versionadded:: 0.6 |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
283 | """ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
284 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
285 | name = 'ApacheConf' |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
286 | aliases = ['apacheconf', 'aconf', 'apache'] |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
287 | filenames = ['.htaccess', 'apache.conf', 'apache2.conf'] |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
288 | mimetypes = ['text/x-apacheconf'] |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
289 | flags = re.MULTILINE | re.IGNORECASE |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
290 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
291 | tokens = { |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
292 | 'root': [ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
293 | (r'\s+', Text), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
294 | (r'(#.*?)$', Comment), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
295 | (r'(<[^\s>]+)(?:(\s+)(.*?))?(>)', |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
296 | bygroups(Name.Tag, Text, String, Name.Tag)), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
297 | (r'([a-z]\w*)(\s+)', |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
298 | bygroups(Name.Builtin, Text), 'value'), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
299 | (r'\.+', Text), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
300 | ], |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
301 | 'value': [ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
302 | (r'\\\n', Text), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
303 | (r'$', Text, '#pop'), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
304 | (r'\\', Text), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
305 | (r'[^\S\n]+', Text), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
306 | (r'\d+\.\d+\.\d+\.\d+(?:/\d+)?', Number), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
307 | (r'\d+', Number), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
308 | (r'/([a-z0-9][\w./-]+)', String.Other), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
309 | (r'(on|off|none|any|all|double|email|dns|min|minimal|' |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
310 | r'os|productonly|full|emerg|alert|crit|error|warn|' |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
311 | r'notice|info|debug|registry|script|inetd|standalone|' |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
312 | r'user|group)\b', Keyword), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
313 | (r'"([^"\\]*(?:\\.[^"\\]*)*)"', String.Double), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
314 | (r'[^\s"\\]+', Text) |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
315 | ], |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
316 | } |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
317 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
318 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
319 | class SquidConfLexer(RegexLexer): |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
320 | """ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
321 | Lexer for `squid <http://www.squid-cache.org/>`_ configuration files. |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
322 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
323 | .. versionadded:: 0.9 |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
324 | """ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
325 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
326 | name = 'SquidConf' |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
327 | aliases = ['squidconf', 'squid.conf', 'squid'] |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
328 | filenames = ['squid.conf'] |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
329 | mimetypes = ['text/x-squidconf'] |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
330 | flags = re.IGNORECASE |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
331 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
332 | keywords = ( |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
333 | "access_log", "acl", "always_direct", "announce_host", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
334 | "announce_period", "announce_port", "announce_to", "anonymize_headers", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
335 | "append_domain", "as_whois_server", "auth_param_basic", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
336 | "authenticate_children", "authenticate_program", "authenticate_ttl", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
337 | "broken_posts", "buffered_logs", "cache_access_log", "cache_announce", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
338 | "cache_dir", "cache_dns_program", "cache_effective_group", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
339 | "cache_effective_user", "cache_host", "cache_host_acl", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
340 | "cache_host_domain", "cache_log", "cache_mem", "cache_mem_high", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
341 | "cache_mem_low", "cache_mgr", "cachemgr_passwd", "cache_peer", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
342 | "cache_peer_access", "cahce_replacement_policy", "cache_stoplist", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
343 | "cache_stoplist_pattern", "cache_store_log", "cache_swap", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
344 | "cache_swap_high", "cache_swap_log", "cache_swap_low", "client_db", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
345 | "client_lifetime", "client_netmask", "connect_timeout", "coredump_dir", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
346 | "dead_peer_timeout", "debug_options", "delay_access", "delay_class", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
347 | "delay_initial_bucket_level", "delay_parameters", "delay_pools", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
348 | "deny_info", "dns_children", "dns_defnames", "dns_nameservers", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
349 | "dns_testnames", "emulate_httpd_log", "err_html_text", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
350 | "fake_user_agent", "firewall_ip", "forwarded_for", "forward_snmpd_port", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
351 | "fqdncache_size", "ftpget_options", "ftpget_program", "ftp_list_width", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
352 | "ftp_passive", "ftp_user", "half_closed_clients", "header_access", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
353 | "header_replace", "hierarchy_stoplist", "high_response_time_warning", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
354 | "high_page_fault_warning", "hosts_file", "htcp_port", "http_access", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
355 | "http_anonymizer", "httpd_accel", "httpd_accel_host", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
356 | "httpd_accel_port", "httpd_accel_uses_host_header", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
357 | "httpd_accel_with_proxy", "http_port", "http_reply_access", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
358 | "icp_access", "icp_hit_stale", "icp_port", "icp_query_timeout", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
359 | "ident_lookup", "ident_lookup_access", "ident_timeout", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
360 | "incoming_http_average", "incoming_icp_average", "inside_firewall", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
361 | "ipcache_high", "ipcache_low", "ipcache_size", "local_domain", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
362 | "local_ip", "logfile_rotate", "log_fqdn", "log_icp_queries", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
363 | "log_mime_hdrs", "maximum_object_size", "maximum_single_addr_tries", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
364 | "mcast_groups", "mcast_icp_query_timeout", "mcast_miss_addr", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
365 | "mcast_miss_encode_key", "mcast_miss_port", "memory_pools", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
366 | "memory_pools_limit", "memory_replacement_policy", "mime_table", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
367 | "min_http_poll_cnt", "min_icp_poll_cnt", "minimum_direct_hops", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
368 | "minimum_object_size", "minimum_retry_timeout", "miss_access", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
369 | "negative_dns_ttl", "negative_ttl", "neighbor_timeout", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
370 | "neighbor_type_domain", "netdb_high", "netdb_low", "netdb_ping_period", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
371 | "netdb_ping_rate", "never_direct", "no_cache", "passthrough_proxy", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
372 | "pconn_timeout", "pid_filename", "pinger_program", "positive_dns_ttl", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
373 | "prefer_direct", "proxy_auth", "proxy_auth_realm", "query_icmp", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
374 | "quick_abort", "quick_abort_max", "quick_abort_min", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
375 | "quick_abort_pct", "range_offset_limit", "read_timeout", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
376 | "redirect_children", "redirect_program", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
377 | "redirect_rewrites_host_header", "reference_age", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
378 | "refresh_pattern", "reload_into_ims", "request_body_max_size", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
379 | "request_size", "request_timeout", "shutdown_lifetime", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
380 | "single_parent_bypass", "siteselect_timeout", "snmp_access", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
381 | "snmp_incoming_address", "snmp_port", "source_ping", "ssl_proxy", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
382 | "store_avg_object_size", "store_objects_per_bucket", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
383 | "strip_query_terms", "swap_level1_dirs", "swap_level2_dirs", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
384 | "tcp_incoming_address", "tcp_outgoing_address", "tcp_recv_bufsize", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
385 | "test_reachability", "udp_hit_obj", "udp_hit_obj_size", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
386 | "udp_incoming_address", "udp_outgoing_address", "unique_hostname", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
387 | "unlinkd_program", "uri_whitespace", "useragent_log", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
388 | "visible_hostname", "wais_relay", "wais_relay_host", "wais_relay_port", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
389 | ) |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
390 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
391 | opts = ( |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
392 | "proxy-only", "weight", "ttl", "no-query", "default", "round-robin", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
393 | "multicast-responder", "on", "off", "all", "deny", "allow", "via", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
394 | "parent", "no-digest", "heap", "lru", "realm", "children", "q1", "q2", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
395 | "credentialsttl", "none", "disable", "offline_toggle", "diskd", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
396 | ) |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
397 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
398 | actions = ( |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
399 | "shutdown", "info", "parameter", "server_list", "client_list", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
400 | r'squid.conf', |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
401 | ) |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
402 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
403 | actions_stats = ( |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
404 | "objects", "vm_objects", "utilization", "ipcache", "fqdncache", "dns", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
405 | "redirector", "io", "reply_headers", "filedescriptors", "netdb", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
406 | ) |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
407 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
408 | actions_log = ("status", "enable", "disable", "clear") |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
409 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
410 | acls = ( |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
411 | "url_regex", "urlpath_regex", "referer_regex", "port", "proto", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
412 | "req_mime_type", "rep_mime_type", "method", "browser", "user", "src", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
413 | "dst", "time", "dstdomain", "ident", "snmp_community", |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
414 | ) |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
415 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
416 | ip_re = ( |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
417 | r'(?:(?:(?:[3-9]\d?|2(?:5[0-5]|[0-4]?\d)?|1\d{0,2}|0x0*[0-9a-f]{1,2}|' |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
418 | r'0+[1-3]?[0-7]{0,2})(?:\.(?:[3-9]\d?|2(?:5[0-5]|[0-4]?\d)?|1\d{0,2}|' |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
419 | r'0x0*[0-9a-f]{1,2}|0+[1-3]?[0-7]{0,2})){3})|(?!.*::.*::)(?:(?!:)|' |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
420 | r':(?=:))(?:[0-9a-f]{0,4}(?:(?<=::)|(?<!::):)){6}(?:[0-9a-f]{0,4}' |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
421 | r'(?:(?<=::)|(?<!::):)[0-9a-f]{0,4}(?:(?<=::)|(?<!:)|(?<=:)(?<!::):)|' |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
422 | r'(?:25[0-4]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-4]|2[0-4]\d|1\d\d|' |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
423 | r'[1-9]?\d)){3}))' |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
424 | ) |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
425 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
426 | tokens = { |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
427 | 'root': [ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
428 | (r'\s+', Whitespace), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
429 | (r'#', Comment, 'comment'), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
430 | (words(keywords, prefix=r'\b', suffix=r'\b'), Keyword), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
431 | (words(opts, prefix=r'\b', suffix=r'\b'), Name.Constant), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
432 | # Actions |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
433 | (words(actions, prefix=r'\b', suffix=r'\b'), String), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
434 | (words(actions_stats, prefix=r'stats/', suffix=r'\b'), String), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
435 | (words(actions_log, prefix=r'log/', suffix=r'='), String), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
436 | (words(acls, prefix=r'\b', suffix=r'\b'), Keyword), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
437 | (ip_re + r'(?:/(?:' + ip_re + r'|\b\d+\b))?', Number.Float), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
438 | (r'(?:\b\d+\b(?:-\b\d+|%)?)', Number), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
439 | (r'\S+', Text), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
440 | ], |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
441 | 'comment': [ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
442 | (r'\s*TAG:.*', String.Escape, '#pop'), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
443 | (r'.+', Comment, '#pop'), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
444 | default('#pop'), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
445 | ], |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
446 | } |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
447 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
448 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
449 | class NginxConfLexer(RegexLexer): |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
450 | """ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
451 | Lexer for `Nginx <http://nginx.net/>`_ configuration files. |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
452 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
453 | .. versionadded:: 0.11 |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
454 | """ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
455 | name = 'Nginx configuration file' |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
456 | aliases = ['nginx'] |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
457 | filenames = [] |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
458 | mimetypes = ['text/x-nginx-conf'] |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
459 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
460 | tokens = { |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
461 | 'root': [ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
462 | (r'(include)(\s+)([^\s;]+)', bygroups(Keyword, Text, Name)), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
463 | (r'[^\s;#]+', Keyword, 'stmt'), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
464 | include('base'), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
465 | ], |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
466 | 'block': [ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
467 | (r'\}', Punctuation, '#pop:2'), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
468 | (r'[^\s;#]+', Keyword.Namespace, 'stmt'), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
469 | include('base'), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
470 | ], |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
471 | 'stmt': [ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
472 | (r'\{', Punctuation, 'block'), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
473 | (r';', Punctuation, '#pop'), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
474 | include('base'), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
475 | ], |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
476 | 'base': [ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
477 | (r'#.*\n', Comment.Single), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
478 | (r'on|off', Name.Constant), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
479 | (r'\$[^\s;#()]+', Name.Variable), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
480 | (r'([a-z0-9.-]+)(:)([0-9]+)', |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
481 | bygroups(Name, Punctuation, Number.Integer)), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
482 | (r'[a-z-]+/[a-z-+]+', String), # mimetype |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
483 | # (r'[a-zA-Z._-]+', Keyword), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
484 | (r'[0-9]+[km]?\b', Number.Integer), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
485 | (r'(~)(\s*)([^\s{]+)', bygroups(Punctuation, Text, String.Regex)), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
486 | (r'[:=~]', Punctuation), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
487 | (r'[^\s;#{}$]+', String), # catch all |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
488 | (r'/[^\s;#]*', Name), # pathname |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
489 | (r'\s+', Text), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
490 | (r'[$;]', Text), # leftover characters |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
491 | ], |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
492 | } |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
493 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
494 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
495 | class LighttpdConfLexer(RegexLexer): |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
496 | """ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
497 | Lexer for `Lighttpd <http://lighttpd.net/>`_ configuration files. |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
498 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
499 | .. versionadded:: 0.11 |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
500 | """ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
501 | name = 'Lighttpd configuration file' |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
502 | aliases = ['lighty', 'lighttpd'] |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
503 | filenames = [] |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
504 | mimetypes = ['text/x-lighttpd-conf'] |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
505 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
506 | tokens = { |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
507 | 'root': [ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
508 | (r'#.*\n', Comment.Single), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
509 | (r'/\S*', Name), # pathname |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
510 | (r'[a-zA-Z._-]+', Keyword), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
511 | (r'\d+\.\d+\.\d+\.\d+(?:/\d+)?', Number), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
512 | (r'[0-9]+', Number), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
513 | (r'=>|=~|\+=|==|=|\+', Operator), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
514 | (r'\$[A-Z]+', Name.Builtin), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
515 | (r'[(){}\[\],]', Punctuation), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
516 | (r'"([^"\\]*(?:\\.[^"\\]*)*)"', String.Double), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
517 | (r'\s+', Text), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
518 | ], |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
519 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
520 | } |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
521 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
522 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
523 | class DockerLexer(RegexLexer): |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
524 | """ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
525 | Lexer for `Docker <http://docker.io>`_ configuration files. |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
526 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
527 | .. versionadded:: 2.0 |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
528 | """ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
529 | name = 'Docker' |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
530 | aliases = ['docker', 'dockerfile'] |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
531 | filenames = ['Dockerfile', '*.docker'] |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
532 | mimetypes = ['text/x-dockerfile-config'] |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
533 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
534 | _keywords = (r'(?:FROM|MAINTAINER|CMD|EXPOSE|ENV|ADD|ENTRYPOINT|' |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
535 | r'VOLUME|WORKDIR)') |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
536 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
537 | flags = re.IGNORECASE | re.MULTILINE |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
538 | |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
539 | tokens = { |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
540 | 'root': [ |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
541 | (r'^(ONBUILD)(\s+)(%s)\b' % (_keywords,), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
542 | bygroups(Name.Keyword, Whitespace, Keyword)), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
543 | (r'^(%s)\b(.*)' % (_keywords,), bygroups(Keyword, String)), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
544 | (r'#.*', Comment), |
4697
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
545 | (r'RUN', Keyword), # Rest of line falls through |
4172
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
546 | (r'(.*\\\n)*.+', using(BashLexer)), |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
547 | ], |
4f20dba37ab6
Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
548 | } |
4697
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
549 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
550 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
551 | class TerraformLexer(RegexLexer): |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
552 | """ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
553 | Lexer for `terraformi .tf files <https://www.terraform.io/>`_. |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
554 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
555 | .. versionadded:: 2.1 |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
556 | """ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
557 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
558 | name = 'Terraform' |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
559 | aliases = ['terraform', 'tf'] |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
560 | filenames = ['*.tf'] |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
561 | mimetypes = ['application/x-tf', 'application/x-terraform'] |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
562 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
563 | tokens = { |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
564 | 'root': [ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
565 | include('string'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
566 | include('punctuation'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
567 | include('curly'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
568 | include('basic'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
569 | include('whitespace'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
570 | (r'[0-9]+', Number), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
571 | ], |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
572 | 'basic': [ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
573 | (words(('true', 'false'), prefix=r'\b', suffix=r'\b'), Keyword.Type), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
574 | (r'\s*/\*', Comment.Multiline, 'comment'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
575 | (r'\s*#.*\n', Comment.Single), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
576 | (r'(.*?)(\s*)(=)', bygroups(Name.Attribute, Text, Operator)), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
577 | (words(('variable', 'resource', 'provider', 'provisioner', 'module'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
578 | prefix=r'\b', suffix=r'\b'), Keyword.Reserved, 'function'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
579 | (words(('ingress', 'egress', 'listener', 'default', 'connection'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
580 | prefix=r'\b', suffix=r'\b'), Keyword.Declaration), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
581 | ('\$\{', String.Interpol, 'var_builtin'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
582 | ], |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
583 | 'function': [ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
584 | (r'(\s+)(".*")(\s+)', bygroups(Text, String, Text)), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
585 | include('punctuation'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
586 | include('curly'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
587 | ], |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
588 | 'var_builtin': [ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
589 | (r'\$\{', String.Interpol, '#push'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
590 | (words(('concat', 'file', 'join', 'lookup', 'element'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
591 | prefix=r'\b', suffix=r'\b'), Name.Builtin), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
592 | include('string'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
593 | include('punctuation'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
594 | (r'\s+', Text), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
595 | (r'\}', String.Interpol, '#pop'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
596 | ], |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
597 | 'string': [ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
598 | (r'(".*")', bygroups(String.Double)), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
599 | ], |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
600 | 'punctuation': [ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
601 | (r'[\[\]\(\),.]', Punctuation), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
602 | ], |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
603 | # Keep this seperate from punctuation - we sometimes want to use different |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
604 | # Tokens for { } |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
605 | 'curly': [ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
606 | (r'\{', Text.Punctuation), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
607 | (r'\}', Text.Punctuation), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
608 | ], |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
609 | 'comment': [ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
610 | (r'[^*/]', Comment.Multiline), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
611 | (r'/\*', Comment.Multiline, '#push'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
612 | (r'\*/', Comment.Multiline, '#pop'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
613 | (r'[*/]', Comment.Multiline) |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
614 | ], |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
615 | 'whitespace': [ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
616 | (r'\n', Text), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
617 | (r'\s+', Text), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
618 | (r'\\\n', Text), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
619 | ], |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
620 | } |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
621 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
622 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
623 | class TermcapLexer(RegexLexer): |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
624 | """ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
625 | Lexer for termcap database source. |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
626 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
627 | This is very simple and minimal. |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
628 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
629 | .. versionadded:: 2.1 |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
630 | """ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
631 | name = 'Termcap' |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
632 | aliases = ['termcap',] |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
633 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
634 | filenames = ['termcap', 'termcap.src',] |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
635 | mimetypes = [] |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
636 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
637 | # NOTE: |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
638 | # * multiline with trailing backslash |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
639 | # * separator is ':' |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
640 | # * to embed colon as data, we must use \072 |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
641 | # * space after separator is not allowed (mayve) |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
642 | tokens = { |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
643 | 'root': [ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
644 | (r'^#.*$', Comment), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
645 | (r'^[^\s#:\|]+', Name.Tag, 'names'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
646 | ], |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
647 | 'names': [ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
648 | (r'\n', Text, '#pop'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
649 | (r':', Punctuation, 'defs'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
650 | (r'\|', Punctuation), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
651 | (r'[^:\|]+', Name.Attribute), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
652 | ], |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
653 | 'defs': [ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
654 | (r'\\\n[ \t]*', Text), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
655 | (r'\n[ \t]*', Text, '#pop:2'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
656 | (r'(#)([0-9]+)', bygroups(Operator, Number)), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
657 | (r'=', Operator, 'data'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
658 | (r':', Punctuation), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
659 | (r'[^\s:=#]+', Name.Class), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
660 | ], |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
661 | 'data': [ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
662 | (r'\\072', Literal), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
663 | (r':', Punctuation, '#pop'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
664 | (r'[^:\\]+', Literal), # for performance |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
665 | (r'.', Literal), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
666 | ], |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
667 | } |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
668 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
669 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
670 | class TerminfoLexer(RegexLexer): |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
671 | """ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
672 | Lexer for terminfo database source. |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
673 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
674 | This is very simple and minimal. |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
675 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
676 | .. versionadded:: 2.1 |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
677 | """ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
678 | name = 'Terminfo' |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
679 | aliases = ['terminfo',] |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
680 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
681 | filenames = ['terminfo', 'terminfo.src',] |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
682 | mimetypes = [] |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
683 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
684 | # NOTE: |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
685 | # * multiline with leading whitespace |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
686 | # * separator is ',' |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
687 | # * to embed comma as data, we can use \, |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
688 | # * space after separator is allowed |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
689 | tokens = { |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
690 | 'root': [ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
691 | (r'^#.*$', Comment), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
692 | (r'^[^\s#,\|]+', Name.Tag, 'names'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
693 | ], |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
694 | 'names': [ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
695 | (r'\n', Text, '#pop'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
696 | (r'(,)([ \t]*)', bygroups(Punctuation, Text), 'defs'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
697 | (r'\|', Punctuation), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
698 | (r'[^,\|]+', Name.Attribute), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
699 | ], |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
700 | 'defs': [ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
701 | (r'\n[ \t]+', Text), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
702 | (r'\n', Text, '#pop:2'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
703 | (r'(#)([0-9]+)', bygroups(Operator, Number)), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
704 | (r'=', Operator, 'data'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
705 | (r'(,)([ \t]*)', bygroups(Punctuation, Text)), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
706 | (r'[^\s,=#]+', Name.Class), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
707 | ], |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
708 | 'data': [ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
709 | (r'\\[,\\]', Literal), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
710 | (r'(,)([ \t]*)', bygroups(Punctuation, Text), '#pop'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
711 | (r'[^\\,]+', Literal), # for performance |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
712 | (r'.', Literal), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
713 | ], |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
714 | } |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
715 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
716 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
717 | class PkgConfigLexer(RegexLexer): |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
718 | """ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
719 | Lexer for `pkg-config |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
720 | <http://www.freedesktop.org/wiki/Software/pkg-config/>`_ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
721 | (see also `manual page <http://linux.die.net/man/1/pkg-config>`_). |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
722 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
723 | .. versionadded:: 2.1 |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
724 | """ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
725 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
726 | name = 'PkgConfig' |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
727 | aliases = ['pkgconfig',] |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
728 | filenames = ['*.pc',] |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
729 | mimetypes = [] |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
730 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
731 | tokens = { |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
732 | 'root': [ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
733 | (r'#.*$', Comment.Single), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
734 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
735 | # variable definitions |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
736 | (r'^(\w+)(=)', bygroups(Name.Attribute, Operator)), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
737 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
738 | # keyword lines |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
739 | (r'^([\w.]+)(:)', |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
740 | bygroups(Name.Tag, Punctuation), 'spvalue'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
741 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
742 | # variable references |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
743 | include('interp'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
744 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
745 | # fallback |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
746 | (r'[^${}#=:\n.]+', Text), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
747 | (r'.', Text), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
748 | ], |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
749 | 'interp': [ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
750 | # you can escape literal "$" as "$$" |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
751 | (r'\$\$', Text), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
752 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
753 | # variable references |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
754 | (r'\$\{', String.Interpol, 'curly'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
755 | ], |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
756 | 'curly': [ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
757 | (r'\}', String.Interpol, '#pop'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
758 | (r'\w+', Name.Attribute), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
759 | ], |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
760 | 'spvalue': [ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
761 | include('interp'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
762 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
763 | (r'#.*$', Comment.Single, '#pop'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
764 | (r'\n', Text, '#pop'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
765 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
766 | # fallback |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
767 | (r'[^${}#\n]+', Text), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
768 | (r'.', Text), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
769 | ], |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
770 | } |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
771 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
772 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
773 | class PacmanConfLexer(RegexLexer): |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
774 | """ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
775 | Lexer for `pacman.conf |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
776 | <https://www.archlinux.org/pacman/pacman.conf.5.html>`_. |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
777 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
778 | Actually, IniLexer works almost fine for this format, |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
779 | but it yield error token. It is because pacman.conf has |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
780 | a form without assignment like: |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
781 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
782 | UseSyslog |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
783 | Color |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
784 | TotalDownload |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
785 | CheckSpace |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
786 | VerbosePkgLists |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
787 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
788 | These are flags to switch on. |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
789 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
790 | .. versionadded:: 2.1 |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
791 | """ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
792 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
793 | name = 'PacmanConf' |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
794 | aliases = ['pacmanconf',] |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
795 | filenames = ['pacman.conf',] |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
796 | mimetypes = [] |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
797 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
798 | tokens = { |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
799 | 'root': [ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
800 | # comment |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
801 | (r'#.*$', Comment.Single), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
802 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
803 | # section header |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
804 | (r'^\s*\[.*?\]\s*$', Keyword), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
805 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
806 | # variable definitions |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
807 | # (Leading space is allowed...) |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
808 | (r'(\w+)(\s*)(=)', |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
809 | bygroups(Name.Attribute, Text, Operator)), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
810 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
811 | # flags to on |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
812 | (r'^(\s*)(\w+)(\s*)$', |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
813 | bygroups(Text, Name.Attribute, Text)), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
814 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
815 | # built-in special values |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
816 | (words(( |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
817 | '$repo', # repository |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
818 | '$arch', # architecture |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
819 | '%o', # outfile |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
820 | '%u', # url |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
821 | ), suffix=r'\b'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
822 | Name.Variable), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
823 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
824 | # fallback |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
825 | (r'.', Text), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
826 | ], |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4172
diff
changeset
|
827 | } |