Server IP : 85.214.239.14 / Your IP : 3.145.100.40 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /proc/self/root/lib/python3/dist-packages/pygments/lexers/ |
Upload File : |
""" pygments.lexers.wren ~~~~~~~~~~~~~~~~~~~~ Lexer for Wren. :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. """ import re from pygments.lexer import include, RegexLexer, words from pygments.token import Whitespace, Punctuation, Keyword, Name, Comment, \ Operator, Number, String, Error __all__ = ['WrenLexer'] class WrenLexer(RegexLexer): """ For Wren source code, version 0.4.0. .. versionadded:: 2.14.0 """ name = 'Wren' url = 'https://wren.io' aliases = ['wren'] filenames = ['*.wren'] flags = re.MULTILINE | re.DOTALL tokens = { 'root': [ # Whitespace. (r'\s+', Whitespace), (r'[,\\\[\]{}]', Punctuation), # Really 'root', not '#push': in 'interpolation', # parentheses inside the interpolation expression are # Punctuation, not String.Interpol. (r'\(', Punctuation, 'root'), (r'\)', Punctuation, '#pop'), # Keywords. (words(( 'as', 'break', 'class', 'construct', 'continue', 'else', 'for', 'foreign', 'if', 'import', 'return', 'static', 'super', 'this', 'var', 'while'), prefix = r'(?<!\.)', suffix = r'\b'), Keyword), (words(( 'true', 'false', 'null'), prefix = r'(?<!\.)', suffix = r'\b'), Keyword.Constant), (words(( 'in', 'is'), prefix = r'(?<!\.)', suffix = r'\b'), Operator.Word), # Comments. (r'/\*', Comment.Multiline, 'comment'), # Multiline, can nest. (r'//.*?$', Comment.Single), # Single line. (r'#.*?(\(.*?\))?$', Comment.Special), # Attribute or shebang. # Names and operators. (r'[!%&*+\-./:<=>?\\^|~]+', Operator), (r'[a-z][a-zA-Z_0-9]*', Name), (r'[A-Z][a-zA-Z_0-9]*', Name.Class), (r'__[a-zA-Z_0-9]*', Name.Variable.Class), (r'_[a-zA-Z_0-9]*', Name.Variable.Instance), # Numbers. (r'0x[0-9a-fA-F]+', Number.Hex), (r'\d+(\.\d+)?([eE][-+]?\d+)?', Number.Float), # Strings. (r'""".*?"""', String), # Raw string (r'"', String, 'string'), # Other string ], 'comment': [ (r'/\*', Comment.Multiline, '#push'), (r'\*/', Comment.Multiline, '#pop'), (r'([^*/]|\*(?!/)|/(?!\*))+', Comment.Multiline), ], 'string': [ (r'"', String, '#pop'), (r'\\[\\%"0abefnrtv]', String.Escape), # Escape. (r'\\x[a-fA-F0-9]{2}', String.Escape), # Byte escape. (r'\\u[a-fA-F0-9]{4}', String.Escape), # Unicode escape. (r'\\U[a-fA-F0-9]{8}', String.Escape), # Long Unicode escape. (r'%\(', String.Interpol, 'interpolation'), (r'[^\\"%]+', String), # All remaining characters. ], 'interpolation': [ # redefine closing paren to be String.Interpol (r'\)', String.Interpol, '#pop'), include('root'), ], }