Server IP : 85.214.239.14 / Your IP : 3.145.88.104 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.berry ~~~~~~~~~~~~~~~~~~~~~ Lexer for Berry. :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. """ from pygments.lexer import RegexLexer, words, include, bygroups from pygments.token import Comment, Whitespace, Operator, Keyword, Name, \ String, Number, Punctuation __all__ = ['BerryLexer'] class BerryLexer(RegexLexer): """ For `berry <http://github.com/berry-lang/berry>`_ source code. .. versionadded:: 2.12.0 """ name = 'Berry' aliases = ['berry', 'be'] filenames = ['*.be'] mimetypes = ['text/x-berry', 'application/x-berry'] _name = r'\b[^\W\d]\w*' tokens = { 'root': [ include('whitespace'), include('numbers'), include('keywords'), (rf'(def)(\s+)({_name})', bygroups(Keyword.Declaration, Whitespace, Name.Function)), (rf'\b(class)(\s+)({_name})', bygroups(Keyword.Declaration, Whitespace, Name.Class)), (rf'\b(import)(\s+)({_name})', bygroups(Keyword.Namespace, Whitespace, Name.Namespace)), include('expr') ], 'expr': [ (r'[^\S\n]+', Whitespace), (r'\.\.|[~!%^&*+=|?:<>/-]', Operator), (r'[(){}\[\],.;]', Punctuation), include('controls'), include('builtins'), include('funccall'), include('member'), include('name'), include('strings') ], 'whitespace': [ (r'\s+', Whitespace), (r'#-(.|\n)*?-#', Comment.Multiline), (r'#.*?$', Comment.Single) ], 'keywords': [ (words(( 'as', 'break', 'continue', 'import', 'static', 'self', 'super'), suffix=r'\b'), Keyword.Reserved), (r'(true|false|nil)\b', Keyword.Constant), (r'(var|def)\b', Keyword.Declaration) ], 'controls': [ (words(( 'if', 'elif', 'else', 'for', 'while', 'do', 'end', 'break', 'continue', 'return', 'try', 'except', 'raise'), suffix=r'\b'), Keyword) ], 'builtins': [ (words(( 'assert', 'bool', 'input', 'classname', 'classof', 'number', 'real', 'bytes', 'compile', 'map', 'list', 'int', 'isinstance', 'print', 'range', 'str', 'super', 'module', 'size', 'issubclass', 'open', 'file', 'type', 'call'), suffix=r'\b'), Name.Builtin) ], 'numbers': [ (r'0[xX][a-fA-F0-9]+', Number.Hex), (r'-?\d+', Number.Integer), (r'(-?\d+\.?|\.\d)\d*([eE][+-]?\d+)?', Number.Float) ], 'name': [ (_name, Name) ], 'funccall': [ (rf'{_name}(?=\s*\()', Name.Function, '#pop') ], 'member': [ (rf'(?<=\.){_name}\b(?!\()', Name.Attribute, '#pop') ], 'strings': [ (r'"([^\\]|\\.)*?"', String.Double, '#pop'), (r'\'([^\\]|\\.)*?\'', String.Single, '#pop') ] }