diff options
Diffstat (limited to 'venv/lib/python3.11/site-packages/pygments/lexers/prql.py')
-rw-r--r-- | venv/lib/python3.11/site-packages/pygments/lexers/prql.py | 252 |
1 files changed, 0 insertions, 252 deletions
diff --git a/venv/lib/python3.11/site-packages/pygments/lexers/prql.py b/venv/lib/python3.11/site-packages/pygments/lexers/prql.py deleted file mode 100644 index 4c2f12e..0000000 --- a/venv/lib/python3.11/site-packages/pygments/lexers/prql.py +++ /dev/null @@ -1,252 +0,0 @@ -""" - pygments.lexers.prql - ~~~~~~~~~~~~~~~~~~~~ - - Lexer for the PRQL query language. - - :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. -""" - -from pygments.lexer import RegexLexer, combined, words, include, bygroups -from pygments.token import Comment, Literal, Keyword, Name, Number, Operator, \ - Punctuation, String, Text, Whitespace - -__all__ = ['PrqlLexer'] - - -class PrqlLexer(RegexLexer): - """ - For PRQL source code. - - .. versionadded:: 2.17 - - grammar: https://github.com/PRQL/prql/tree/main/grammars - """ - - name = 'PRQL' - url = 'https://prql-lang.org/' - aliases = ['prql'] - filenames = ['*.prql'] - mimetypes = ['application/prql', 'application/x-prql'] - - builtinTypes = words(( - "bool", - "int", - "int8", "int16", "int32", "int64", "int128", - "float", - "text", - "set"), suffix=r'\b') - - def innerstring_rules(ttype): - return [ - # the new style '{}'.format(...) string formatting - (r'\{' - r'((\w+)((\.\w+)|(\[[^\]]+\]))*)?' # field name - r'(\:(.?[<>=\^])?[-+ ]?#?0?(\d+)?,?(\.\d+)?[E-GXb-gnosx%]?)?' - r'\}', String.Interpol), - - (r'[^\\\'"%{\n]+', ttype), - (r'[\'"\\]', ttype), - (r'%|(\{{1,2})', ttype) - ] - - def fstring_rules(ttype): - return [ - (r'\}', String.Interpol), - (r'\{', String.Interpol, 'expr-inside-fstring'), - (r'[^\\\'"{}\n]+', ttype), - (r'[\'"\\]', ttype), - ] - - tokens = { - 'root': [ - - # Comments - (r'#!.*', String.Doc), - (r'#.*', Comment.Single), - - # Whitespace - (r'\s+', Whitespace), - - # Modules - (r'^(\s*)(module)(\s*)', - bygroups(Whitespace, Keyword.Namespace, Whitespace), - 'imports'), - - (builtinTypes, Keyword.Type), - - # Main - (r'^prql ', Keyword.Reserved), - - ('let', Keyword.Declaration), - - include('keywords'), - include('expr'), - - # Transforms - (r'^[A-Za-z_][a-zA-Z0-9_]*', Keyword), - ], - 'expr': [ - # non-raw f-strings - ('(f)(""")', bygroups(String.Affix, String.Double), - combined('fstringescape', 'tdqf')), - ("(f)(''')", bygroups(String.Affix, String.Single), - combined('fstringescape', 'tsqf')), - ('(f)(")', bygroups(String.Affix, String.Double), - combined('fstringescape', 'dqf')), - ("(f)(')", bygroups(String.Affix, String.Single), - combined('fstringescape', 'sqf')), - - # non-raw s-strings - ('(s)(""")', bygroups(String.Affix, String.Double), - combined('stringescape', 'tdqf')), - ("(s)(''')", bygroups(String.Affix, String.Single), - combined('stringescape', 'tsqf')), - ('(s)(")', bygroups(String.Affix, String.Double), - combined('stringescape', 'dqf')), - ("(s)(')", bygroups(String.Affix, String.Single), - combined('stringescape', 'sqf')), - - # raw strings - ('(?i)(r)(""")', - bygroups(String.Affix, String.Double), 'tdqs'), - ("(?i)(r)(''')", - bygroups(String.Affix, String.Single), 'tsqs'), - ('(?i)(r)(")', - bygroups(String.Affix, String.Double), 'dqs'), - ("(?i)(r)(')", - bygroups(String.Affix, String.Single), 'sqs'), - - # non-raw strings - ('"""', String.Double, combined('stringescape', 'tdqs')), - ("'''", String.Single, combined('stringescape', 'tsqs')), - ('"', String.Double, combined('stringescape', 'dqs')), - ("'", String.Single, combined('stringescape', 'sqs')), - - # Time and dates - (r'@\d{4}-\d{2}-\d{2}T\d{2}(:\d{2})?(:\d{2})?(\.\d{1,6})?(Z|[+-]\d{1,2}(:\d{1,2})?)?', Literal.Date), - (r'@\d{4}-\d{2}-\d{2}', Literal.Date), - (r'@\d{2}(:\d{2})?(:\d{2})?(\.\d{1,6})?(Z|[+-]\d{1,2}(:\d{1,2})?)?', Literal.Date), - - (r'[^\S\n]+', Text), - include('numbers'), - (r'->|=>|==|!=|>=|<=|~=|&&|\|\||\?\?|\/\/', Operator), - (r'[-~+/*%=<>&^|.@]', Operator), - (r'[]{}:(),;[]', Punctuation), - include('functions'), - - # Variable Names - (r'[A-Za-z_][a-zA-Z0-9_]*', Name.Variable), - ], - 'numbers': [ - (r'(\d(?:_?\d)*\.(?:\d(?:_?\d)*)?|(?:\d(?:_?\d)*)?\.\d(?:_?\d)*)' - r'([eE][+-]?\d(?:_?\d)*)?', Number.Float), - (r'\d(?:_?\d)*[eE][+-]?\d(?:_?\d)*j?', Number.Float), - (r'0[oO](?:_?[0-7])+', Number.Oct), - (r'0[bB](?:_?[01])+', Number.Bin), - (r'0[xX](?:_?[a-fA-F0-9])+', Number.Hex), - (r'\d(?:_?\d)*', Number.Integer), - ], - 'fstringescape': [ - include('stringescape'), - ], - 'bytesescape': [ - (r'\\([\\bfnrt"\']|\n|x[a-fA-F0-9]{2}|[0-7]{1,3})', String.Escape) - ], - 'stringescape': [ - (r'\\(N\{.*?\}|u\{[a-fA-F0-9]{1,6}\})', String.Escape), - include('bytesescape') - ], - 'fstrings-single': fstring_rules(String.Single), - 'fstrings-double': fstring_rules(String.Double), - 'strings-single': innerstring_rules(String.Single), - 'strings-double': innerstring_rules(String.Double), - 'dqf': [ - (r'"', String.Double, '#pop'), - (r'\\\\|\\"|\\\n', String.Escape), # included here for raw strings - include('fstrings-double') - ], - 'sqf': [ - (r"'", String.Single, '#pop'), - (r"\\\\|\\'|\\\n", String.Escape), # included here for raw strings - include('fstrings-single') - ], - 'dqs': [ - (r'"', String.Double, '#pop'), - (r'\\\\|\\"|\\\n', String.Escape), # included here for raw strings - include('strings-double') - ], - 'sqs': [ - (r"'", String.Single, '#pop'), - (r"\\\\|\\'|\\\n", String.Escape), # included here for raw strings - include('strings-single') - ], - 'tdqf': [ - (r'"""', String.Double, '#pop'), - include('fstrings-double'), - (r'\n', String.Double) - ], - 'tsqf': [ - (r"'''", String.Single, '#pop'), - include('fstrings-single'), - (r'\n', String.Single) - ], - 'tdqs': [ - (r'"""', String.Double, '#pop'), - include('strings-double'), - (r'\n', String.Double) - ], - 'tsqs': [ - (r"'''", String.Single, '#pop'), - include('strings-single'), - (r'\n', String.Single) - ], - - 'expr-inside-fstring': [ - (r'[{([]', Punctuation, 'expr-inside-fstring-inner'), - # without format specifier - (r'(=\s*)?' # debug (https://bugs.python.org/issue36817) - r'\}', String.Interpol, '#pop'), - # with format specifier - # we'll catch the remaining '}' in the outer scope - (r'(=\s*)?' # debug (https://bugs.python.org/issue36817) - r':', String.Interpol, '#pop'), - (r'\s+', Whitespace), # allow new lines - include('expr'), - ], - 'expr-inside-fstring-inner': [ - (r'[{([]', Punctuation, 'expr-inside-fstring-inner'), - (r'[])}]', Punctuation, '#pop'), - (r'\s+', Whitespace), # allow new lines - include('expr'), - ], - 'keywords': [ - (words(( - 'into', 'case', 'type', 'module', 'internal', - ), suffix=r'\b'), - Keyword), - (words(('true', 'false', 'null'), suffix=r'\b'), Keyword.Constant), - ], - 'functions': [ - (words(( - "min", "max", "sum", "average", "stddev", "every", "any", - "concat_array", "count", "lag", "lead", "first", "last", - "rank", "rank_dense", "row_number", "round", "as", "in", - "tuple_every", "tuple_map", "tuple_zip", "_eq", "_is_null", - "from_text", "lower", "upper", "read_parquet", "read_csv"), - suffix=r'\b'), - Name.Function), - ], - - 'comment': [ - (r'-(?!\})', Comment.Multiline), - (r'\{-', Comment.Multiline, 'comment'), - (r'[^-}]', Comment.Multiline), - (r'-\}', Comment.Multiline, '#pop'), - ], - - 'imports': [ - (r'\w+(\.\w+)*', Name.Class, '#pop'), - ], - } |