ThirdParty/Pygments/pygments/lexers/installers.py

Wed, 11 Mar 2015 18:32:27 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 11 Mar 2015 18:32:27 +0100
changeset 4172
4f20dba37ab6
child 4697
c2e9bf425554
permissions
-rw-r--r--

Updated Pygments to 2.0.2.

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.installers
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 installer/packager DSLs and formats.
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 :copyright: Copyright 2006-2014 by the Pygments team, see AUTHORS.
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, include, bygroups, using, this, default
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, \
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 Punctuation, Generic, Number, Whitespace
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 __all__ = ['NSISLexer', 'RPMSpecLexer', 'SourcesListLexer',
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 'DebianControlLexer']
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 class NSISLexer(RegexLexer):
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 """
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 For `NSIS <http://nsis.sourceforge.net/>`_ scripts.
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 .. versionadded:: 1.6
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 name = 'NSIS'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 aliases = ['nsis', 'nsi', 'nsh']
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 filenames = ['*.nsi', '*.nsh']
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 mimetypes = ['text/x-nsis']
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 flags = re.IGNORECASE
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 tokens = {
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 'root': [
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 (r'[;#].*\n', Comment),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 (r"'.*?'", String.Single),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 (r'"', String.Double, 'str_double'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 (r'`', String.Backtick, 'str_backtick'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 include('macro'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 include('interpol'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 include('basic'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 (r'\$\{[a-z_|][\w|]*\}', Keyword.Pseudo),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 (r'/[a-z_]\w*', Name.Attribute),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 ('.', Text),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 ],
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 'basic': [
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 (r'(\n)(Function)(\s+)([._a-z][.\w]*)\b',
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 bygroups(Text, Keyword, Text, Name.Function)),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 (r'\b([_a-z]\w*)(::)([a-z][a-z0-9]*)\b',
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 bygroups(Keyword.Namespace, Punctuation, Name.Function)),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 (r'\b([_a-z]\w*)(:)', bygroups(Name.Label, Punctuation)),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 (r'(\b[ULS]|\B)([!<>=]?=|\<\>?|\>)\B', Operator),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 (r'[|+-]', Operator),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 (r'\\', Punctuation),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 (r'\b(Abort|Add(?:BrandingImage|Size)|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 r'Allow(?:RootDirInstall|SkipFiles)|AutoCloseWindow|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 r'BG(?:Font|Gradient)|BrandingText|BringToFront|Call(?:InstDLL)?|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 r'(?:Sub)?Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 r'ComponentText|CopyFiles|CRCCheck|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 r'Create(?:Directory|Font|Shortcut)|Delete(?:INI(?:Sec|Str)|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 r'Reg(?:Key|Value))?|DetailPrint|DetailsButtonText|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 r'Dir(?:Show|Text|Var|Verify)|(?:Disabled|Enabled)Bitmap|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 r'EnableWindow|EnumReg(?:Key|Value)|Exch|Exec(?:Shell|Wait)?|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 r'ExpandEnvStrings|File(?:BufSize|Close|ErrorText|Open|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 r'Read(?:Byte)?|Seek|Write(?:Byte)?)?|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 r'Find(?:Close|First|Next|Window)|FlushINI|Function(?:End)?|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 r'Get(?:CurInstType|CurrentAddress|DlgItem|DLLVersion(?:Local)?|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 r'ErrorLevel|FileTime(?:Local)?|FullPathName|FunctionAddress|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 r'InstDirError|LabelAddress|TempFileName)|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 r'Goto|HideWindow|Icon|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 r'If(?:Abort|Errors|FileExists|RebootFlag|Silent)|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 r'InitPluginsDir|Install(?:ButtonText|Colors|Dir(?:RegKey)?)|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 r'Inst(?:ProgressFlags|Type(?:[GS]etText)?)|Int(?:CmpU?|Fmt|Op)|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 r'IsWindow|LangString(?:UP)?|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 r'License(?:BkColor|Data|ForceSelection|LangString|Text)|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 r'LoadLanguageFile|LockWindow|Log(?:Set|Text)|MessageBox|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 r'MiscButtonText|Name|Nop|OutFile|(?:Uninst)?Page(?:Ex(?:End)?)?|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 r'PluginDir|Pop|Push|Quit|Read(?:(?:Env|INI|Reg)Str|RegDWORD)|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 r'Reboot|(?:Un)?RegDLL|Rename|RequestExecutionLevel|ReserveFile|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 r'Return|RMDir|SearchPath|Section(?:Divider|End|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 r'(?:(?:Get|Set)(?:Flags|InstTypes|Size|Text))|Group(?:End)?|In)?|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 r'SendMessage|Set(?:AutoClose|BrandingImage|Compress(?:ionLevel|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 r'or(?:DictSize)?)?|CtlColors|CurInstType|DatablockOptimize|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 r'DateSave|Details(?:Print|View)|Error(?:s|Level)|FileAttributes|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 r'Font|OutPath|Overwrite|PluginUnload|RebootFlag|ShellVarContext|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 r'Silent|StaticBkColor)|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 r'Show(?:(?:I|Uni)nstDetails|Window)|Silent(?:Un)?Install|Sleep|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 r'SpaceTexts|Str(?:CmpS?|Cpy|Len)|SubSection(?:End)?|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 r'Uninstall(?:ButtonText|(?:Sub)?Caption|EXEName|Icon|Text)|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 r'UninstPage|Var|VI(?:AddVersionKey|ProductVersion)|WindowIcon|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 r'Write(?:INIStr|Reg(:?Bin|DWORD|(?:Expand)?Str)|Uninstaller)|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 r'XPStyle)\b', Keyword),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 (r'\b(CUR|END|(?:FILE_ATTRIBUTE_)?'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 r'(?:ARCHIVE|HIDDEN|NORMAL|OFFLINE|READONLY|SYSTEM|TEMPORARY)|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 r'HK(CC|CR|CU|DD|LM|PD|U)|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 r'HKEY_(?:CLASSES_ROOT|CURRENT_(?:CONFIG|USER)|DYN_DATA|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 r'LOCAL_MACHINE|PERFORMANCE_DATA|USERS)|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 r'ID(?:ABORT|CANCEL|IGNORE|NO|OK|RETRY|YES)|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 r'MB_(?:ABORTRETRYIGNORE|DEFBUTTON[1-4]|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 r'ICON(?:EXCLAMATION|INFORMATION|QUESTION|STOP)|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 r'OK(?:CANCEL)?|RETRYCANCEL|RIGHT|SETFOREGROUND|TOPMOST|USERICON|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 r'YESNO(?:CANCEL)?)|SET|SHCTX|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 r'SW_(?:HIDE|SHOW(?:MAXIMIZED|MINIMIZED|NORMAL))|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 r'admin|all|auto|both|bottom|bzip2|checkbox|colored|current|false|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 r'force|hide|highest|if(?:diff|newer)|lastused|leave|left|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 r'listonly|lzma|nevershow|none|normal|off|on|pop|push|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 r'radiobuttons|right|show|silent|silentlog|smooth|textonly|top|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 r'true|try|user|zlib)\b', Name.Constant),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 ],
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 'macro': [
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 (r'\!(addincludedir(?:dir)?|addplugindir|appendfile|cd|define|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 r'delfilefile|echo(?:message)?|else|endif|error|execute|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 r'if(?:macro)?n?(?:def)?|include|insertmacro|macro(?:end)?|packhdr|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 r'search(?:parse|replace)|system|tempfilesymbol|undef|verbose|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 r'warning)\b', Comment.Preproc),
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 'interpol': [
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 (r'\$(R?[0-9])', Name.Builtin.Pseudo), # registers
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 (r'\$(ADMINTOOLS|APPDATA|CDBURN_AREA|COOKIES|COMMONFILES(?:32|64)|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 r'DESKTOP|DOCUMENTS|EXE(?:DIR|FILE|PATH)|FAVORITES|FONTS|HISTORY|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 r'HWNDPARENT|INTERNET_CACHE|LOCALAPPDATA|MUSIC|NETHOOD|PICTURES|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 r'PLUGINSDIR|PRINTHOOD|PROFILE|PROGRAMFILES(?:32|64)|QUICKLAUNCH|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 r'RECENT|RESOURCES(?:_LOCALIZED)?|SENDTO|SM(?:PROGRAMS|STARTUP)|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 r'STARTMENU|SYSDIR|TEMP(?:LATES)?|VIDEOS|WINDIR|\{NSISDIR\})',
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 Name.Builtin),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 (r'\$(CMDLINE|INSTDIR|OUTDIR|LANGUAGE)', Name.Variable.Global),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 (r'\$[a-z_]\w*', Name.Variable),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 ],
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 'str_double': [
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 (r'"', String, '#pop'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 (r'\$(\\[nrt"]|\$)', String.Escape),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 include('interpol'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 (r'.', String.Double),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 ],
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 'str_backtick': [
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 (r'`', String, '#pop'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 (r'\$(\\[nrt"]|\$)', String.Escape),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 include('interpol'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 (r'.', String.Double),
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 }
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 class RPMSpecLexer(RegexLexer):
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 """
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 For RPM ``.spec`` files.
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 .. versionadded:: 1.6
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 """
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 name = 'RPMSpec'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 aliases = ['spec']
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 filenames = ['*.spec']
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 mimetypes = ['text/x-rpm-spec']
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 _directives = ('(?:package|prep|build|install|clean|check|pre[a-z]*|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 'post[a-z]*|trigger[a-z]*|files)')
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 tokens = {
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 'root': [
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 (r'#.*\n', Comment),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 include('basic'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 ],
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 'description': [
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 (r'^(%' + _directives + ')(.*)$',
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 bygroups(Name.Decorator, Text), '#pop'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 (r'\n', Text),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170 (r'.', Text),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 ],
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 'changelog': [
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 (r'\*.*\n', Generic.Subheading),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 (r'^(%' + _directives + ')(.*)$',
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 bygroups(Name.Decorator, Text), '#pop'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 (r'\n', Text),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177 (r'.', Text),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178 ],
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 'string': [
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 (r'"', String.Double, '#pop'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181 (r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})', String.Escape),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 include('interpol'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 (r'.', String.Double),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184 ],
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185 'basic': [
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
186 include('macro'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
187 (r'(?i)^(Name|Version|Release|Epoch|Summary|Group|License|Packager|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
188 r'Vendor|Icon|URL|Distribution|Prefix|Patch[0-9]*|Source[0-9]*|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 r'Requires\(?[a-z]*\)?|[a-z]+Req|Obsoletes|Suggests|Provides|Conflicts|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
190 r'Build[a-z]+|[a-z]+Arch|Auto[a-z]+)(:)(.*)$',
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
191 bygroups(Generic.Heading, Punctuation, using(this))),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
192 (r'^%description', Name.Decorator, 'description'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
193 (r'^%changelog', Name.Decorator, 'changelog'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
194 (r'^(%' + _directives + ')(.*)$', bygroups(Name.Decorator, Text)),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
195 (r'%(attr|defattr|dir|doc(?:dir)?|setup|config(?:ure)?|'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
196 r'make(?:install)|ghost|patch[0-9]+|find_lang|exclude|verify)',
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
197 Keyword),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
198 include('interpol'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
199 (r"'.*?'", String.Single),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
200 (r'"', String.Double, 'string'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
201 (r'.', Text),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
202 ],
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
203 'macro': [
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204 (r'%define.*\n', Comment.Preproc),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
205 (r'%\{\!\?.*%define.*\}', Comment.Preproc),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
206 (r'(%(?:if(?:n?arch)?|else(?:if)?|endif))(.*)$',
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
207 bygroups(Comment.Preproc, Text)),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208 ],
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209 'interpol': [
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210 (r'%\{?__[a-z_]+\}?', Name.Function),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
211 (r'%\{?_([a-z_]+dir|[a-z_]+path|prefix)\}?', Keyword.Pseudo),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
212 (r'%\{\?\w+\}', Name.Variable),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
213 (r'\$\{?RPM_[A-Z0-9_]+\}?', Name.Variable.Global),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
214 (r'%\{[a-zA-Z]\w+\}', Keyword.Constant),
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 }
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
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
219 class SourcesListLexer(RegexLexer):
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
220 """
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
221 Lexer that highlights debian sources.list files.
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 .. versionadded:: 0.7
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
224 """
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
225
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
226 name = 'Debian Sourcelist'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
227 aliases = ['sourceslist', 'sources.list', 'debsources']
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
228 filenames = ['sources.list']
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
229 mimetype = ['application/x-debian-sourceslist']
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
230
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
231 tokens = {
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
232 'root': [
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
233 (r'\s+', Text),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
234 (r'#.*?$', Comment),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
235 (r'^(deb(?:-src)?)(\s+)',
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
236 bygroups(Keyword, Text), 'distribution')
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
237 ],
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
238 'distribution': [
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
239 (r'#.*?$', Comment, '#pop'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
240 (r'\$\(ARCH\)', Name.Variable),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
241 (r'[^\s$[]+', String),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
242 (r'\[', String.Other, 'escaped-distribution'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
243 (r'\$', String),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
244 (r'\s+', Text, 'components')
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
245 ],
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
246 'escaped-distribution': [
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
247 (r'\]', String.Other, '#pop'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
248 (r'\$\(ARCH\)', Name.Variable),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
249 (r'[^\]$]+', String.Other),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
250 (r'\$', String.Other)
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
251 ],
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
252 'components': [
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
253 (r'#.*?$', Comment, '#pop:2'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
254 (r'$', Text, '#pop:2'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
255 (r'\s+', Text),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
256 (r'\S+', Keyword.Pseudo),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
257 ]
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
258 }
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
259
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
260 def analyse_text(text):
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
261 for line in text.splitlines():
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
262 line = line.strip()
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
263 if line.startswith('deb ') or line.startswith('deb-src '):
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
264 return True
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
265
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
266
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
267 class DebianControlLexer(RegexLexer):
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
268 """
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
269 Lexer for Debian ``control`` files and ``apt-cache show <pkg>`` outputs.
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
270
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
271 .. versionadded:: 0.9
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
272 """
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
273 name = 'Debian Control file'
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
274 aliases = ['control', 'debcontrol']
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
275 filenames = ['control']
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 tokens = {
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
278 'root': [
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
279 (r'^(Description)', Keyword, 'description'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
280 (r'^(Maintainer)(:\s*)', bygroups(Keyword, Text), 'maintainer'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
281 (r'^((Build-)?Depends)', Keyword, 'depends'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
282 (r'^((?:Python-)?Version)(:\s*)(\S+)$',
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
283 bygroups(Keyword, Text, Number)),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
284 (r'^((?:Installed-)?Size)(:\s*)(\S+)$',
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
285 bygroups(Keyword, Text, Number)),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
286 (r'^(MD5Sum|SHA1|SHA256)(:\s*)(\S+)$',
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
287 bygroups(Keyword, Text, Number)),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
288 (r'^([a-zA-Z\-0-9\.]*?)(:\s*)(.*?)$',
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
289 bygroups(Keyword, Whitespace, String)),
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 'maintainer': [
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
292 (r'<[^>]+>', Generic.Strong),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
293 (r'<[^>]+>$', Generic.Strong, '#pop'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
294 (r',\n?', Text),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
295 (r'.', Text),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
296 ],
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
297 'description': [
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
298 (r'(.*)(Homepage)(: )(\S+)',
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
299 bygroups(Text, String, Name, Name.Class)),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
300 (r':.*\n', Generic.Strong),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
301 (r' .*\n', Text),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
302 default('#pop'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
303 ],
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
304 'depends': [
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
305 (r':\s*', Text),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
306 (r'(\$)(\{)(\w+\s*:\s*\w+)', bygroups(Operator, Text, Name.Entity)),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
307 (r'\(', Text, 'depend_vers'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
308 (r',', Text),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
309 (r'\|', Operator),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
310 (r'[\s]+', Text),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
311 (r'[})]\s*$', Text, '#pop'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
312 (r'\}', Text),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
313 (r'[^,]$', Name.Function, '#pop'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
314 (r'([+.a-zA-Z0-9-])(\s*)', bygroups(Name.Function, Text)),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
315 (r'\[.*?\]', Name.Entity),
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 'depend_vers': [
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
318 (r'\),', Text, '#pop'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
319 (r'\)[^,]', Text, '#pop:2'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
320 (r'([><=]+)(\s*)([^)]+)', bygroups(Operator, Text, Number))
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
321 ]
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
322 }

eric ide

mercurial