Tue, 15 Sep 2020 19:09:05 +0200
Pygments: updated to 2.7.0.
7701
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
2 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
3 | pygments.lexers.parsers |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
4 | ~~~~~~~~~~~~~~~~~~~~~~~ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
5 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
6 | Lexers for parser generators. |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
7 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
8 | :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS. |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
9 | :license: BSD, see LICENSE for details. |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
10 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
11 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
12 | import re |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
13 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
14 | from pygments.lexer import RegexLexer, DelegatingLexer, \ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
15 | include, bygroups, using |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
16 | from pygments.token import Punctuation, Other, Text, Comment, Operator, \ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
17 | Keyword, Name, String, Number, Whitespace |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
18 | from pygments.lexers.jvm import JavaLexer |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
19 | from pygments.lexers.c_cpp import CLexer, CppLexer |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
20 | from pygments.lexers.objective import ObjectiveCLexer |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
21 | from pygments.lexers.d import DLexer |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
22 | from pygments.lexers.dotnet import CSharpLexer |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
23 | from pygments.lexers.ruby import RubyLexer |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
24 | from pygments.lexers.python import PythonLexer |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
25 | from pygments.lexers.perl import PerlLexer |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
26 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
27 | __all__ = ['RagelLexer', 'RagelEmbeddedLexer', 'RagelCLexer', 'RagelDLexer', |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
28 | 'RagelCppLexer', 'RagelObjectiveCLexer', 'RagelRubyLexer', |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
29 | 'RagelJavaLexer', 'AntlrLexer', 'AntlrPythonLexer', |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
30 | 'AntlrPerlLexer', 'AntlrRubyLexer', 'AntlrCppLexer', |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
31 | 'AntlrCSharpLexer', 'AntlrObjectiveCLexer', |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
32 | 'AntlrJavaLexer', 'AntlrActionScriptLexer', |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
33 | 'TreetopLexer', 'EbnfLexer'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
34 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
35 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
36 | class RagelLexer(RegexLexer): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
37 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
38 | A pure `Ragel <http://www.complang.org/ragel/>`_ lexer. Use this for |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
39 | fragments of Ragel. For ``.rl`` files, use RagelEmbeddedLexer instead |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
40 | (or one of the language-specific subclasses). |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
41 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
42 | .. versionadded:: 1.1 |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
43 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
44 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
45 | name = 'Ragel' |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
46 | aliases = ['ragel'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
47 | filenames = [] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
48 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
49 | tokens = { |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
50 | 'whitespace': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
51 | (r'\s+', Whitespace) |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
52 | ], |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
53 | 'comments': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
54 | (r'\#.*$', Comment), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
55 | ], |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
56 | 'keywords': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
57 | (r'(access|action|alphtype)\b', Keyword), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
58 | (r'(getkey|write|machine|include)\b', Keyword), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
59 | (r'(any|ascii|extend|alpha|digit|alnum|lower|upper)\b', Keyword), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
60 | (r'(xdigit|cntrl|graph|print|punct|space|zlen|empty)\b', Keyword) |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
61 | ], |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
62 | 'numbers': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
63 | (r'0x[0-9A-Fa-f]+', Number.Hex), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
64 | (r'[+-]?[0-9]+', Number.Integer), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
65 | ], |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
66 | 'literals': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
67 | (r'"(\\\\|\\"|[^"])*"', String), # double quote string |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
68 | (r"'(\\\\|\\'|[^'])*'", String), # single quote string |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
69 | (r'\[(\\\\|\\\]|[^\]])*\]', String), # square bracket literals |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
70 | (r'/(?!\*)(\\\\|\\/|[^/])*/', String.Regex), # regular expressions |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
71 | ], |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
72 | 'identifiers': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
73 | (r'[a-zA-Z_]\w*', Name.Variable), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
74 | ], |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
75 | 'operators': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
76 | (r',', Operator), # Join |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
77 | (r'\||&|--?', Operator), # Union, Intersection and Subtraction |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
78 | (r'\.|<:|:>>?', Operator), # Concatention |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
79 | (r':', Operator), # Label |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
80 | (r'->', Operator), # Epsilon Transition |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
81 | (r'(>|\$|%|<|@|<>)(/|eof\b)', Operator), # EOF Actions |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
82 | (r'(>|\$|%|<|@|<>)(!|err\b)', Operator), # Global Error Actions |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
83 | (r'(>|\$|%|<|@|<>)(\^|lerr\b)', Operator), # Local Error Actions |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
84 | (r'(>|\$|%|<|@|<>)(~|to\b)', Operator), # To-State Actions |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
85 | (r'(>|\$|%|<|@|<>)(\*|from\b)', Operator), # From-State Actions |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
86 | (r'>|@|\$|%', Operator), # Transition Actions and Priorities |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
87 | (r'\*|\?|\+|\{[0-9]*,[0-9]*\}', Operator), # Repetition |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
88 | (r'!|\^', Operator), # Negation |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
89 | (r'\(|\)', Operator), # Grouping |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
90 | ], |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
91 | 'root': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
92 | include('literals'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
93 | include('whitespace'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
94 | include('comments'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
95 | include('keywords'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
96 | include('numbers'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
97 | include('identifiers'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
98 | include('operators'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
99 | (r'\{', Punctuation, 'host'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
100 | (r'=', Operator), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
101 | (r';', Punctuation), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
102 | ], |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
103 | 'host': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
104 | (r'(' + r'|'.join(( # keep host code in largest possible chunks |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
105 | r'[^{}\'"/#]+', # exclude unsafe characters |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
106 | r'[^\\]\\[{}]', # allow escaped { or } |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
107 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
108 | # strings and comments may safely contain unsafe characters |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
109 | r'"(\\\\|\\"|[^"])*"', # double quote string |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
110 | r"'(\\\\|\\'|[^'])*'", # single quote string |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
111 | r'//.*$\n?', # single line comment |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
112 | r'/\*(.|\n)*?\*/', # multi-line javadoc-style comment |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
113 | r'\#.*$\n?', # ruby comment |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
114 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
115 | # regular expression: There's no reason for it to start |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
116 | # with a * and this stops confusion with comments. |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
117 | r'/(?!\*)(\\\\|\\/|[^/])*/', |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
118 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
119 | # / is safe now that we've handled regex and javadoc comments |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
120 | r'/', |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
121 | )) + r')+', Other), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
122 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
123 | (r'\{', Punctuation, '#push'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
124 | (r'\}', Punctuation, '#pop'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
125 | ], |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
126 | } |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
127 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
128 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
129 | class RagelEmbeddedLexer(RegexLexer): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
130 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
131 | A lexer for `Ragel`_ embedded in a host language file. |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
132 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
133 | This will only highlight Ragel statements. If you want host language |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
134 | highlighting then call the language-specific Ragel lexer. |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
135 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
136 | .. versionadded:: 1.1 |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
137 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
138 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
139 | name = 'Embedded Ragel' |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
140 | aliases = ['ragel-em'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
141 | filenames = ['*.rl'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
142 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
143 | tokens = { |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
144 | 'root': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
145 | (r'(' + r'|'.join(( # keep host code in largest possible chunks |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
146 | r'[^%\'"/#]+', # exclude unsafe characters |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
147 | r'%(?=[^%]|$)', # a single % sign is okay, just not 2 of them |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
148 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
149 | # strings and comments may safely contain unsafe characters |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
150 | r'"(\\\\|\\"|[^"])*"', # double quote string |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
151 | r"'(\\\\|\\'|[^'])*'", # single quote string |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
152 | r'/\*(.|\n)*?\*/', # multi-line javadoc-style comment |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
153 | r'//.*$\n?', # single line comment |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
154 | r'\#.*$\n?', # ruby/ragel comment |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
155 | r'/(?!\*)(\\\\|\\/|[^/])*/', # regular expression |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
156 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
157 | # / is safe now that we've handled regex and javadoc comments |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
158 | r'/', |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
159 | )) + r')+', Other), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
160 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
161 | # Single Line FSM. |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
162 | # Please don't put a quoted newline in a single line FSM. |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
163 | # That's just mean. It will break this. |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
164 | (r'(%%)(?![{%])(.*)($|;)(\n?)', bygroups(Punctuation, |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
165 | using(RagelLexer), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
166 | Punctuation, Text)), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
167 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
168 | # Multi Line FSM. |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
169 | (r'(%%%%|%%)\{', Punctuation, 'multi-line-fsm'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
170 | ], |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
171 | 'multi-line-fsm': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
172 | (r'(' + r'|'.join(( # keep ragel code in largest possible chunks. |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
173 | r'(' + r'|'.join(( |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
174 | r'[^}\'"\[/#]', # exclude unsafe characters |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
175 | r'\}(?=[^%]|$)', # } is okay as long as it's not followed by % |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
176 | r'\}%(?=[^%]|$)', # ...well, one %'s okay, just not two... |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
177 | r'[^\\]\\[{}]', # ...and } is okay if it's escaped |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
178 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
179 | # allow / if it's preceded with one of these symbols |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
180 | # (ragel EOF actions) |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
181 | r'(>|\$|%|<|@|<>)/', |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
182 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
183 | # specifically allow regex followed immediately by * |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
184 | # so it doesn't get mistaken for a comment |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
185 | r'/(?!\*)(\\\\|\\/|[^/])*/\*', |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
186 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
187 | # allow / as long as it's not followed by another / or by a * |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
188 | r'/(?=[^/*]|$)', |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
189 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
190 | # We want to match as many of these as we can in one block. |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
191 | # Not sure if we need the + sign here, |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
192 | # does it help performance? |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
193 | )) + r')+', |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
194 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
195 | # strings and comments may safely contain unsafe characters |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
196 | r'"(\\\\|\\"|[^"])*"', # double quote string |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
197 | r"'(\\\\|\\'|[^'])*'", # single quote string |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
198 | r"\[(\\\\|\\\]|[^\]])*\]", # square bracket literal |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
199 | r'/\*(.|\n)*?\*/', # multi-line javadoc-style comment |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
200 | r'//.*$\n?', # single line comment |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
201 | r'\#.*$\n?', # ruby/ragel comment |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
202 | )) + r')+', using(RagelLexer)), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
203 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
204 | (r'\}%%', Punctuation, '#pop'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
205 | ] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
206 | } |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
207 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
208 | def analyse_text(text): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
209 | return '@LANG: indep' in text |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
210 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
211 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
212 | class RagelRubyLexer(DelegatingLexer): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
213 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
214 | A lexer for `Ragel`_ in a Ruby host file. |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
215 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
216 | .. versionadded:: 1.1 |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
217 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
218 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
219 | name = 'Ragel in Ruby Host' |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
220 | aliases = ['ragel-ruby', 'ragel-rb'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
221 | filenames = ['*.rl'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
222 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
223 | def __init__(self, **options): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
224 | super().__init__(RubyLexer, RagelEmbeddedLexer, **options) |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
225 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
226 | def analyse_text(text): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
227 | return '@LANG: ruby' in text |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
228 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
229 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
230 | class RagelCLexer(DelegatingLexer): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
231 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
232 | A lexer for `Ragel`_ in a C host file. |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
233 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
234 | .. versionadded:: 1.1 |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
235 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
236 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
237 | name = 'Ragel in C Host' |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
238 | aliases = ['ragel-c'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
239 | filenames = ['*.rl'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
240 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
241 | def __init__(self, **options): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
242 | super().__init__(CLexer, RagelEmbeddedLexer, **options) |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
243 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
244 | def analyse_text(text): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
245 | return '@LANG: c' in text |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
246 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
247 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
248 | class RagelDLexer(DelegatingLexer): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
249 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
250 | A lexer for `Ragel`_ in a D host file. |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
251 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
252 | .. versionadded:: 1.1 |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
253 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
254 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
255 | name = 'Ragel in D Host' |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
256 | aliases = ['ragel-d'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
257 | filenames = ['*.rl'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
258 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
259 | def __init__(self, **options): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
260 | super().__init__(DLexer, RagelEmbeddedLexer, **options) |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
261 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
262 | def analyse_text(text): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
263 | return '@LANG: d' in text |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
264 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
265 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
266 | class RagelCppLexer(DelegatingLexer): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
267 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
268 | A lexer for `Ragel`_ in a CPP host file. |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
269 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
270 | .. versionadded:: 1.1 |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
271 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
272 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
273 | name = 'Ragel in CPP Host' |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
274 | aliases = ['ragel-cpp'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
275 | filenames = ['*.rl'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
276 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
277 | def __init__(self, **options): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
278 | super().__init__(CppLexer, RagelEmbeddedLexer, **options) |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
279 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
280 | def analyse_text(text): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
281 | return '@LANG: c++' in text |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
282 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
283 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
284 | class RagelObjectiveCLexer(DelegatingLexer): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
285 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
286 | A lexer for `Ragel`_ in an Objective C host file. |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
287 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
288 | .. versionadded:: 1.1 |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
289 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
290 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
291 | name = 'Ragel in Objective C Host' |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
292 | aliases = ['ragel-objc'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
293 | filenames = ['*.rl'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
294 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
295 | def __init__(self, **options): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
296 | super().__init__(ObjectiveCLexer, RagelEmbeddedLexer, **options) |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
297 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
298 | def analyse_text(text): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
299 | return '@LANG: objc' in text |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
300 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
301 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
302 | class RagelJavaLexer(DelegatingLexer): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
303 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
304 | A lexer for `Ragel`_ in a Java host file. |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
305 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
306 | .. versionadded:: 1.1 |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
307 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
308 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
309 | name = 'Ragel in Java Host' |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
310 | aliases = ['ragel-java'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
311 | filenames = ['*.rl'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
312 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
313 | def __init__(self, **options): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
314 | super().__init__(JavaLexer, RagelEmbeddedLexer, **options) |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
315 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
316 | def analyse_text(text): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
317 | return '@LANG: java' in text |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
318 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
319 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
320 | class AntlrLexer(RegexLexer): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
321 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
322 | Generic `ANTLR`_ Lexer. |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
323 | Should not be called directly, instead |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
324 | use DelegatingLexer for your target language. |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
325 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
326 | .. versionadded:: 1.1 |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
327 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
328 | .. _ANTLR: http://www.antlr.org/ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
329 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
330 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
331 | name = 'ANTLR' |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
332 | aliases = ['antlr'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
333 | filenames = [] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
334 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
335 | _id = r'[A-Za-z]\w*' |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
336 | _TOKEN_REF = r'[A-Z]\w*' |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
337 | _RULE_REF = r'[a-z]\w*' |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
338 | _STRING_LITERAL = r'\'(?:\\\\|\\\'|[^\']*)\'' |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
339 | _INT = r'[0-9]+' |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
340 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
341 | tokens = { |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
342 | 'whitespace': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
343 | (r'\s+', Whitespace), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
344 | ], |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
345 | 'comments': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
346 | (r'//.*$', Comment), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
347 | (r'/\*(.|\n)*?\*/', Comment), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
348 | ], |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
349 | 'root': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
350 | include('whitespace'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
351 | include('comments'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
352 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
353 | (r'(lexer|parser|tree)?(\s*)(grammar\b)(\s*)(' + _id + ')(;)', |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
354 | bygroups(Keyword, Whitespace, Keyword, Whitespace, Name.Class, |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
355 | Punctuation)), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
356 | # optionsSpec |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
357 | (r'options\b', Keyword, 'options'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
358 | # tokensSpec |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
359 | (r'tokens\b', Keyword, 'tokens'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
360 | # attrScope |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
361 | (r'(scope)(\s*)(' + _id + r')(\s*)(\{)', |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
362 | bygroups(Keyword, Whitespace, Name.Variable, Whitespace, |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
363 | Punctuation), 'action'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
364 | # exception |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
365 | (r'(catch|finally)\b', Keyword, 'exception'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
366 | # action |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
367 | (r'(@' + _id + r')(\s*)(::)?(\s*)(' + _id + r')(\s*)(\{)', |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
368 | bygroups(Name.Label, Whitespace, Punctuation, Whitespace, |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
369 | Name.Label, Whitespace, Punctuation), 'action'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
370 | # rule |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
371 | (r'((?:protected|private|public|fragment)\b)?(\s*)(' + _id + ')(!)?', |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
372 | bygroups(Keyword, Whitespace, Name.Label, Punctuation), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
373 | ('rule-alts', 'rule-prelims')), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
374 | ], |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
375 | 'exception': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
376 | (r'\n', Whitespace, '#pop'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
377 | (r'\s', Whitespace), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
378 | include('comments'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
379 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
380 | (r'\[', Punctuation, 'nested-arg-action'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
381 | (r'\{', Punctuation, 'action'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
382 | ], |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
383 | 'rule-prelims': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
384 | include('whitespace'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
385 | include('comments'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
386 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
387 | (r'returns\b', Keyword), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
388 | (r'\[', Punctuation, 'nested-arg-action'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
389 | (r'\{', Punctuation, 'action'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
390 | # throwsSpec |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
391 | (r'(throws)(\s+)(' + _id + ')', |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
392 | bygroups(Keyword, Whitespace, Name.Label)), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
393 | (r'(,)(\s*)(' + _id + ')', |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
394 | bygroups(Punctuation, Whitespace, Name.Label)), # Additional throws |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
395 | # optionsSpec |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
396 | (r'options\b', Keyword, 'options'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
397 | # ruleScopeSpec - scope followed by target language code or name of action |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
398 | # TODO finish implementing other possibilities for scope |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
399 | # L173 ANTLRv3.g from ANTLR book |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
400 | (r'(scope)(\s+)(\{)', bygroups(Keyword, Whitespace, Punctuation), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
401 | 'action'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
402 | (r'(scope)(\s+)(' + _id + r')(\s*)(;)', |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
403 | bygroups(Keyword, Whitespace, Name.Label, Whitespace, Punctuation)), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
404 | # ruleAction |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
405 | (r'(@' + _id + r')(\s*)(\{)', |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
406 | bygroups(Name.Label, Whitespace, Punctuation), 'action'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
407 | # finished prelims, go to rule alts! |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
408 | (r':', Punctuation, '#pop') |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
409 | ], |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
410 | 'rule-alts': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
411 | include('whitespace'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
412 | include('comments'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
413 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
414 | # These might need to go in a separate 'block' state triggered by ( |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
415 | (r'options\b', Keyword, 'options'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
416 | (r':', Punctuation), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
417 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
418 | # literals |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
419 | (r"'(\\\\|\\'|[^'])*'", String), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
420 | (r'"(\\\\|\\"|[^"])*"', String), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
421 | (r'<<([^>]|>[^>])>>', String), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
422 | # identifiers |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
423 | # Tokens start with capital letter. |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
424 | (r'\$?[A-Z_]\w*', Name.Constant), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
425 | # Rules start with small letter. |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
426 | (r'\$?[a-z_]\w*', Name.Variable), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
427 | # operators |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
428 | (r'(\+|\||->|=>|=|\(|\)|\.\.|\.|\?|\*|\^|!|\#|~)', Operator), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
429 | (r',', Punctuation), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
430 | (r'\[', Punctuation, 'nested-arg-action'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
431 | (r'\{', Punctuation, 'action'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
432 | (r';', Punctuation, '#pop') |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
433 | ], |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
434 | 'tokens': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
435 | include('whitespace'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
436 | include('comments'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
437 | (r'\{', Punctuation), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
438 | (r'(' + _TOKEN_REF + r')(\s*)(=)?(\s*)(' + _STRING_LITERAL |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
439 | + r')?(\s*)(;)', |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
440 | bygroups(Name.Label, Whitespace, Punctuation, Whitespace, |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
441 | String, Whitespace, Punctuation)), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
442 | (r'\}', Punctuation, '#pop'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
443 | ], |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
444 | 'options': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
445 | include('whitespace'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
446 | include('comments'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
447 | (r'\{', Punctuation), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
448 | (r'(' + _id + r')(\s*)(=)(\s*)(' + |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
449 | '|'.join((_id, _STRING_LITERAL, _INT, r'\*')) + r')(\s*)(;)', |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
450 | bygroups(Name.Variable, Whitespace, Punctuation, Whitespace, |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
451 | Text, Whitespace, Punctuation)), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
452 | (r'\}', Punctuation, '#pop'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
453 | ], |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
454 | 'action': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
455 | (r'(' + r'|'.join(( # keep host code in largest possible chunks |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
456 | r'[^${}\'"/\\]+', # exclude unsafe characters |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
457 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
458 | # strings and comments may safely contain unsafe characters |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
459 | r'"(\\\\|\\"|[^"])*"', # double quote string |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
460 | r"'(\\\\|\\'|[^'])*'", # single quote string |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
461 | r'//.*$\n?', # single line comment |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
462 | r'/\*(.|\n)*?\*/', # multi-line javadoc-style comment |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
463 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
464 | # regular expression: There's no reason for it to start |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
465 | # with a * and this stops confusion with comments. |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
466 | r'/(?!\*)(\\\\|\\/|[^/])*/', |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
467 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
468 | # backslashes are okay, as long as we are not backslashing a % |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
469 | r'\\(?!%)', |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
470 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
471 | # Now that we've handled regex and javadoc comments |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
472 | # it's safe to let / through. |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
473 | r'/', |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
474 | )) + r')+', Other), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
475 | (r'(\\)(%)', bygroups(Punctuation, Other)), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
476 | (r'(\$[a-zA-Z]+)(\.?)(text|value)?', |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
477 | bygroups(Name.Variable, Punctuation, Name.Property)), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
478 | (r'\{', Punctuation, '#push'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
479 | (r'\}', Punctuation, '#pop'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
480 | ], |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
481 | 'nested-arg-action': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
482 | (r'(' + r'|'.join(( # keep host code in largest possible chunks. |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
483 | r'[^$\[\]\'"/]+', # exclude unsafe characters |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
484 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
485 | # strings and comments may safely contain unsafe characters |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
486 | r'"(\\\\|\\"|[^"])*"', # double quote string |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
487 | r"'(\\\\|\\'|[^'])*'", # single quote string |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
488 | r'//.*$\n?', # single line comment |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
489 | r'/\*(.|\n)*?\*/', # multi-line javadoc-style comment |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
490 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
491 | # regular expression: There's no reason for it to start |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
492 | # with a * and this stops confusion with comments. |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
493 | r'/(?!\*)(\\\\|\\/|[^/])*/', |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
494 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
495 | # Now that we've handled regex and javadoc comments |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
496 | # it's safe to let / through. |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
497 | r'/', |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
498 | )) + r')+', Other), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
499 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
500 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
501 | (r'\[', Punctuation, '#push'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
502 | (r'\]', Punctuation, '#pop'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
503 | (r'(\$[a-zA-Z]+)(\.?)(text|value)?', |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
504 | bygroups(Name.Variable, Punctuation, Name.Property)), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
505 | (r'(\\\\|\\\]|\\\[|[^\[\]])+', Other), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
506 | ] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
507 | } |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
508 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
509 | def analyse_text(text): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
510 | return re.search(r'^\s*grammar\s+[a-zA-Z0-9]+\s*;', text, re.M) |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
511 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
512 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
513 | # http://www.antlr.org/wiki/display/ANTLR3/Code+Generation+Targets |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
514 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
515 | class AntlrCppLexer(DelegatingLexer): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
516 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
517 | `ANTLR`_ with CPP Target |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
518 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
519 | .. versionadded:: 1.1 |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
520 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
521 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
522 | name = 'ANTLR With CPP Target' |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
523 | aliases = ['antlr-cpp'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
524 | filenames = ['*.G', '*.g'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
525 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
526 | def __init__(self, **options): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
527 | super().__init__(CppLexer, AntlrLexer, **options) |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
528 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
529 | def analyse_text(text): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
530 | return AntlrLexer.analyse_text(text) and \ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
531 | re.search(r'^\s*language\s*=\s*C\s*;', text, re.M) |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
532 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
533 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
534 | class AntlrObjectiveCLexer(DelegatingLexer): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
535 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
536 | `ANTLR`_ with Objective-C Target |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
537 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
538 | .. versionadded:: 1.1 |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
539 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
540 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
541 | name = 'ANTLR With ObjectiveC Target' |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
542 | aliases = ['antlr-objc'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
543 | filenames = ['*.G', '*.g'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
544 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
545 | def __init__(self, **options): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
546 | super().__init__(ObjectiveCLexer, AntlrLexer, **options) |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
547 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
548 | def analyse_text(text): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
549 | return AntlrLexer.analyse_text(text) and \ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
550 | re.search(r'^\s*language\s*=\s*ObjC\s*;', text) |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
551 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
552 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
553 | class AntlrCSharpLexer(DelegatingLexer): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
554 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
555 | `ANTLR`_ with C# Target |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
556 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
557 | .. versionadded:: 1.1 |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
558 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
559 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
560 | name = 'ANTLR With C# Target' |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
561 | aliases = ['antlr-csharp', 'antlr-c#'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
562 | filenames = ['*.G', '*.g'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
563 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
564 | def __init__(self, **options): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
565 | super().__init__(CSharpLexer, AntlrLexer, **options) |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
566 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
567 | def analyse_text(text): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
568 | return AntlrLexer.analyse_text(text) and \ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
569 | re.search(r'^\s*language\s*=\s*CSharp2\s*;', text, re.M) |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
570 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
571 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
572 | class AntlrPythonLexer(DelegatingLexer): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
573 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
574 | `ANTLR`_ with Python Target |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
575 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
576 | .. versionadded:: 1.1 |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
577 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
578 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
579 | name = 'ANTLR With Python Target' |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
580 | aliases = ['antlr-python'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
581 | filenames = ['*.G', '*.g'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
582 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
583 | def __init__(self, **options): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
584 | super().__init__(PythonLexer, AntlrLexer, **options) |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
585 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
586 | def analyse_text(text): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
587 | return AntlrLexer.analyse_text(text) and \ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
588 | re.search(r'^\s*language\s*=\s*Python\s*;', text, re.M) |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
589 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
590 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
591 | class AntlrJavaLexer(DelegatingLexer): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
592 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
593 | `ANTLR`_ with Java Target |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
594 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
595 | .. versionadded:: 1. |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
596 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
597 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
598 | name = 'ANTLR With Java Target' |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
599 | aliases = ['antlr-java'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
600 | filenames = ['*.G', '*.g'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
601 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
602 | def __init__(self, **options): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
603 | super().__init__(JavaLexer, AntlrLexer, **options) |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
604 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
605 | def analyse_text(text): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
606 | # Antlr language is Java by default |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
607 | return AntlrLexer.analyse_text(text) and 0.9 |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
608 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
609 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
610 | class AntlrRubyLexer(DelegatingLexer): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
611 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
612 | `ANTLR`_ with Ruby Target |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
613 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
614 | .. versionadded:: 1.1 |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
615 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
616 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
617 | name = 'ANTLR With Ruby Target' |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
618 | aliases = ['antlr-ruby', 'antlr-rb'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
619 | filenames = ['*.G', '*.g'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
620 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
621 | def __init__(self, **options): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
622 | super().__init__(RubyLexer, AntlrLexer, **options) |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
623 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
624 | def analyse_text(text): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
625 | return AntlrLexer.analyse_text(text) and \ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
626 | re.search(r'^\s*language\s*=\s*Ruby\s*;', text, re.M) |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
627 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
628 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
629 | class AntlrPerlLexer(DelegatingLexer): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
630 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
631 | `ANTLR`_ with Perl Target |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
632 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
633 | .. versionadded:: 1.1 |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
634 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
635 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
636 | name = 'ANTLR With Perl Target' |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
637 | aliases = ['antlr-perl'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
638 | filenames = ['*.G', '*.g'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
639 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
640 | def __init__(self, **options): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
641 | super().__init__(PerlLexer, AntlrLexer, **options) |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
642 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
643 | def analyse_text(text): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
644 | return AntlrLexer.analyse_text(text) and \ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
645 | re.search(r'^\s*language\s*=\s*Perl5\s*;', text, re.M) |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
646 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
647 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
648 | class AntlrActionScriptLexer(DelegatingLexer): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
649 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
650 | `ANTLR`_ with ActionScript Target |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
651 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
652 | .. versionadded:: 1.1 |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
653 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
654 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
655 | name = 'ANTLR With ActionScript Target' |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
656 | aliases = ['antlr-as', 'antlr-actionscript'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
657 | filenames = ['*.G', '*.g'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
658 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
659 | def __init__(self, **options): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
660 | from pygments.lexers.actionscript import ActionScriptLexer |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
661 | super().__init__(ActionScriptLexer, AntlrLexer, **options) |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
662 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
663 | def analyse_text(text): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
664 | return AntlrLexer.analyse_text(text) and \ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
665 | re.search(r'^\s*language\s*=\s*ActionScript\s*;', text, re.M) |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
666 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
667 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
668 | class TreetopBaseLexer(RegexLexer): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
669 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
670 | A base lexer for `Treetop <http://treetop.rubyforge.org/>`_ grammars. |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
671 | Not for direct use; use TreetopLexer instead. |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
672 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
673 | .. versionadded:: 1.6 |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
674 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
675 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
676 | tokens = { |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
677 | 'root': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
678 | include('space'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
679 | (r'require[ \t]+[^\n\r]+[\n\r]', Other), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
680 | (r'module\b', Keyword.Namespace, 'module'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
681 | (r'grammar\b', Keyword, 'grammar'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
682 | ], |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
683 | 'module': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
684 | include('space'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
685 | include('end'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
686 | (r'module\b', Keyword, '#push'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
687 | (r'grammar\b', Keyword, 'grammar'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
688 | (r'[A-Z]\w*(?:::[A-Z]\w*)*', Name.Namespace), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
689 | ], |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
690 | 'grammar': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
691 | include('space'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
692 | include('end'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
693 | (r'rule\b', Keyword, 'rule'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
694 | (r'include\b', Keyword, 'include'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
695 | (r'[A-Z]\w*', Name), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
696 | ], |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
697 | 'include': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
698 | include('space'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
699 | (r'[A-Z]\w*(?:::[A-Z]\w*)*', Name.Class, '#pop'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
700 | ], |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
701 | 'rule': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
702 | include('space'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
703 | include('end'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
704 | (r'"(\\\\|\\"|[^"])*"', String.Double), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
705 | (r"'(\\\\|\\'|[^'])*'", String.Single), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
706 | (r'([A-Za-z_]\w*)(:)', bygroups(Name.Label, Punctuation)), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
707 | (r'[A-Za-z_]\w*', Name), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
708 | (r'[()]', Punctuation), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
709 | (r'[?+*/&!~]', Operator), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
710 | (r'\[(?:\\.|\[:\^?[a-z]+:\]|[^\\\]])+\]', String.Regex), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
711 | (r'([0-9]*)(\.\.)([0-9]*)', |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
712 | bygroups(Number.Integer, Operator, Number.Integer)), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
713 | (r'(<)([^>]+)(>)', bygroups(Punctuation, Name.Class, Punctuation)), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
714 | (r'\{', Punctuation, 'inline_module'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
715 | (r'\.', String.Regex), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
716 | ], |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
717 | 'inline_module': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
718 | (r'\{', Other, 'ruby'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
719 | (r'\}', Punctuation, '#pop'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
720 | (r'[^{}]+', Other), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
721 | ], |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
722 | 'ruby': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
723 | (r'\{', Other, '#push'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
724 | (r'\}', Other, '#pop'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
725 | (r'[^{}]+', Other), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
726 | ], |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
727 | 'space': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
728 | (r'[ \t\n\r]+', Whitespace), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
729 | (r'#[^\n]*', Comment.Single), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
730 | ], |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
731 | 'end': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
732 | (r'end\b', Keyword, '#pop'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
733 | ], |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
734 | } |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
735 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
736 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
737 | class TreetopLexer(DelegatingLexer): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
738 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
739 | A lexer for `Treetop <http://treetop.rubyforge.org/>`_ grammars. |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
740 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
741 | .. versionadded:: 1.6 |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
742 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
743 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
744 | name = 'Treetop' |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
745 | aliases = ['treetop'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
746 | filenames = ['*.treetop', '*.tt'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
747 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
748 | def __init__(self, **options): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
749 | super().__init__(RubyLexer, TreetopBaseLexer, **options) |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
750 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
751 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
752 | class EbnfLexer(RegexLexer): |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
753 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
754 | Lexer for `ISO/IEC 14977 EBNF |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
755 | <http://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_Form>`_ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
756 | grammars. |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
757 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
758 | .. versionadded:: 2.0 |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
759 | """ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
760 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
761 | name = 'EBNF' |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
762 | aliases = ['ebnf'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
763 | filenames = ['*.ebnf'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
764 | mimetypes = ['text/x-ebnf'] |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
765 | |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
766 | tokens = { |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
767 | 'root': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
768 | include('whitespace'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
769 | include('comment_start'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
770 | include('identifier'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
771 | (r'=', Operator, 'production'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
772 | ], |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
773 | 'production': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
774 | include('whitespace'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
775 | include('comment_start'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
776 | include('identifier'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
777 | (r'"[^"]*"', String.Double), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
778 | (r"'[^']*'", String.Single), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
779 | (r'(\?[^?]*\?)', Name.Entity), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
780 | (r'[\[\]{}(),|]', Punctuation), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
781 | (r'-', Operator), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
782 | (r';', Punctuation, '#pop'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
783 | (r'\.', Punctuation, '#pop'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
784 | ], |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
785 | 'whitespace': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
786 | (r'\s+', Text), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
787 | ], |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
788 | 'comment_start': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
789 | (r'\(\*', Comment.Multiline, 'comment'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
790 | ], |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
791 | 'comment': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
792 | (r'[^*)]', Comment.Multiline), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
793 | include('comment_start'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
794 | (r'\*\)', Comment.Multiline, '#pop'), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
795 | (r'[*)]', Comment.Multiline), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
796 | ], |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
797 | 'identifier': [ |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
798 | (r'([a-zA-Z][\w \-]*)', Keyword), |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
799 | ], |
25f42e208e08
Pygments: updated to 2.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7547
diff
changeset
|
800 | } |