Mon, 25 Mar 2013 03:11:06 +0100
Script changes: Future import added, super calls modified and unicode behavior for str.
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | """ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
3 | pygments.lexers.shell |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | ~~~~~~~~~~~~~~~~~~~~~ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | Lexers for various shells. |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
8 | :copyright: Copyright 2006-2013 by the Pygments team, see AUTHORS. |
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | :license: BSD, see LICENSE for details. |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | """ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2426
diff
changeset
|
12 | from __future__ import unicode_literals # __IGNORE_WARNING__ |
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2426
diff
changeset
|
13 | |
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | import re |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | from pygments.lexer import Lexer, RegexLexer, do_insertions, bygroups, include |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | from pygments.token import Punctuation, \ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | Text, Comment, Operator, Keyword, Name, String, Number, Generic |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | from pygments.util import shebang_matches |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | __all__ = ['BashLexer', 'BashSessionLexer', 'TcshLexer', 'BatchLexer', |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
23 | 'PowerShellLexer', 'ShellSessionLexer'] |
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | line_re = re.compile('.*?\n') |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | class BashLexer(RegexLexer): |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | """ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | Lexer for (ba|k|)sh shell scripts. |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | *New in Pygments 0.6.* |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | """ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | name = 'Bash' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | aliases = ['bash', 'sh', 'ksh'] |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | filenames = ['*.sh', '*.ksh', '*.bash', '*.ebuild', '*.eclass', |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | '.bashrc', 'bashrc', '.bash_*', 'bash_*'] |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | mimetypes = ['application/x-sh', 'application/x-shellscript'] |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | tokens = { |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | 'root': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | include('basic'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | (r'\$\(\(', Keyword, 'math'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | (r'\$\(', Keyword, 'paren'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | (r'\${#?', Keyword, 'curly'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | (r'`', String.Backtick, 'backticks'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | include('data'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | 'basic': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | (r'\b(if|fi|else|while|do|done|for|then|return|function|case|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | r'select|continue|until|esac|elif)\s*\b', |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | Keyword), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | (r'\b(alias|bg|bind|break|builtin|caller|cd|command|compgen|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | r'complete|declare|dirs|disown|echo|enable|eval|exec|exit|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | r'export|false|fc|fg|getopts|hash|help|history|jobs|kill|let|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | r'local|logout|popd|printf|pushd|pwd|read|readonly|set|shift|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | r'shopt|source|suspend|test|time|times|trap|true|type|typeset|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | r'ulimit|umask|unalias|unset|wait)\s*\b(?!\.)', |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | Name.Builtin), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | (r'#.*\n', Comment), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | (r'\\[\w\W]', String.Escape), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | (r'[\[\]{}()=]', Operator), |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
65 | (r'<<<', Operator), # here-string |
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | (r'<<-?\s*(\'?)\\?(\w+)[\w\W]+?\2', String), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | (r'&&|\|\|', Operator), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | 'data': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | (r'(?s)\$?"(\\\\|\\[0-7]+|\\.|[^"\\])*"', String.Double), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | (r"(?s)\$?'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | (r';', Text), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | (r'\s+', Text), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | (r'[^=\s\[\]{}()$"\'`\\<]+', Text), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | (r'\d+(?= |\Z)', Number), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | (r'\$#?(\w+|.)', Name.Variable), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | (r'<', Text), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | 'curly': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | (r'}', Keyword, '#pop'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | (r':-', Keyword), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | (r'[a-zA-Z0-9_]+', Name.Variable), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | (r'[^}:"\'`$]+', Punctuation), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | (r':', Punctuation), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | include('root'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | 'paren': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | (r'\)', Keyword, '#pop'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | include('root'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | 'math': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | (r'\)\)', Keyword, '#pop'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | (r'[-+*/%^|&]|\*\*|\|\|', Operator), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | (r'\d+', Number), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | include('root'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | 'backticks': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | (r'`', String.Backtick, '#pop'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | include('root'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | } |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | def analyse_text(text): |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
104 | return shebang_matches(text, r'(ba|z|)sh') |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | class BashSessionLexer(Lexer): |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | """ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | Lexer for simplistic shell sessions. |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
111 | *New in Pygments 1.1.* |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
112 | """ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
114 | name = 'Bash Session' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
115 | aliases = ['console'] |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
116 | filenames = ['*.sh-session'] |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | mimetypes = ['application/x-shell-session'] |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
118 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
119 | def get_tokens_unprocessed(self, text): |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | bashlexer = BashLexer(**self.options) |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
122 | pos = 0 |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
123 | curcode = '' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | insertions = [] |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | for match in line_re.finditer(text): |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | line = match.group() |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | m = re.match(r'^((?:\(\S+\))?(?:|sh\S*?|\w+\S+[@:]\S+(?:\s+\S+)' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | r'?|\[\S+[@:][^\n]+\].+)[$#%])(.*\n?)' , line) |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | if m: |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | # To support output lexers (say diff output), the output |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | # needs to be broken by prompts whenever the output lexer |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133 | # changes. |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | if not insertions: |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
135 | pos = match.start() |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
137 | insertions.append((len(curcode), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
138 | [(0, Generic.Prompt, m.group(1))])) |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
139 | curcode += m.group(2) |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
140 | elif line.startswith('>'): |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
141 | insertions.append((len(curcode), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
142 | [(0, Generic.Prompt, line[:1])])) |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
143 | curcode += line[1:] |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
144 | else: |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
145 | if insertions: |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
146 | toks = bashlexer.get_tokens_unprocessed(curcode) |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
147 | for i, t, v in do_insertions(insertions, toks): |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
148 | yield pos+i, t, v |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
149 | yield match.start(), Generic.Output, line |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
150 | insertions = [] |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
151 | curcode = '' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152 | if insertions: |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
153 | for i, t, v in do_insertions(insertions, |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
154 | bashlexer.get_tokens_unprocessed(curcode)): |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
155 | yield pos+i, t, v |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
156 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
157 | |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
158 | class ShellSessionLexer(Lexer): |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
159 | """ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
160 | Lexer for shell sessions that works with different command prompts |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
161 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
162 | *New in Pygments 1.6.* |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
163 | """ |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
164 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
165 | name = 'Shell Session' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
166 | aliases = ['shell-session'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
167 | filenames = ['*.shell-session'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
168 | mimetypes = ['application/x-sh-session'] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
169 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
170 | def get_tokens_unprocessed(self, text): |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
171 | bashlexer = BashLexer(**self.options) |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
172 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
173 | pos = 0 |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
174 | curcode = '' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
175 | insertions = [] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
176 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
177 | for match in line_re.finditer(text): |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
178 | line = match.group() |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
179 | m = re.match(r'^((?:\[?\S+@[^$#%]+)[$#%])(.*\n?)', line) |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
180 | if m: |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
181 | # To support output lexers (say diff output), the output |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
182 | # needs to be broken by prompts whenever the output lexer |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
183 | # changes. |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
184 | if not insertions: |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
185 | pos = match.start() |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
186 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
187 | insertions.append((len(curcode), |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
188 | [(0, Generic.Prompt, m.group(1))])) |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
189 | curcode += m.group(2) |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
190 | else: |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
191 | if insertions: |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
192 | toks = bashlexer.get_tokens_unprocessed(curcode) |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
193 | for i, t, v in do_insertions(insertions, toks): |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
194 | yield pos+i, t, v |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
195 | yield match.start(), Generic.Output, line |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
196 | insertions = [] |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
197 | curcode = '' |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
198 | if insertions: |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
199 | for i, t, v in do_insertions(insertions, |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
200 | bashlexer.get_tokens_unprocessed(curcode)): |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
201 | yield pos+i, t, v |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
202 | |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
203 | |
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
204 | class BatchLexer(RegexLexer): |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
205 | """ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
206 | Lexer for the DOS/Windows Batch file format. |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
207 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
208 | *New in Pygments 0.7.* |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
209 | """ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
210 | name = 'Batchfile' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
211 | aliases = ['bat'] |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
212 | filenames = ['*.bat', '*.cmd'] |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
213 | mimetypes = ['application/x-dos-batch'] |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
214 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
215 | flags = re.MULTILINE | re.IGNORECASE |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
216 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
217 | tokens = { |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
218 | 'root': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
219 | # Lines can start with @ to prevent echo |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
220 | (r'^\s*@', Punctuation), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
221 | (r'^(\s*)(rem\s.*)$', bygroups(Text, Comment)), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
222 | (r'".*?"', String.Double), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
223 | (r"'.*?'", String.Single), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
224 | # If made more specific, make sure you still allow expansions |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
225 | # like %~$VAR:zlt |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
226 | (r'%%?[~$:\w]+%?', Name.Variable), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
227 | (r'::.*', Comment), # Technically :: only works at BOL |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
228 | (r'(set)(\s+)(\w+)', bygroups(Keyword, Text, Name.Variable)), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
229 | (r'(call)(\s+)(:\w+)', bygroups(Keyword, Text, Name.Label)), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
230 | (r'(goto)(\s+)(\w+)', bygroups(Keyword, Text, Name.Label)), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
231 | (r'\b(set|call|echo|on|off|endlocal|for|do|goto|if|pause|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
232 | r'setlocal|shift|errorlevel|exist|defined|cmdextversion|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
233 | r'errorlevel|else|cd|md|del|deltree|cls|choice)\b', Keyword), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
234 | (r'\b(equ|neq|lss|leq|gtr|geq)\b', Operator), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
235 | include('basic'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
236 | (r'.', Text), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
237 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
238 | 'echo': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
239 | # Escapes only valid within echo args? |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
240 | (r'\^\^|\^<|\^>|\^\|', String.Escape), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
241 | (r'\n', Text, '#pop'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
242 | include('basic'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
243 | (r'[^\'"^]+', Text), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
244 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
245 | 'basic': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
246 | (r'".*?"', String.Double), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
247 | (r"'.*?'", String.Single), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
248 | (r'`.*?`', String.Backtick), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
249 | (r'-?\d+', Number), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
250 | (r',', Punctuation), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
251 | (r'=', Operator), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
252 | (r'/\S+', Name), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
253 | (r':\w+', Name.Label), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
254 | (r'\w:\w+', Text), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
255 | (r'([<>|])(\s*)(\w+)', bygroups(Punctuation, Text, Name)), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
256 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
257 | } |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
258 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
259 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
260 | class TcshLexer(RegexLexer): |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
261 | """ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
262 | Lexer for tcsh scripts. |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
263 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
264 | *New in Pygments 0.10.* |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
265 | """ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
266 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
267 | name = 'Tcsh' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
268 | aliases = ['tcsh', 'csh'] |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
269 | filenames = ['*.tcsh', '*.csh'] |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
270 | mimetypes = ['application/x-csh'] |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
271 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
272 | tokens = { |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
273 | 'root': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
274 | include('basic'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
275 | (r'\$\(', Keyword, 'paren'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
276 | (r'\${#?', Keyword, 'curly'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
277 | (r'`', String.Backtick, 'backticks'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
278 | include('data'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
279 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
280 | 'basic': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
281 | (r'\b(if|endif|else|while|then|foreach|case|default|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
282 | r'continue|goto|breaksw|end|switch|endsw)\s*\b', |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
283 | Keyword), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
284 | (r'\b(alias|alloc|bg|bindkey|break|builtins|bye|caller|cd|chdir|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
285 | r'complete|dirs|echo|echotc|eval|exec|exit|fg|filetest|getxvers|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
286 | r'glob|getspath|hashstat|history|hup|inlib|jobs|kill|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
287 | r'limit|log|login|logout|ls-F|migrate|newgrp|nice|nohup|notify|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
288 | r'onintr|popd|printenv|pushd|rehash|repeat|rootnode|popd|pushd|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
289 | r'set|shift|sched|setenv|setpath|settc|setty|setxvers|shift|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
290 | r'source|stop|suspend|source|suspend|telltc|time|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
291 | r'umask|unalias|uncomplete|unhash|universe|unlimit|unset|unsetenv|' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
292 | r'ver|wait|warp|watchlog|where|which)\s*\b', |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
293 | Name.Builtin), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
294 | (r'#.*\n', Comment), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
295 | (r'\\[\w\W]', String.Escape), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
296 | (r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
297 | (r'[\[\]{}()=]+', Operator), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
298 | (r'<<\s*(\'?)\\?(\w+)[\w\W]+?\2', String), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
299 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
300 | 'data': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
301 | (r'(?s)"(\\\\|\\[0-7]+|\\.|[^"\\])*"', String.Double), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
302 | (r"(?s)'(\\\\|\\[0-7]+|\\.|[^'\\])*'", String.Single), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
303 | (r'\s+', Text), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
304 | (r'[^=\s\[\]{}()$"\'`\\]+', Text), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
305 | (r'\d+(?= |\Z)', Number), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
306 | (r'\$#?(\w+|.)', Name.Variable), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
307 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
308 | 'curly': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
309 | (r'}', Keyword, '#pop'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
310 | (r':-', Keyword), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
311 | (r'[a-zA-Z0-9_]+', Name.Variable), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
312 | (r'[^}:"\'`$]+', Punctuation), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
313 | (r':', Punctuation), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
314 | include('root'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
315 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
316 | 'paren': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
317 | (r'\)', Keyword, '#pop'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
318 | include('root'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
319 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
320 | 'backticks': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
321 | (r'`', String.Backtick, '#pop'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
322 | include('root'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
323 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
324 | } |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
325 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
326 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
327 | class PowerShellLexer(RegexLexer): |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
328 | """ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
329 | For Windows PowerShell code. |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
330 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
331 | *New in Pygments 1.5.* |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
332 | """ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
333 | name = 'PowerShell' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
334 | aliases = ['powershell', 'posh', 'ps1'] |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
335 | filenames = ['*.ps1'] |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
336 | mimetypes = ['text/x-powershell'] |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
337 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
338 | flags = re.DOTALL | re.IGNORECASE | re.MULTILINE |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
339 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
340 | keywords = ( |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
341 | 'while validateset validaterange validatepattern validatelength ' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
342 | 'validatecount until trap switch return ref process param parameter in ' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
343 | 'if global: function foreach for finally filter end elseif else ' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
344 | 'dynamicparam do default continue cmdletbinding break begin alias \\? ' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
345 | '% #script #private #local #global mandatory parametersetname position ' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
346 | 'valuefrompipeline valuefrompipelinebypropertyname ' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
347 | 'valuefromremainingarguments helpmessage try catch').split() |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
348 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
349 | operators = ( |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
350 | 'and as band bnot bor bxor casesensitive ccontains ceq cge cgt cle ' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
351 | 'clike clt cmatch cne cnotcontains cnotlike cnotmatch contains ' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
352 | 'creplace eq exact f file ge gt icontains ieq ige igt ile ilike ilt ' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
353 | 'imatch ine inotcontains inotlike inotmatch ireplace is isnot le like ' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
354 | 'lt match ne not notcontains notlike notmatch or regex replace ' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
355 | 'wildcard').split() |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
356 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
357 | verbs = ( |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
358 | 'write where wait use update unregister undo trace test tee take ' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
359 | 'suspend stop start split sort skip show set send select scroll resume ' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
360 | 'restore restart resolve resize reset rename remove register receive ' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
361 | 'read push pop ping out new move measure limit join invoke import ' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
362 | 'group get format foreach export expand exit enter enable disconnect ' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
363 | 'disable debug cxnew copy convertto convertfrom convert connect ' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
364 | 'complete compare clear checkpoint aggregate add').split() |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
365 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
366 | commenthelp = ( |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
367 | 'component description example externalhelp forwardhelpcategory ' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
368 | 'forwardhelptargetname functionality inputs link ' |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
369 | 'notes outputs parameter remotehelprunspace role synopsis').split() |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
370 | |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
371 | tokens = { |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
372 | 'root': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
373 | (r'\s+', Text), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
374 | (r'^(\s*#[#\s]*)(\.(?:%s))([^\n]*$)' % '|'.join(commenthelp), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
375 | bygroups(Comment, String.Doc, Comment)), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
376 | (r'#[^\n]*?$', Comment), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
377 | (r'(<|<)#', Comment.Multiline, 'multline'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
378 | (r'@"\n.*?\n"@', String.Heredoc), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
379 | (r"@'\n.*?\n'@", String.Heredoc), |
2426
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
380 | # escaped syntax |
da76c71624de
Updated to Pygments 1.6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1705
diff
changeset
|
381 | (r'`[\'"$@-]', Punctuation), |
1705
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
382 | (r'"', String.Double, 'string'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
383 | (r"'([^']|'')*'", String.Single), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
384 | (r'(\$|@@|@)((global|script|private|env):)?[a-z0-9_]+', |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
385 | Name.Variable), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
386 | (r'(%s)\b' % '|'.join(keywords), Keyword), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
387 | (r'-(%s)\b' % '|'.join(operators), Operator), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
388 | (r'(%s)-[a-z_][a-z0-9_]*\b' % '|'.join(verbs), Name.Builtin), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
389 | (r'\[[a-z_\[][a-z0-9_. `,\[\]]*\]', Name.Constant), # .net [type]s |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
390 | (r'-[a-z_][a-z0-9_]*', Name), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
391 | (r'\w+', Name), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
392 | (r'[.,{}\[\]$()=+*/\\&%!~?^`|<>-]', Punctuation), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
393 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
394 | 'multline': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
395 | (r'[^#&.]+', Comment.Multiline), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
396 | (r'#(>|>)', Comment.Multiline, '#pop'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
397 | (r'\.(%s)' % '|'.join(commenthelp), String.Doc), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
398 | (r'[#&.]', Comment.Multiline), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
399 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
400 | 'string': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
401 | (r'[^$`"]+', String.Double), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
402 | (r'\$\(', String.Interpol, 'interpol'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
403 | (r'`"|""', String.Double), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
404 | (r'[`$]', String.Double), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
405 | (r'"', String.Double, '#pop'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
406 | ], |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
407 | 'interpol': [ |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
408 | (r'[^$)]+', String.Interpol), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
409 | (r'\$\(', String.Interpol, '#push'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
410 | (r'\)', String.Interpol, '#pop'), |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
411 | ] |
b0fbc9300f2b
Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
412 | } |