Tue, 25 Apr 2017 18:36:38 +0200
Updated Pygments to 2.2.0.
5713
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | """ |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
3 | pygments.lexers.verification |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | Lexer for Intermediate Verification Languages (IVLs). |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS. |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | :license: BSD, see LICENSE for details. |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | """ |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | from pygments.lexer import RegexLexer, include, words |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | from pygments.token import Comment, Operator, Keyword, Name, Number, \ |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | Punctuation, Whitespace |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | __all__ = ['BoogieLexer', 'SilverLexer'] |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | class BoogieLexer(RegexLexer): |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | """ |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | For `Boogie <https://boogie.codeplex.com/>`_ source code. |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | .. versionadded:: 2.1 |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | """ |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | name = 'Boogie' |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | aliases = ['boogie'] |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | filenames = ['*.bpl'] |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | tokens = { |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | 'root': [ |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | # Whitespace and Comments |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | (r'\n', Whitespace), |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | (r'\s+', Whitespace), |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | (r'//[/!](.*?)\n', Comment.Doc), |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | (r'//(.*?)\n', Comment.Single), |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | (r'/\*', Comment.Multiline, 'comment'), |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | (words(( |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | 'axiom', 'break', 'call', 'ensures', 'else', 'exists', 'function', |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | 'forall', 'if', 'invariant', 'modifies', 'procedure', 'requires', |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | 'then', 'var', 'while'), |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | suffix=r'\b'), Keyword), |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | (words(('const',), suffix=r'\b'), Keyword.Reserved), |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | (words(('bool', 'int', 'ref'), suffix=r'\b'), Keyword.Type), |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | include('numbers'), |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | (r"(>=|<=|:=|!=|==>|&&|\|\||[+/\-=>*<\[\]])", Operator), |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | (r"([{}():;,.])", Punctuation), |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | # Identifier |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | (r'[a-zA-Z_]\w*', Name), |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | ], |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | 'comment': [ |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | (r'[^*/]+', Comment.Multiline), |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | (r'/\*', Comment.Multiline, '#push'), |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | (r'\*/', Comment.Multiline, '#pop'), |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | (r'[*/]', Comment.Multiline), |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | ], |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | 'numbers': [ |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | (r'[0-9]+', Number.Integer), |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | ], |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | } |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | class SilverLexer(RegexLexer): |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | """ |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | For `Silver <https://bitbucket.org/viperproject/silver>`_ source code. |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | .. versionadded:: 2.2 |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | """ |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | name = 'Silver' |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | aliases = ['silver'] |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | filenames = ['*.sil', '*.vpr'] |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | tokens = { |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | 'root': [ |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | # Whitespace and Comments |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | (r'\n', Whitespace), |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | (r'\s+', Whitespace), |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | (r'//[/!](.*?)\n', Comment.Doc), |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | (r'//(.*?)\n', Comment.Single), |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | (r'/\*', Comment.Multiline, 'comment'), |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | (words(( |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | 'result', 'true', 'false', 'null', 'method', 'function', |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | 'predicate', 'program', 'domain', 'axiom', 'var', 'returns', |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | 'field', 'define', 'requires', 'ensures', 'invariant', |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | 'fold', 'unfold', 'inhale', 'exhale', 'new', 'assert', |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | 'assume', 'goto', 'while', 'if', 'elseif', 'else', 'fresh', |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | 'constraining', 'Seq', 'Set', 'Multiset', 'union', 'intersection', |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | 'setminus', 'subset', 'unfolding', 'in', 'old', 'forall', 'exists', |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | 'acc', 'wildcard', 'write', 'none', 'epsilon', 'perm', 'unique', |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | 'apply', 'package', 'folding', 'label', 'forperm'), |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | suffix=r'\b'), Keyword), |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | (words(('Int', 'Perm', 'Bool', 'Ref'), suffix=r'\b'), Keyword.Type), |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | include('numbers'), |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | (r'[!%&*+=|?:<>/\-\[\]]', Operator), |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | (r'([{}():;,.])', Punctuation), |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | # Identifier |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | (r'[\w$]\w*', Name), |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | ], |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102 | 'comment': [ |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | (r'[^*/]+', Comment.Multiline), |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
104 | (r'/\*', Comment.Multiline, '#push'), |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | (r'\*/', Comment.Multiline, '#pop'), |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | (r'[*/]', Comment.Multiline), |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | ], |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | 'numbers': [ |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | (r'[0-9]+', Number.Integer), |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | ], |
6762afd9f963
Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
111 | } |