Sun, 14 Apr 2019 15:09:21 +0200
Major restructuring of the source tree to get prepared for a setup.py based installation.
4697
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | """ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
3 | pygments.lexers.trafficscript |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | Lexer for RiverBed's TrafficScript (RTS) language. |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | |
5713
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4697
diff
changeset
|
8 | :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS. |
4697
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | :license: BSD, see LICENSE for details. |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | """ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | import re |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | from pygments.lexer import RegexLexer |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | from pygments.token import String, Number, Name, Keyword, Operator, Text, Comment |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | __all__ = ['RtsLexer'] |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | class RtsLexer(RegexLexer): |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | """ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | For `Riverbed Stingray Traffic Manager <http://www.riverbed.com/stingray>`_ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | .. versionadded:: 2.1 |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | """ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | name = 'TrafficScript' |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | aliases = ['rts','trafficscript'] |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | filenames = ['*.rts'] |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | tokens = { |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | 'root' : [ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | (r"'(\\\\|\\[^\\]|[^'\\])*'", String), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | (r'"', String, 'escapable-string'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | (r'(0x[0-9a-fA-F]+|\d+)', Number), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | (r'\d+\.\d+', Number.Float), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | (r'\$[a-zA-Z](\w|_)*', Name.Variable), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | (r'(if|else|for(each)?|in|while|do|break|sub|return|import)', Keyword), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | (r'[a-zA-Z][\w.]*', Name.Function), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | (r'[-+*/%=,;(){}<>^.!~|&\[\]\?\:]', Operator), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | (r'(>=|<=|==|!=|' |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | r'&&|\|\||' |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | r'\+=|.=|-=|\*=|/=|%=|<<=|>>=|&=|\|=|\^=|' |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | r'>>|<<|' |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | r'\+\+|--|=>)', Operator), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | (r'[ \t\r]+', Text), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | (r'#[^\n]*', Comment), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | ], |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | 'escapable-string' : [ |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | (r'\\[tsn]', String.Escape), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | (r'[^"]', String), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | (r'"', String, '#pop'), |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | ], |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | |
c2e9bf425554
Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | } |