Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/pygments/lexers/srcinfo.py: 100%
10 statements
« prev ^ index » next coverage.py v7.2.7, created at 2023-06-07 06:16 +0000
« prev ^ index » next coverage.py v7.2.7, created at 2023-06-07 06:16 +0000
1"""
2 pygments.lexers.srcinfo
3 ~~~~~~~~~~~~~~~~~~~~~~~
5 Lexers for .SRCINFO files used by Arch Linux Packages.
7 The description of the format can be found in the wiki:
8 https://wiki.archlinux.org/title/.SRCINFO
10 :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
11 :license: BSD, see LICENSE for details.
12"""
14from pygments.lexer import RegexLexer, words
15from pygments.token import Text, Comment, Keyword, Name, Operator, Whitespace
17__all__ = ['SrcinfoLexer']
19keywords = (
20 'pkgbase', 'pkgname',
21 'pkgver', 'pkgrel', 'epoch',
22 'pkgdesc', 'url', 'install', 'changelog',
23 'arch', 'groups', 'license', 'noextract', 'options', 'backup',
24 'validpgpkeys',
25)
27architecture_dependent_keywords = (
28 'source', 'depends', 'checkdepends', 'makedepends', 'optdepends',
29 'provides', 'conflicts', 'replaces',
30 'md5sums', 'sha1sums', 'sha224sums', 'sha256sums', 'sha384sums',
31 'sha512sums',
32)
35class SrcinfoLexer(RegexLexer):
36 """Lexer for .SRCINFO files used by Arch Linux Packages.
38 .. versionadded:: 2.11
39 """
41 name = 'Srcinfo'
42 aliases = ['srcinfo']
43 filenames = ['.SRCINFO']
45 tokens = {
46 'root': [
47 (r'\s+', Whitespace),
48 (r'#.*', Comment.Single),
49 (words(keywords), Keyword, 'assignment'),
50 (words(architecture_dependent_keywords, suffix=r'_\w+'),
51 Keyword, 'assignment'),
52 (r'\w+', Name.Variable, 'assignment'),
53 ],
54 'assignment': [
55 (r' +', Whitespace),
56 (r'=', Operator, 'value'),
57 ],
58 'value': [
59 (r' +', Whitespace),
60 (r'.*', Text, '#pop:2'),
61 ],
62 }