From 6d7ba58f880be618ade07f8ea080fe8c4bf8a896 Mon Sep 17 00:00:00 2001 From: cyfraeviolae Date: Wed, 3 Apr 2024 03:10:44 -0400 Subject: venv --- .../site-packages/pygments/lexers/meson.py | 140 +++++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 venv/lib/python3.11/site-packages/pygments/lexers/meson.py (limited to 'venv/lib/python3.11/site-packages/pygments/lexers/meson.py') diff --git a/venv/lib/python3.11/site-packages/pygments/lexers/meson.py b/venv/lib/python3.11/site-packages/pygments/lexers/meson.py new file mode 100644 index 0000000..f74f719 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pygments/lexers/meson.py @@ -0,0 +1,140 @@ +""" + pygments.lexers.meson + ~~~~~~~~~~~~~~~~~~~~~ + + Pygments lexer for the Meson build system + + :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS. + :license: BSD, see LICENSE for details. +""" + +from pygments.lexer import RegexLexer, words, include +from pygments.token import Comment, Name, Number, Punctuation, Operator, \ + Keyword, String, Whitespace + +__all__ = ['MesonLexer'] + + +class MesonLexer(RegexLexer): + """Meson language lexer. + + The grammar definition use to transcribe the syntax was retrieved from + https://mesonbuild.com/Syntax.html#grammar for version 0.58. + Some of those definitions are improperly transcribed, so the Meson++ + implementation was also checked: https://github.com/dcbaker/meson-plus-plus. + + .. versionadded:: 2.10 + """ + + # TODO String interpolation @VARNAME@ inner matches + # TODO keyword_arg: value inner matches + + name = 'Meson' + url = 'https://mesonbuild.com/' + aliases = ['meson', 'meson.build'] + filenames = ['meson.build', 'meson_options.txt'] + mimetypes = ['text/x-meson'] + + tokens = { + 'root': [ + (r'#.*?$', Comment), + (r"'''.*'''", String.Single), + (r'[1-9][0-9]*', Number.Integer), + (r'0o[0-7]+', Number.Oct), + (r'0x[a-fA-F0-9]+', Number.Hex), + include('string'), + include('keywords'), + include('expr'), + (r'[a-zA-Z_][a-zA-Z_0-9]*', Name), + (r'\s+', Whitespace), + ], + 'string': [ + (r"[']{3}([']{0,2}([^\\']|\\(.|\n)))*[']{3}", String), + (r"'.*?(?