eric6/ThirdParty/Pygments/pygments/lexers/rust.py

Tue, 21 Apr 2020 19:47:10 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 21 Apr 2020 19:47:10 +0200
changeset 7547
21b0534faebc
parent 6942
2602857055c5
child 7701
25f42e208e08
permissions
-rw-r--r--

Pygments: updated Pygments to 2.3.1

4172
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2 """
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3 pygments.lexers.rust
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 ~~~~~~~~~~~~~~~~~~~~
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 Lexers for the Rust language.
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7
7547
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
8 :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
4172
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9 :license: BSD, see LICENSE for details.
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 """
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 from pygments.lexer import RegexLexer, include, bygroups, words, default
4697
c2e9bf425554 Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4172
diff changeset
13 from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
4172
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 Number, Punctuation, Whitespace
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 __all__ = ['RustLexer']
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 class RustLexer(RegexLexer):
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 """
7547
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
21 Lexer for the Rust programming language (version 1.40).
4172
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 .. versionadded:: 1.6
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 """
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 name = 'Rust'
4697
c2e9bf425554 Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4172
diff changeset
26 filenames = ['*.rs', '*.rs.in']
6651
e8f3b5568b21 pygments: updated Pygments to 2.3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5713
diff changeset
27 aliases = ['rust', 'rs']
7547
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
28 mimetypes = ['text/rust', 'text/x-rust']
4172
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29
7547
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
30 keyword_types = (words((
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
31 'u8', 'u16', 'u32', 'u64', 'u128', 'i8', 'i16', 'i32', 'i64', 'i128',
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
32 'usize', 'isize', 'f32', 'f64', 'char', 'str', 'bool',
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
33 ), suffix=r'\b'), Keyword.Type)
5713
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
34
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
35 builtin_types = (words((
7547
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
36 'Send', 'Sized', 'Sync', 'Unpin',
5713
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
37 'Drop', 'Fn', 'FnMut', 'FnOnce',
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
38 'AsRef', 'AsMut', 'Into', 'From',
7547
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
39 'Iterator', 'Extend', 'IntoIterator', 'DoubleEndedIterator',
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
40 'ExactSizeIterator', 'Option', 'Result',
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
41 'Box', 'ToOwned', 'String', 'ToString', 'Vec',
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
42 'Clone', 'Copy', 'Default', 'Eq', 'Hash', 'Ord', 'PartialEq',
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
43 'PartialOrd', 'Eq', 'Ord',
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
44 ), suffix=r'\b'), Name.Builtin)
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
45
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
46 builtin_funcs_macros = (words((
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
47 'drop', 'Some', 'None', 'Ok', 'Err',
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
48 'asm!', 'assert!', 'assert_eq!', 'assert_ne!', 'cfg!', 'column!',
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
49 'compile_error!', 'concat!', 'concat_idents!', 'dbg!', 'debug_assert!',
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
50 'debug_assert_eq!', 'debug_assert_ne!', 'env!', 'eprint!', 'eprintln!',
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
51 'file!', 'format_args!', 'format_args_nl!', 'global_asm!', 'include!',
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
52 'include_bytes!', 'include_str!', 'line!', 'log_syntax!',
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
53 'module_path!', 'option_env!', 'panic!', 'print!', 'println!',
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
54 'stringify!', 'thread_local!', 'todo!', 'trace_macros!',
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
55 'unimplemented!', 'unreachable!', 'vec!', 'write!', 'writeln!',
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
56 ), suffix=r'\b'), Name.Builtin)
5713
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
57
4172
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 tokens = {
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 'root': [
4697
c2e9bf425554 Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4172
diff changeset
60 # rust allows a file to start with a shebang, but if the first line
7547
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
61 # starts with #![ then it's not a shebang but a crate attribute.
4697
c2e9bf425554 Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4172
diff changeset
62 (r'#![^[\r\n].*$', Comment.Preproc),
c2e9bf425554 Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4172
diff changeset
63 default('base'),
c2e9bf425554 Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4172
diff changeset
64 ],
c2e9bf425554 Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4172
diff changeset
65 'base': [
4172
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 # Whitespace and Comments
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 (r'\n', Whitespace),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 (r'\s+', Whitespace),
4697
c2e9bf425554 Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4172
diff changeset
69 (r'//!.*?\n', String.Doc),
c2e9bf425554 Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4172
diff changeset
70 (r'///(\n|[^/].*?\n)', String.Doc),
4172
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 (r'//(.*?)\n', Comment.Single),
4697
c2e9bf425554 Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4172
diff changeset
72 (r'/\*\*(\n|[^/*])', String.Doc, 'doccomment'),
c2e9bf425554 Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4172
diff changeset
73 (r'/\*!', String.Doc, 'doccomment'),
4172
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 (r'/\*', Comment.Multiline, 'comment'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 # Macro parameters
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 (r"""\$([a-zA-Z_]\w*|\(,?|\),?|,?)""", Comment.Preproc),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 # Keywords
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 (words((
7547
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
80 'as', 'async', 'await', 'box', 'const', 'crate', 'dyn', 'else',
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
81 'extern', 'for', 'if', 'impl', 'in', 'loop', 'match', 'move',
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
82 'mut', 'pub', 'ref', 'return', 'static', 'super', 'trait',
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
83 'try', 'unsafe', 'use', 'where', 'while', 'macro_rules!',
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
84 ), suffix=r'\b'), Keyword),
5713
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
85 (words(('abstract', 'alignof', 'become', 'do', 'final', 'macro',
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
86 'offsetof', 'override', 'priv', 'proc', 'pure', 'sizeof',
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
87 'typeof', 'unsized', 'virtual', 'yield'), suffix=r'\b'),
4172
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 Keyword.Reserved),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 (r'(true|false)\b', Keyword.Constant),
5713
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
90 (r'mod\b', Keyword, 'modname'),
4172
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 (r'let\b', Keyword.Declaration),
5713
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
92 (r'fn\b', Keyword, 'funcname'),
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
93 (r'(struct|enum|type|union)\b', Keyword, 'typename'),
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
94 (r'(default)(\s+)(type|fn)\b', bygroups(Keyword, Text, Keyword)),
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
95 keyword_types,
7547
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
96 (r'[sS]elf\b', Name.Builtin.Pseudo),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
97 # Prelude (taken from Rust's src/libstd/prelude.rs)
5713
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
98 builtin_types,
7547
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
99 builtin_funcs_macros,
5713
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
100 # Path seperators, so types don't catch them.
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
101 (r'::\b', Text),
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
102 # Types in positions.
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
103 (r'(?::|->)', Text, 'typename'),
4172
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 # Labels
5713
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
105 (r'(break|continue)(\s*)(\'[A-Za-z_]\w*)?',
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
106 bygroups(Keyword, Text.Whitespace, Name.Label)),
7547
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
107
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
108 # Character literals
4697
c2e9bf425554 Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4172
diff changeset
109 (r"""'(\\['"\\nrt]|\\x[0-7][0-9a-fA-F]|\\0"""
c2e9bf425554 Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4172
diff changeset
110 r"""|\\u\{[0-9a-fA-F]{1,6}\}|.)'""",
c2e9bf425554 Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4172
diff changeset
111 String.Char),
c2e9bf425554 Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4172
diff changeset
112 (r"""b'(\\['"\\nrt]|\\x[0-9a-fA-F]{2}|\\0"""
c2e9bf425554 Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4172
diff changeset
113 r"""|\\u\{[0-9a-fA-F]{1,6}\}|.)'""",
4172
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 String.Char),
7547
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
115
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
116 # Binary literals
4172
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 (r'0b[01_]+', Number.Bin, 'number_lit'),
7547
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
118 # Octal literals
4172
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 (r'0o[0-7_]+', Number.Oct, 'number_lit'),
7547
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
120 # Hexadecimal literals
4172
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 (r'0[xX][0-9a-fA-F_]+', Number.Hex, 'number_lit'),
7547
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
122 # Decimal literals
4172
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 (r'[0-9][0-9_]*(\.[0-9_]+[eE][+\-]?[0-9_]+|'
5713
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
124 r'\.[0-9_]*(?!\.)|[eE][+\-]?[0-9_]+)', Number.Float,
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
125 'number_lit'),
4172
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 (r'[0-9][0-9_]*', Number.Integer, 'number_lit'),
7547
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
127
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
128 # String literals
4697
c2e9bf425554 Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4172
diff changeset
129 (r'b"', String, 'bytestring'),
4172
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 (r'"', String, 'string'),
4697
c2e9bf425554 Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4172
diff changeset
131 (r'b?r(#*)".*?"\1', String),
c2e9bf425554 Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4172
diff changeset
132
7547
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
133 # Lifetime names
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
134 (r"'(static|_)", Name.Builtin),
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
135 (r"'[a-zA-Z_]\w*", Name.Attribute),
4172
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 # Operators and Punctuation
7547
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
138 (r'\.\.=?', Operator),
4172
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 (r'[{}()\[\],.;]', Punctuation),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 (r'[+\-*/%&|<>^!~@=:?]', Operator),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141
7547
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
142 # Identifiers
4172
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 (r'[a-zA-Z_]\w*', Name),
7547
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
144 # Raw identifiers
21b0534faebc Pygments: updated Pygments to 2.3.1
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
145 (r'r#[a-zA-Z_]\w*', Name),
4172
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 # Attributes
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 (r'#!?\[', Comment.Preproc, 'attribute['),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 ],
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 'comment': [
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 (r'[^*/]+', Comment.Multiline),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 (r'/\*', Comment.Multiline, '#push'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 (r'\*/', Comment.Multiline, '#pop'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 (r'[*/]', Comment.Multiline),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 ],
4697
c2e9bf425554 Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4172
diff changeset
156 'doccomment': [
c2e9bf425554 Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4172
diff changeset
157 (r'[^*/]+', String.Doc),
c2e9bf425554 Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4172
diff changeset
158 (r'/\*', String.Doc, '#push'),
c2e9bf425554 Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4172
diff changeset
159 (r'\*/', String.Doc, '#pop'),
c2e9bf425554 Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4172
diff changeset
160 (r'[*/]', String.Doc),
c2e9bf425554 Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4172
diff changeset
161 ],
5713
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
162 'modname': [
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
163 (r'\s+', Text),
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
164 (r'[a-zA-Z_]\w*', Name.Namespace, '#pop'),
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
165 default('#pop'),
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
166 ],
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
167 'funcname': [
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
168 (r'\s+', Text),
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
169 (r'[a-zA-Z_]\w*', Name.Function, '#pop'),
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
170 default('#pop'),
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
171 ],
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
172 'typename': [
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
173 (r'\s+', Text),
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
174 (r'&', Keyword.Pseudo),
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
175 builtin_types,
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
176 keyword_types,
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
177 (r'[a-zA-Z_]\w*', Name.Class, '#pop'),
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
178 default('#pop'),
6762afd9f963 Updated Pygments to 2.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4697
diff changeset
179 ],
4172
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 'number_lit': [
4697
c2e9bf425554 Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4172
diff changeset
181 (r'[ui](8|16|32|64|size)', Keyword, '#pop'),
4172
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 (r'f(32|64)', Keyword, '#pop'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 default('#pop'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184 ],
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185 'string': [
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
186 (r'"', String, '#pop'),
4697
c2e9bf425554 Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4172
diff changeset
187 (r"""\\['"\\nrt]|\\x[0-7][0-9a-fA-F]|\\0"""
c2e9bf425554 Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4172
diff changeset
188 r"""|\\u\{[0-9a-fA-F]{1,6}\}""", String.Escape),
4172
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 (r'[^\\"]+', String),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
190 (r'\\', String),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
191 ],
4697
c2e9bf425554 Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4172
diff changeset
192 'bytestring': [
c2e9bf425554 Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4172
diff changeset
193 (r"""\\x[89a-fA-F][0-9a-fA-F]""", String.Escape),
c2e9bf425554 Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4172
diff changeset
194 include('string'),
c2e9bf425554 Updated Pygments to 2.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4172
diff changeset
195 ],
4172
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
196 'attribute_common': [
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
197 (r'"', String, 'string'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
198 (r'\[', Comment.Preproc, 'attribute['),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
199 (r'\(', Comment.Preproc, 'attribute('),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
200 ],
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
201 'attribute[': [
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
202 include('attribute_common'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
203 (r'\];?', Comment.Preproc, '#pop'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204 (r'[^"\]]+', Comment.Preproc),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
205 ],
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
206 'attribute(': [
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
207 include('attribute_common'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208 (r'\);?', Comment.Preproc, '#pop'),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209 (r'[^")]+', Comment.Preproc),
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210 ],
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
211 }

eric ide

mercurial