Buckets:
MisterAI/LocalAI_Demo_backends / cpu-diffusers.upgrade-tmp /venv /lib /python3.10 /site-packages /pygments /lexers /fantom.py
| """ | |
| pygments.lexers.fantom | |
| ~~~~~~~~~~~~~~~~~~~~~~ | |
| Lexer for the Fantom language. | |
| :copyright: Copyright 2006-present by the Pygments team, see AUTHORS. | |
| :license: BSD, see LICENSE for details. | |
| """ | |
| from string import Template | |
| from pygments.lexer import RegexLexer, include, bygroups, using, \ | |
| this, default, words | |
| from pygments.token import Text, Comment, Operator, Keyword, Name, String, \ | |
| Number, Punctuation, Literal, Whitespace | |
| __all__ = ['FantomLexer'] | |
| class FantomLexer(RegexLexer): | |
| """ | |
| For Fantom source code. | |
| """ | |
| name = 'Fantom' | |
| aliases = ['fan'] | |
| filenames = ['*.fan'] | |
| mimetypes = ['application/x-fantom'] | |
| url = 'https://www.fantom.org' | |
| version_added = '1.5' | |
| # often used regexes | |
| def s(str): | |
| return Template(str).substitute( | |
| dict( | |
| pod=r'[\"\w\.]+', | |
| eos=r'\n|;', | |
| id=r'[a-zA-Z_]\w*', | |
| # all chars which can be part of type definition. Starts with | |
| # either letter, or [ (maps), or | (funcs) | |
| type=r'(?:\[|[a-zA-Z_]|\|)[:\w\[\]|\->?]*?', | |
| ) | |
| ) | |
| tokens = { | |
| 'comments': [ | |
| (r'(?s)/\*.*?\*/', Comment.Multiline), # Multiline | |
| (r'//.*?$', Comment.Single), # Single line | |
| # TODO: highlight references in fandocs | |
| (r'\*\*.*?$', Comment.Special), # Fandoc | |
| (r'#.*$', Comment.Single) # Shell-style | |
| ], | |
| 'literals': [ | |
| (r'\b-?[\d_]+(ns|ms|sec|min|hr|day)', Number), # Duration | |
| (r'\b-?[\d_]*\.[\d_]+(ns|ms|sec|min|hr|day)', Number), # Duration with dot | |
| (r'\b-?(\d+)?\.\d+(f|F|d|D)?', Number.Float), # Float/Decimal | |
| (r'\b-?0x[0-9a-fA-F_]+', Number.Hex), # Hex | |
| (r'\b-?[\d_]+', Number.Integer), # Int | |
| (r"'\\.'|'[^\\]'|'\\u[0-9a-f]{4}'", String.Char), # Char | |
| (r'"', Punctuation, 'insideStr'), # Opening quote | |
| (r'`', Punctuation, 'insideUri'), # Opening accent | |
| (r'\b(true|false|null)\b', Keyword.Constant), # Bool & null | |
| (r'(?:(\w+)(::))?(\w+)(<\|)(.*?)(\|>)', # DSL | |
| bygroups(Name.Namespace, Punctuation, Name.Class, | |
| Punctuation, String, Punctuation)), | |
| (r'(?:(\w+)(::))?(\w+)?(#)(\w+)?', # Type/slot literal | |
| bygroups(Name.Namespace, Punctuation, Name.Class, | |
| Punctuation, Name.Function)), | |
| (r'\[,\]', Literal), # Empty list | |
| (s(r'($type)(\[,\])'), # Typed empty list | |
| bygroups(using(this, state='inType'), Literal)), | |
| (r'\[:\]', Literal), # Empty Map | |
| (s(r'($type)(\[:\])'), | |
| bygroups(using(this, state='inType'), Literal)), | |
| ], | |
| 'insideStr': [ | |
| (r'\\\\', String.Escape), # Escaped backslash | |
| (r'\\"', String.Escape), # Escaped " | |
| (r'\\`', String.Escape), # Escaped ` | |
| (r'\$\w+', String.Interpol), # Subst var | |
| (r'\$\{.*?\}', String.Interpol), # Subst expr | |
| (r'"', Punctuation, '#pop'), # Closing quot | |
| (r'.', String) # String content | |
| ], | |
| 'insideUri': [ # TODO: remove copy/paste str/uri | |
| (r'\\\\', String.Escape), # Escaped backslash | |
| (r'\\"', String.Escape), # Escaped " | |
| (r'\\`', String.Escape), # Escaped ` | |
| (r'\$\w+', String.Interpol), # Subst var | |
| (r'\$\{.*?\}', String.Interpol), # Subst expr | |
| (r'`', Punctuation, '#pop'), # Closing tick | |
| (r'.', String.Backtick) # URI content | |
| ], | |
| 'protectionKeywords': [ | |
| (r'\b(public|protected|private|internal)\b', Keyword), | |
| ], | |
| 'typeKeywords': [ | |
| (r'\b(abstract|final|const|native|facet|enum)\b', Keyword), | |
| ], | |
| 'methodKeywords': [ | |
| (r'\b(abstract|native|once|override|static|virtual|final)\b', | |
| Keyword), | |
| ], | |
| 'fieldKeywords': [ | |
| (r'\b(abstract|const|final|native|override|static|virtual|' | |
| r'readonly)\b', Keyword) | |
| ], | |
| 'otherKeywords': [ | |
| (words(( | |
| 'try', 'catch', 'throw', 'finally', 'for', 'if', 'else', 'while', | |
| 'as', 'is', 'isnot', 'switch', 'case', 'default', 'continue', | |
| 'break', 'do', 'return', 'get', 'set'), prefix=r'\b', suffix=r'\b'), | |
| Keyword), | |
| (r'\b(it|this|super)\b', Name.Builtin.Pseudo), | |
| ], | |
| 'operators': [ | |
| (r'\+\+|\-\-|\+|\-|\*|/|\|\||&&|<=>|<=|<|>=|>|=|!|\[|\]', Operator) | |
| ], | |
| 'inType': [ | |
| (r'[\[\]|\->:?]', Punctuation), | |
| (s(r'$id'), Name.Class), | |
| default('#pop'), | |
| ], | |
| 'root': [ | |
| include('comments'), | |
| include('protectionKeywords'), | |
| include('typeKeywords'), | |
| include('methodKeywords'), | |
| include('fieldKeywords'), | |
| include('literals'), | |
| include('otherKeywords'), | |
| include('operators'), | |
| (r'using\b', Keyword.Namespace, 'using'), # Using stmt | |
| (r'@\w+', Name.Decorator, 'facet'), # Symbol | |
| (r'(class|mixin)(\s+)(\w+)', bygroups(Keyword, Whitespace, Name.Class), | |
| 'inheritance'), # Inheritance list | |
| # Type var := val | |
| (s(r'($type)([ \t]+)($id)(\s*)(:=)'), | |
| bygroups(using(this, state='inType'), Whitespace, | |
| Name.Variable, Whitespace, Operator)), | |
| # var := val | |
| (s(r'($id)(\s*)(:=)'), | |
| bygroups(Name.Variable, Whitespace, Operator)), | |
| # .someId( or ->someId( ### | |
| (s(r'(\.|(?:\->))($id)(\s*)(\()'), | |
| bygroups(Operator, Name.Function, Whitespace, Punctuation), | |
| 'insideParen'), | |
| # .someId or ->someId | |
| (s(r'(\.|(?:\->))($id)'), | |
| bygroups(Operator, Name.Function)), | |
| # new makeXXX ( | |
| (r'(new)(\s+)(make\w*)(\s*)(\()', | |
| bygroups(Keyword, Whitespace, Name.Function, Whitespace, Punctuation), | |
| 'insideMethodDeclArgs'), | |
| # Type name ( | |
| (s(r'($type)([ \t]+)' # Return type and whitespace | |
| r'($id)(\s*)(\()'), # method name + open brace | |
| bygroups(using(this, state='inType'), Whitespace, | |
| Name.Function, Whitespace, Punctuation), | |
| 'insideMethodDeclArgs'), | |
| # ArgType argName, | |
| (s(r'($type)(\s+)($id)(\s*)(,)'), | |
| bygroups(using(this, state='inType'), Whitespace, Name.Variable, | |
| Whitespace, Punctuation)), | |
| # ArgType argName) | |
| # Covered in 'insideParen' state | |
| # ArgType argName -> ArgType| | |
| (s(r'($type)(\s+)($id)(\s*)(\->)(\s*)($type)(\|)'), | |
| bygroups(using(this, state='inType'), Whitespace, Name.Variable, | |
| Whitespace, Punctuation, Whitespace, using(this, state='inType'), | |
| Punctuation)), | |
| # ArgType argName| | |
| (s(r'($type)(\s+)($id)(\s*)(\|)'), | |
| bygroups(using(this, state='inType'), Whitespace, Name.Variable, | |
| Whitespace, Punctuation)), | |
| # Type var | |
| (s(r'($type)([ \t]+)($id)'), | |
| bygroups(using(this, state='inType'), Whitespace, | |
| Name.Variable)), | |
| (r'\(', Punctuation, 'insideParen'), | |
| (r'\{', Punctuation, 'insideBrace'), | |
| (r'\s+', Whitespace), | |
| (r'.', Text) | |
| ], | |
| 'insideParen': [ | |
| (r'\)', Punctuation, '#pop'), | |
| include('root'), | |
| ], | |
| 'insideMethodDeclArgs': [ | |
| (r'\)', Punctuation, '#pop'), | |
| (s(r'($type)(\s+)($id)(\s*)(\))'), | |
| bygroups(using(this, state='inType'), Whitespace, Name.Variable, | |
| Whitespace, Punctuation), '#pop'), | |
| include('root'), | |
| ], | |
| 'insideBrace': [ | |
| (r'\}', Punctuation, '#pop'), | |
| include('root'), | |
| ], | |
| 'inheritance': [ | |
| (r'\s+', Whitespace), # Whitespace | |
| (r':|,', Punctuation), | |
| (r'(?:(\w+)(::))?(\w+)', | |
| bygroups(Name.Namespace, Punctuation, Name.Class)), | |
| (r'\{', Punctuation, '#pop') | |
| ], | |
| 'using': [ | |
| (r'[ \t]+', Whitespace), # consume whitespaces | |
| (r'(\[)(\w+)(\])', | |
| bygroups(Punctuation, Comment.Special, Punctuation)), # ffi | |
| (r'(\")?([\w.]+)(\")?', | |
| bygroups(Punctuation, Name.Namespace, Punctuation)), # podname | |
| (r'::', Punctuation, 'usingClass'), | |
| default('#pop') | |
| ], | |
| 'usingClass': [ | |
| (r'[ \t]+', Whitespace), # consume whitespaces | |
| (r'(as)(\s+)(\w+)', | |
| bygroups(Keyword.Declaration, Whitespace, Name.Class), '#pop:2'), | |
| (r'[\w$]+', Name.Class), | |
| default('#pop:2') # jump out to root state | |
| ], | |
| 'facet': [ | |
| (r'\s+', Whitespace), | |
| (r'\{', Punctuation, 'facetFields'), | |
| default('#pop') | |
| ], | |
| 'facetFields': [ | |
| include('comments'), | |
| include('literals'), | |
| include('operators'), | |
| (r'\s+', Whitespace), | |
| (r'(\s*)(\w+)(\s*)(=)', bygroups(Whitespace, Name, Whitespace, Operator)), | |
| (r'\}', Punctuation, '#pop'), | |
| (r'\s+', Whitespace), | |
| (r'.', Text) | |
| ], | |
| } | |
Xet Storage Details
- Size:
- 10.2 kB
- Xet hash:
- 1a9488ce6eb63b6011d79e3e0ce804305253ca02b1eb9f45ae09a2b101b2dd80
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.