Buckets:
MisterAI/LocalAI_Demo_backends / cpu-diffusers.upgrade-tmp /venv /lib /python3.10 /site-packages /pygments /lexers /felix.py
| """ | |
| pygments.lexers.felix | |
| ~~~~~~~~~~~~~~~~~~~~~ | |
| Lexer for the Felix language. | |
| :copyright: Copyright 2006-present by the Pygments team, see AUTHORS. | |
| :license: BSD, see LICENSE for details. | |
| """ | |
| from pygments.lexer import RegexLexer, include, bygroups, default, words, \ | |
| combined | |
| from pygments.token import Text, Comment, Operator, Keyword, Name, String, \ | |
| Number, Punctuation, Whitespace | |
| __all__ = ['FelixLexer'] | |
| class FelixLexer(RegexLexer): | |
| """ | |
| For Felix source code. | |
| """ | |
| name = 'Felix' | |
| url = 'http://www.felix-lang.org' | |
| aliases = ['felix', 'flx'] | |
| filenames = ['*.flx', '*.flxh'] | |
| mimetypes = ['text/x-felix'] | |
| version_added = '1.2' | |
| preproc = ( | |
| 'elif', 'else', 'endif', 'if', 'ifdef', 'ifndef', | |
| ) | |
| keywords = ( | |
| '_', '_deref', 'all', 'as', | |
| 'assert', 'attempt', 'call', 'callback', 'case', 'caseno', 'cclass', | |
| 'code', 'compound', 'ctypes', 'do', 'done', 'downto', 'elif', 'else', | |
| 'endattempt', 'endcase', 'endif', 'endmatch', 'enum', 'except', | |
| 'exceptions', 'expect', 'finally', 'for', 'forall', 'forget', 'fork', | |
| 'functor', 'goto', 'ident', 'if', 'incomplete', 'inherit', 'instance', | |
| 'interface', 'jump', 'lambda', 'loop', 'match', 'module', 'namespace', | |
| 'new', 'noexpand', 'nonterm', 'obj', 'of', 'open', 'parse', 'raise', | |
| 'regexp', 'reglex', 'regmatch', 'rename', 'return', 'the', 'then', | |
| 'to', 'type', 'typecase', 'typedef', 'typematch', 'typeof', 'upto', | |
| 'when', 'whilst', 'with', 'yield', | |
| ) | |
| keyword_directives = ( | |
| '_gc_pointer', '_gc_type', 'body', 'comment', 'const', 'export', | |
| 'header', 'inline', 'lval', 'macro', 'noinline', 'noreturn', | |
| 'package', 'private', 'pod', 'property', 'public', 'publish', | |
| 'requires', 'todo', 'virtual', 'use', | |
| ) | |
| keyword_declarations = ( | |
| 'def', 'let', 'ref', 'val', 'var', | |
| ) | |
| keyword_types = ( | |
| 'unit', 'void', 'any', 'bool', | |
| 'byte', 'offset', | |
| 'address', 'caddress', 'cvaddress', 'vaddress', | |
| 'tiny', 'short', 'int', 'long', 'vlong', | |
| 'utiny', 'ushort', 'vshort', 'uint', 'ulong', 'uvlong', | |
| 'int8', 'int16', 'int32', 'int64', | |
| 'uint8', 'uint16', 'uint32', 'uint64', | |
| 'float', 'double', 'ldouble', | |
| 'complex', 'dcomplex', 'lcomplex', | |
| 'imaginary', 'dimaginary', 'limaginary', | |
| 'char', 'wchar', 'uchar', | |
| 'charp', 'charcp', 'ucharp', 'ucharcp', | |
| 'string', 'wstring', 'ustring', | |
| 'cont', | |
| 'array', 'varray', 'list', | |
| 'lvalue', 'opt', 'slice', | |
| ) | |
| keyword_constants = ( | |
| 'false', 'true', | |
| ) | |
| operator_words = ( | |
| 'and', 'not', 'in', 'is', 'isin', 'or', 'xor', | |
| ) | |
| name_builtins = ( | |
| '_svc', 'while', | |
| ) | |
| name_pseudo = ( | |
| 'root', 'self', 'this', | |
| ) | |
| decimal_suffixes = '([tTsSiIlLvV]|ll|LL|([iIuU])(8|16|32|64))?' | |
| tokens = { | |
| 'root': [ | |
| include('whitespace'), | |
| # Keywords | |
| (words(('axiom', 'ctor', 'fun', 'gen', 'proc', 'reduce', | |
| 'union'), suffix=r'\b'), | |
| Keyword, 'funcname'), | |
| (words(('class', 'cclass', 'cstruct', 'obj', 'struct'), suffix=r'\b'), | |
| Keyword, 'classname'), | |
| (r'(instance|module|typeclass)\b', Keyword, 'modulename'), | |
| (words(keywords, suffix=r'\b'), Keyword), | |
| (words(keyword_directives, suffix=r'\b'), Name.Decorator), | |
| (words(keyword_declarations, suffix=r'\b'), Keyword.Declaration), | |
| (words(keyword_types, suffix=r'\b'), Keyword.Type), | |
| (words(keyword_constants, suffix=r'\b'), Keyword.Constant), | |
| # Operators | |
| include('operators'), | |
| # Float Literal | |
| # -- Hex Float | |
| (r'0[xX]([0-9a-fA-F_]*\.[0-9a-fA-F_]+|[0-9a-fA-F_]+)' | |
| r'[pP][+\-]?[0-9_]+[lLfFdD]?', Number.Float), | |
| # -- DecimalFloat | |
| (r'[0-9_]+(\.[0-9_]+[eE][+\-]?[0-9_]+|' | |
| r'\.[0-9_]*|[eE][+\-]?[0-9_]+)[lLfFdD]?', Number.Float), | |
| (r'\.(0|[1-9][0-9_]*)([eE][+\-]?[0-9_]+)?[lLfFdD]?', | |
| Number.Float), | |
| # IntegerLiteral | |
| # -- Binary | |
| (rf'0[Bb][01_]+{decimal_suffixes}', Number.Bin), | |
| # -- Octal | |
| (rf'0[0-7_]+{decimal_suffixes}', Number.Oct), | |
| # -- Hexadecimal | |
| (rf'0[xX][0-9a-fA-F_]+{decimal_suffixes}', Number.Hex), | |
| # -- Decimal | |
| (rf'(0|[1-9][0-9_]*){decimal_suffixes}', Number.Integer), | |
| # Strings | |
| ('([rR][cC]?|[cC][rR])"""', String, 'tdqs'), | |
| ("([rR][cC]?|[cC][rR])'''", String, 'tsqs'), | |
| ('([rR][cC]?|[cC][rR])"', String, 'dqs'), | |
| ("([rR][cC]?|[cC][rR])'", String, 'sqs'), | |
| ('[cCfFqQwWuU]?"""', String, combined('stringescape', 'tdqs')), | |
| ("[cCfFqQwWuU]?'''", String, combined('stringescape', 'tsqs')), | |
| ('[cCfFqQwWuU]?"', String, combined('stringescape', 'dqs')), | |
| ("[cCfFqQwWuU]?'", String, combined('stringescape', 'sqs')), | |
| # Punctuation | |
| (r'[\[\]{}:(),;?]', Punctuation), | |
| # Labels | |
| (r'[a-zA-Z_]\w*:>', Name.Label), | |
| # Identifiers | |
| (r'({})\b'.format('|'.join(name_builtins)), Name.Builtin), | |
| (r'({})\b'.format('|'.join(name_pseudo)), Name.Builtin.Pseudo), | |
| (r'[a-zA-Z_]\w*', Name), | |
| ], | |
| 'whitespace': [ | |
| (r'\s+', Whitespace), | |
| include('comment'), | |
| # Preprocessor | |
| (r'(#)(\s*)(if)(\s+)(0)', | |
| bygroups(Comment.Preproc, Whitespace, Comment.Preproc, | |
| Whitespace, Comment.Preproc), 'if0'), | |
| (r'#', Comment.Preproc, 'macro'), | |
| ], | |
| 'operators': [ | |
| (r'({})\b'.format('|'.join(operator_words)), Operator.Word), | |
| (r'!=|==|<<|>>|\|\||&&|[-~+/*%=<>&^|.$]', Operator), | |
| ], | |
| 'comment': [ | |
| (r'//(.*?)$', Comment.Single), | |
| (r'/[*]', Comment.Multiline, 'comment2'), | |
| ], | |
| 'comment2': [ | |
| (r'[^/*]', Comment.Multiline), | |
| (r'/[*]', Comment.Multiline, '#push'), | |
| (r'[*]/', Comment.Multiline, '#pop'), | |
| (r'[/*]', Comment.Multiline), | |
| ], | |
| 'if0': [ | |
| (r'^(\s*)(#if.*?(?<!\\))(\n)', | |
| bygroups(Whitespace, Comment, Whitespace), '#push'), | |
| (r'^(\s*)(#endif.*?(?<!\\))(\n)', | |
| bygroups(Whitespace, Comment, Whitespace), '#pop'), | |
| (r'(.*?)(\n)', bygroups(Comment, Whitespace)), | |
| ], | |
| 'macro': [ | |
| include('comment'), | |
| (r'(import|include)(\s+)(<[^>]*?>)', | |
| bygroups(Comment.Preproc, Whitespace, String), '#pop'), | |
| (r'(import|include)(\s+)("[^"]*?")', | |
| bygroups(Comment.Preproc, Whitespace, String), '#pop'), | |
| (r"(import|include)(\s+)('[^']*?')", | |
| bygroups(Comment.Preproc, Whitespace, String), '#pop'), | |
| (r'[^/\n]+', Comment.Preproc), | |
| # (r'/[*](.|\n)*?[*]/', Comment), | |
| # (r'//.*?\n', Comment, '#pop'), | |
| (r'/', Comment.Preproc), | |
| (r'(?<=\\)\n', Comment.Preproc), | |
| (r'\n', Whitespace, '#pop'), | |
| ], | |
| 'funcname': [ | |
| include('whitespace'), | |
| (r'[a-zA-Z_]\w*', Name.Function, '#pop'), | |
| # anonymous functions | |
| (r'(?=\()', Text, '#pop'), | |
| ], | |
| 'classname': [ | |
| include('whitespace'), | |
| (r'[a-zA-Z_]\w*', Name.Class, '#pop'), | |
| # anonymous classes | |
| (r'(?=\{)', Text, '#pop'), | |
| ], | |
| 'modulename': [ | |
| include('whitespace'), | |
| (r'\[', Punctuation, ('modulename2', 'tvarlist')), | |
| default('modulename2'), | |
| ], | |
| 'modulename2': [ | |
| include('whitespace'), | |
| (r'([a-zA-Z_]\w*)', Name.Namespace, '#pop:2'), | |
| ], | |
| 'tvarlist': [ | |
| include('whitespace'), | |
| include('operators'), | |
| (r'\[', Punctuation, '#push'), | |
| (r'\]', Punctuation, '#pop'), | |
| (r',', Punctuation), | |
| (r'(with|where)\b', Keyword), | |
| (r'[a-zA-Z_]\w*', Name), | |
| ], | |
| 'stringescape': [ | |
| (r'\\([\\abfnrtv"\']|\n|N\{.*?\}|u[a-fA-F0-9]{4}|' | |
| r'U[a-fA-F0-9]{8}|x[a-fA-F0-9]{2}|[0-7]{1,3})', String.Escape) | |
| ], | |
| 'strings': [ | |
| (r'%(\([a-zA-Z0-9]+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?' | |
| '[hlL]?[E-GXc-giorsux%]', String.Interpol), | |
| (r'[^\\\'"%\n]+', String), | |
| # quotes, percents and backslashes must be parsed one at a time | |
| (r'[\'"\\]', String), | |
| # unhandled string formatting sign | |
| (r'%', String) | |
| # newlines are an error (use "nl" state) | |
| ], | |
| 'nl': [ | |
| (r'\n', String) | |
| ], | |
| 'dqs': [ | |
| (r'"', String, '#pop'), | |
| # included here again for raw strings | |
| (r'\\\\|\\"|\\\n', String.Escape), | |
| include('strings') | |
| ], | |
| 'sqs': [ | |
| (r"'", String, '#pop'), | |
| # included here again for raw strings | |
| (r"\\\\|\\'|\\\n", String.Escape), | |
| include('strings') | |
| ], | |
| 'tdqs': [ | |
| (r'"""', String, '#pop'), | |
| include('strings'), | |
| include('nl') | |
| ], | |
| 'tsqs': [ | |
| (r"'''", String, '#pop'), | |
| include('strings'), | |
| include('nl') | |
| ], | |
| } | |
Xet Storage Details
- Size:
- 9.66 kB
- Xet hash:
- 88b346aad539db34da15d5f7b1c5af9c1e29bc1dd31830721f9fae3e5e9e61d3
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.