summaryrefslogtreecommitdiffstats
path: root/venv/lib/python3.9/site-packages/pygments/lexers/jmespath.py
diff options
context:
space:
mode:
authornoptuno <repollo.marrero@gmail.com>2023-04-28 02:29:30 +0200
committernoptuno <repollo.marrero@gmail.com>2023-04-28 02:29:30 +0200
commit355dee533bb34a571b9367820a63cccb668cf866 (patch)
tree838af886b4fec07320aeb10f0d1e74ba79e79b5c /venv/lib/python3.9/site-packages/pygments/lexers/jmespath.py
parentadded pyproject.toml file (diff)
downloadgpt4free-355dee533bb34a571b9367820a63cccb668cf866.tar
gpt4free-355dee533bb34a571b9367820a63cccb668cf866.tar.gz
gpt4free-355dee533bb34a571b9367820a63cccb668cf866.tar.bz2
gpt4free-355dee533bb34a571b9367820a63cccb668cf866.tar.lz
gpt4free-355dee533bb34a571b9367820a63cccb668cf866.tar.xz
gpt4free-355dee533bb34a571b9367820a63cccb668cf866.tar.zst
gpt4free-355dee533bb34a571b9367820a63cccb668cf866.zip
Diffstat (limited to 'venv/lib/python3.9/site-packages/pygments/lexers/jmespath.py')
-rw-r--r--venv/lib/python3.9/site-packages/pygments/lexers/jmespath.py68
1 files changed, 68 insertions, 0 deletions
diff --git a/venv/lib/python3.9/site-packages/pygments/lexers/jmespath.py b/venv/lib/python3.9/site-packages/pygments/lexers/jmespath.py
new file mode 100644
index 00000000..74aa5727
--- /dev/null
+++ b/venv/lib/python3.9/site-packages/pygments/lexers/jmespath.py
@@ -0,0 +1,68 @@
+"""
+ pygments.lexers.jmespath
+ ~~~~~~~~~~~~~~~~~~~~~~~~
+
+ Lexers for the JMESPath language
+
+ :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
+ :license: BSD, see LICENSE for details.
+"""
+
+from pygments.lexer import RegexLexer, bygroups, include
+from pygments.token import String, Punctuation, Whitespace, Name, Operator, \
+ Number, Literal, Keyword
+
+__all__ = ['JMESPathLexer']
+
+
+class JMESPathLexer(RegexLexer):
+ """
+ For JMESPath queries.
+ """
+ name = 'JMESPath'
+ url = 'https://jmespath.org'
+ filenames = ['*.jp']
+ aliases = ['jmespath', 'jp']
+
+ tokens = {
+ 'string': [
+ (r"'(\\(.|\n)|[^'\\])*'", String),
+ ],
+ 'punctuation': [
+ (r'(\[\?|[\.\*\[\],:\(\)\{\}\|])', Punctuation),
+ ],
+ 'ws': [
+ (r" |\t|\n|\r", Whitespace)
+ ],
+ "dq-identifier": [
+ (r'[^\\"]+', Name.Variable),
+ (r'\\"', Name.Variable),
+ (r'.', Punctuation, '#pop'),
+ ],
+ 'identifier': [
+ (r'(&)?(")', bygroups(Name.Variable, Punctuation), 'dq-identifier'),
+ (r'(")?(&?[A-Za-z][A-Za-z0-9_-]*)(")?', bygroups(Punctuation, Name.Variable, Punctuation)),
+ ],
+ 'root': [
+ include('ws'),
+ include('string'),
+ (r'(==|!=|<=|>=|<|>|&&|\|\||!)', Operator),
+ include('punctuation'),
+ (r'@', Name.Variable.Global),
+ (r'(&?[A-Za-z][A-Za-z0-9_]*)(\()', bygroups(Name.Function, Punctuation)),
+ (r'(&)(\()', bygroups(Name.Variable, Punctuation)),
+ include('identifier'),
+ (r'-?\d+', Number),
+ (r'`', Literal, 'literal'),
+ ],
+ 'literal': [
+ include('ws'),
+ include('string'),
+ include('punctuation'),
+ (r'(false|true|null)\b', Keyword.Constant),
+ include('identifier'),
+ (r'-?\d+\.?\d*([eE][-+]\d+)?', Number),
+ (r'\\`', Literal),
+ (r'`', Literal, '#pop'),
+ ]
+ }