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/thingsdb.py | 116 +++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 venv/lib/python3.11/site-packages/pygments/lexers/thingsdb.py (limited to 'venv/lib/python3.11/site-packages/pygments/lexers/thingsdb.py') diff --git a/venv/lib/python3.11/site-packages/pygments/lexers/thingsdb.py b/venv/lib/python3.11/site-packages/pygments/lexers/thingsdb.py new file mode 100644 index 0000000..13230f8 --- /dev/null +++ b/venv/lib/python3.11/site-packages/pygments/lexers/thingsdb.py @@ -0,0 +1,116 @@ +""" + pygments.lexers.thingsdb + ~~~~~~~~~~~~~~~~~~~~~~~~ + + Lexers for the ThingsDB language. + + :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS. + :license: BSD, see LICENSE for details. +""" + +from pygments.lexer import RegexLexer, include, bygroups +from pygments.token import Comment, Keyword, Name, Number, String, Text, \ + Operator, Punctuation, Whitespace + +__all__ = ['ThingsDBLexer'] + + +class ThingsDBLexer(RegexLexer): + """ + Lexer for the ThingsDB programming language. + + .. versionadded:: 2.9 + """ + name = 'ThingsDB' + aliases = ['ti', 'thingsdb'] + filenames = ['*.ti'] + + tokens = { + 'root': [ + include('expression'), + ], + 'expression': [ + include('comments'), + include('whitespace'), + + # numbers + (r'[-+]?0b[01]+', Number.Bin), + (r'[-+]?0o[0-8]+', Number.Oct), + (r'([-+]?0x[0-9a-fA-F]+)', Number.Hex), + (r'[-+]?[0-9]+', Number.Integer), + (r'[-+]?((inf|nan)([^0-9A-Za-z_]|$)|[0-9]*\.[0-9]+(e[+-][0-9]+)?)', + Number.Float), + + # strings + (r'(?:"(?:[^"]*)")+', String.Double), + (r"(?:'(?:[^']*)')+", String.Single), + + # literals + (r'(true|false|nil)\b', Keyword.Constant), + + # regular expressions + (r'(/[^/\\]*(?:\\.[^/\\]*)*/i?)', String.Regex), + + # thing id's + (r'#[0-9]+', Comment.Preproc), + + # name, assignments and functions + include('names'), + + (r'[(){}\[\],;]', Punctuation), + (r'[+\-*/%&|<>^!~@=:?]', Operator), + ], + 'names': [ + (r'(\.)' + r'(add|call|contains|del|endswith|extend|filter|find|findindex|' + r'get|has|id|indexof|keys|len|lower|map|pop|push|remove|set|sort|' + r'splice|startswith|test|unwrap|upper|values|wrap)' + r'(\()', + bygroups(Name.Function, Name.Function, Punctuation), 'arguments'), + (r'(array|assert|assert_err|auth_err|backup_info|backups_info|' + r'bad_data_err|bool|closure|collection_info|collections_info|' + r'counters|deep|del_backup|del_collection|del_expired|del_node|' + r'del_procedure|del_token|del_type|del_user|err|float|' + r'forbidden_err|grant|int|isarray|isascii|isbool|isbytes|iserr|' + r'isfloat|isinf|isint|islist|isnan|isnil|israw|isset|isstr|' + r'isthing|istuple|isutf8|lookup_err|max_quota_err|mod_type|new|' + r'new_backup|new_collection|new_node|new_procedure|new_token|' + r'new_type|new_user|node_err|node_info|nodes_info|now|' + r'num_arguments_err|operation_err|overflow_err|procedure_doc|' + r'procedure_info|procedures_info|raise|refs|rename_collection|' + r'rename_user|reset_counters|return|revoke|run|set_log_level|set|' + r'set_quota|set_type|shutdown|str|syntax_err|thing|try|type|' + r'type_err|type_count|type_info|types_info|user_info|users_info|' + r'value_err|wse|zero_div_err)' + r'(\()', + bygroups(Name.Function, Punctuation), + 'arguments'), + (r'(\.[A-Za-z_][0-9A-Za-z_]*)' + r'(\s*)(=)', + bygroups(Name.Attribute, Text, Operator)), + (r'\.[A-Za-z_][0-9A-Za-z_]*', Name.Attribute), + (r'([A-Za-z_][0-9A-Za-z_]*)(\s*)(=)', + bygroups(Name.Variable, Text, Operator)), + (r'[A-Za-z_][0-9A-Za-z_]*', Name.Variable), + ], + 'whitespace': [ + (r'\n', Whitespace), + (r'\s+', Whitespace), + ], + 'comments': [ + (r'//(.*?)\n', Comment.Single), + (r'/\*', Comment.Multiline, 'comment'), + ], + 'comment': [ + (r'[^*/]+', Comment.Multiline), + (r'/\*', Comment.Multiline, '#push'), + (r'\*/', Comment.Multiline, '#pop'), + (r'[*/]', Comment.Multiline), + ], + 'arguments': [ + include('expression'), + (',', Punctuation), + (r'\(', Punctuation, '#push'), + (r'\)', Punctuation, '#pop'), + ], + } -- cgit v1.2.3