--- a/eric6/ThirdParty/Pygments/pygments/lexers/arrow.py Thu Jan 14 18:06:56 2021 +0100 +++ b/eric6/ThirdParty/Pygments/pygments/lexers/arrow.py Thu Jan 14 18:14:15 2021 +0100 @@ -1,117 +1,117 @@ -# -*- coding: utf-8 -*- -""" - pygments.lexers.arrow - ~~~~~~~~~~~~~~~~~~~~~ - - Lexer for Arrow. - - :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. -""" - -from pygments.lexer import RegexLexer, bygroups, default, include -from pygments.token import Text, Operator, Keyword, Punctuation, Name, \ - String, Number - -__all__ = ['ArrowLexer'] - -TYPES = r'\b(int|bool|char)((?:\[\])*)(?=\s+)' -IDENT = r'([a-zA-Z_][a-zA-Z0-9_]*)' -DECL = TYPES + r'(\s+)' + IDENT - - -class ArrowLexer(RegexLexer): - """ - Lexer for Arrow: https://pypi.org/project/py-arrow-lang/ - - .. versionadded:: 2.7 - """ - - name = 'Arrow' - aliases = ['arrow'] - filenames = ['*.arw'] - - tokens = { - 'root': [ - (r'\s+', Text), - (r'^[|\s]+', Punctuation), - include('blocks'), - include('statements'), - include('expressions'), - ], - 'blocks': [ - (r'(function)(\n+)(/-->)(\s*)' + - DECL + # 4 groups - r'(\()', bygroups( - Keyword.Reserved, Text, Punctuation, - Text, Keyword.Type, Punctuation, Text, - Name.Function, Punctuation - ), 'fparams'), - (r'/-->$|\\-->$|/--<|\\--<|\^', Punctuation), - ], - 'statements': [ - (DECL, bygroups(Keyword.Type, Punctuation, Text, Name.Variable)), - (r'\[', Punctuation, 'index'), - (r'=', Operator), - (r'require|main', Keyword.Reserved), - (r'print', Keyword.Reserved, 'print'), - ], - 'expressions': [ - (r'\s+', Text), - (r'[0-9]+', Number.Integer), - (r'true|false', Keyword.Constant), - (r"'", String.Char, 'char'), - (r'"', String.Double, 'string'), - (r'\{', Punctuation, 'array'), - (r'==|!=|<|>|\+|-|\*|/|%', Operator), - (r'and|or|not|length', Operator.Word), - (r'(input)(\s+)(int|char\[\])', bygroups( - Keyword.Reserved, Text, Keyword.Type - )), - (IDENT + r'(\()', bygroups( - Name.Function, Punctuation - ), 'fargs'), - (IDENT, Name.Variable), - (r'\[', Punctuation, 'index'), - (r'\(', Punctuation, 'expressions'), - (r'\)', Punctuation, '#pop'), - ], - 'print': [ - include('expressions'), - (r',', Punctuation), - default('#pop'), - ], - 'fparams': [ - (DECL, bygroups(Keyword.Type, Punctuation, Text, Name.Variable)), - (r',', Punctuation), - (r'\)', Punctuation, '#pop'), - ], - 'escape': [ - (r'\\(["\\/abfnrtv]|[0-9]{1,3}|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})', - String.Escape), - ], - 'char': [ - (r"'", String.Char, '#pop'), - include('escape'), - (r"[^'\\]", String.Char), - ], - 'string': [ - (r'"', String.Double, '#pop'), - include('escape'), - (r'[^"\\]+', String.Double), - ], - 'array': [ - include('expressions'), - (r'\}', Punctuation, '#pop'), - (r',', Punctuation), - ], - 'fargs': [ - include('expressions'), - (r'\)', Punctuation, '#pop'), - (r',', Punctuation), - ], - 'index': [ - include('expressions'), - (r'\]', Punctuation, '#pop'), - ], - } +# -*- coding: utf-8 -*- +""" + pygments.lexers.arrow + ~~~~~~~~~~~~~~~~~~~~~ + + Lexer for Arrow. + + :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS. + :license: BSD, see LICENSE for details. +""" + +from pygments.lexer import RegexLexer, bygroups, default, include +from pygments.token import Text, Operator, Keyword, Punctuation, Name, \ + String, Number + +__all__ = ['ArrowLexer'] + +TYPES = r'\b(int|bool|char)((?:\[\])*)(?=\s+)' +IDENT = r'([a-zA-Z_][a-zA-Z0-9_]*)' +DECL = TYPES + r'(\s+)' + IDENT + + +class ArrowLexer(RegexLexer): + """ + Lexer for Arrow: https://pypi.org/project/py-arrow-lang/ + + .. versionadded:: 2.7 + """ + + name = 'Arrow' + aliases = ['arrow'] + filenames = ['*.arw'] + + tokens = { + 'root': [ + (r'\s+', Text), + (r'^[|\s]+', Punctuation), + include('blocks'), + include('statements'), + include('expressions'), + ], + 'blocks': [ + (r'(function)(\n+)(/-->)(\s*)' + + DECL + # 4 groups + r'(\()', bygroups( + Keyword.Reserved, Text, Punctuation, + Text, Keyword.Type, Punctuation, Text, + Name.Function, Punctuation + ), 'fparams'), + (r'/-->$|\\-->$|/--<|\\--<|\^', Punctuation), + ], + 'statements': [ + (DECL, bygroups(Keyword.Type, Punctuation, Text, Name.Variable)), + (r'\[', Punctuation, 'index'), + (r'=', Operator), + (r'require|main', Keyword.Reserved), + (r'print', Keyword.Reserved, 'print'), + ], + 'expressions': [ + (r'\s+', Text), + (r'[0-9]+', Number.Integer), + (r'true|false', Keyword.Constant), + (r"'", String.Char, 'char'), + (r'"', String.Double, 'string'), + (r'\{', Punctuation, 'array'), + (r'==|!=|<|>|\+|-|\*|/|%', Operator), + (r'and|or|not|length', Operator.Word), + (r'(input)(\s+)(int|char\[\])', bygroups( + Keyword.Reserved, Text, Keyword.Type + )), + (IDENT + r'(\()', bygroups( + Name.Function, Punctuation + ), 'fargs'), + (IDENT, Name.Variable), + (r'\[', Punctuation, 'index'), + (r'\(', Punctuation, 'expressions'), + (r'\)', Punctuation, '#pop'), + ], + 'print': [ + include('expressions'), + (r',', Punctuation), + default('#pop'), + ], + 'fparams': [ + (DECL, bygroups(Keyword.Type, Punctuation, Text, Name.Variable)), + (r',', Punctuation), + (r'\)', Punctuation, '#pop'), + ], + 'escape': [ + (r'\\(["\\/abfnrtv]|[0-9]{1,3}|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})', + String.Escape), + ], + 'char': [ + (r"'", String.Char, '#pop'), + include('escape'), + (r"[^'\\]", String.Char), + ], + 'string': [ + (r'"', String.Double, '#pop'), + include('escape'), + (r'[^"\\]+', String.Double), + ], + 'array': [ + include('expressions'), + (r'\}', Punctuation, '#pop'), + (r',', Punctuation), + ], + 'fargs': [ + include('expressions'), + (r'\)', Punctuation, '#pop'), + (r',', Punctuation), + ], + 'index': [ + include('expressions'), + (r'\]', Punctuation, '#pop'), + ], + }