eric6/ThirdParty/Pygments/pygments/lexers/teraterm.py

changeset 7701
25f42e208e08
parent 7547
21b0534faebc
child 7983
54c5cfbb1e29
diff -r a3cf077a8db3 -r 25f42e208e08 eric6/ThirdParty/Pygments/pygments/lexers/teraterm.py
--- a/eric6/ThirdParty/Pygments/pygments/lexers/teraterm.py	Tue Sep 15 18:46:58 2020 +0200
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/teraterm.py	Tue Sep 15 19:09:05 2020 +0200
@@ -1,158 +1,335 @@
-# -*- coding: utf-8 -*-
-"""
-    pygments.lexers.teraterm
-    ~~~~~~~~~~~~~~~~~~~~~~~~
-
-    Lexer for Tera Term macro files.
-
-    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
-"""
-
-import re
-
-from pygments.lexer import RegexLexer, include, bygroups
-from pygments.token import Text, Comment, Operator, Name, String, \
-    Number, Keyword
-
-__all__ = ['TeraTermLexer']
-
-
-class TeraTermLexer(RegexLexer):
-    """
-    For `Tera Term <https://ttssh2.osdn.jp/>`_ macro source code.
-
-    .. versionadded:: 2.4
-    """
-    name = 'Tera Term macro'
-    aliases = ['ttl', 'teraterm', 'teratermmacro']
-    filenames = ['*.ttl']
-    mimetypes = ['text/x-teratermmacro']
-
-    tokens = {
-        'root': [
-            include('comments'),
-            include('labels'),
-            include('commands'),
-            include('builtin-variables'),
-            include('user-variables'),
-            include('operators'),
-            include('numeric-literals'),
-            include('string-literals'),
-            include('all-whitespace'),
-            (r'[^\s]', Text),
-        ],
-        'comments': [
-            (r';[^\r\n]*', Comment.Single),
-            (r'/\*', Comment.Multiline, 'in-comment'),
-        ],
-        'in-comment': [
-            (r'\*/', Comment.Multiline, '#pop'),
-            (r'[^*/]+', Comment.Multiline),
-            (r'[*/]', Comment.Multiline)
-        ],
-        'labels': [
-            (r'(?i)^(\s*)(:[0-9a-z_]+)', bygroups(Text, Name.Label)),
-        ],
-        'commands': [
-            (
-                r'(?i)\b('
-                r'basename|beep|bplusrecv|bplussend|break|bringupbox|'
-                r'callmenu|changedir|checksum16|checksum16file|'
-                r'checksum32|checksum32file|checksum8|checksum8file|'
-                r'clearscreen|clipb2var|closesbox|closett|code2str|'
-                r'connect|continue|crc16|crc16file|crc32|crc32file|'
-                r'cygconnect|delpassword|dirname|dirnamebox|disconnect|'
-                r'dispstr|do|else|elseif|enablekeyb|end|endif|enduntil|'
-                r'endwhile|exec|execcmnd|exit|expandenv|fileclose|'
-                r'fileconcat|filecopy|filecreate|filedelete|filelock|'
-                r'filemarkptr|filenamebox|fileopen|fileread|filereadln|'
-                r'filerename|filesearch|fileseek|fileseekback|filestat|'
-                r'filestrseek|filestrseek2|filetruncate|fileunlock|'
-                r'filewrite|filewriteln|findclose|findfirst|findnext|'
-                r'flushrecv|foldercreate|folderdelete|foldersearch|for|'
-                r'getdate|getdir|getenv|getfileattr|gethostname|'
-                r'getipv4addr|getipv6addr|getmodemstatus|getpassword|'
-                r'getspecialfolder|gettime|gettitle|getttdir|getver|'
-                r'if|ifdefined|include|inputbox|int2str|intdim|'
-                r'ispassword|kmtfinish|kmtget|kmtrecv|kmtsend|listbox|'
-                r'loadkeymap|logautoclosemode|logclose|loginfo|logopen|'
-                r'logpause|logrotate|logstart|logwrite|loop|makepath|'
-                r'messagebox|mpause|next|passwordbox|pause|quickvanrecv|'
-                r'quickvansend|random|recvln|regexoption|restoresetup|'
-                r'return|rotateleft|rotateright|scprecv|scpsend|send|'
-                r'sendbreak|sendbroadcast|sendfile|sendkcode|sendln|'
-                r'sendlnbroadcast|sendlnmulticast|sendmulticast|setbaud|'
-                r'setdate|setdebug|setdir|setdlgpos|setdtr|setecho|'
-                r'setenv|setexitcode|setfileattr|setflowctrl|'
-                r'setmulticastname|setpassword|setrts|setsync|settime|'
-                r'settitle|show|showtt|sprintf|sprintf2|statusbox|'
-                r'str2code|str2int|strcompare|strconcat|strcopy|strdim|'
-                r'strinsert|strjoin|strlen|strmatch|strremove|'
-                r'strreplace|strscan|strspecial|strsplit|strtrim|'
-                r'testlink|then|tolower|toupper|unlink|until|uptime|'
-                r'var2clipb|wait|wait4all|waitevent|waitln|waitn|'
-                r'waitrecv|waitregex|while|xmodemrecv|xmodemsend|'
-                r'yesnobox|ymodemrecv|ymodemsend|zmodemrecv|zmodemsend'
-                r')\b',
-                Keyword,
-            ),
-            (
-                r'(?i)(call|goto)([ \t]+)([0-9a-z_]+)',
-                bygroups(Keyword, Text, Name.Label),
-            )
-        ],
-        'builtin-variables': [
-            (
-                r'(?i)('
-                r'groupmatchstr1|groupmatchstr2|groupmatchstr3|'
-                r'groupmatchstr4|groupmatchstr5|groupmatchstr6|'
-                r'groupmatchstr7|groupmatchstr8|groupmatchstr9|'
-                r'param1|param2|param3|param4|param5|param6|'
-                r'param7|param8|param9|paramcnt|params|'
-                r'inputstr|matchstr|mtimeout|result|timeout'
-                r')\b',
-                Name.Builtin
-            ),
-        ],
-        'user-variables': [
-            (r'(?i)[A-Z_][A-Z0-9_]*', Name.Variable),
-        ],
-        'numeric-literals': [
-            (r'(-?)([0-9]+)', bygroups(Operator, Number.Integer)),
-            (r'(?i)\$[0-9a-f]+', Number.Hex),
-        ],
-        'string-literals': [
-            (r'(?i)#(?:[0-9]+|\$[0-9a-f]+)', String.Char),
-            (r"'", String.Single, 'in-single-string'),
-            (r'"', String.Double, 'in-double-string'),
-        ],
-        'in-general-string': [
-            (r'[\\][\\nt]', String.Escape),  # Only three escapes are supported.
-            (r'.', String),
-        ],
-        'in-single-string': [
-            (r"'", String.Single, '#pop'),
-            include('in-general-string'),
-        ],
-        'in-double-string': [
-            (r'"', String.Double, '#pop'),
-            include('in-general-string'),
-        ],
-        'operators': [
-            (r'and|not|or|xor', Operator.Word),
-            (r'[!%&*+<=>^~\|\/-]+', Operator),
-            (r'[()]', String.Symbol),
-        ],
-        'all-whitespace': [
-            (r'[\s]+', Text),
-        ],
-    }
-
-    # Turtle and Tera Term macro files share the same file extension
-    # but each has a recognizable and distinct syntax.
-    def analyse_text(text):
-        result = 0.0
-        if re.search(TeraTermLexer.tokens['commands'][0][0], text):
-            result += 0.01
-        return result
+# -*- coding: utf-8 -*-
+"""
+    pygments.lexers.teraterm
+    ~~~~~~~~~~~~~~~~~~~~~~~~
+
+    Lexer for Tera Term macro files.
+
+    :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+"""
+
+import re
+
+from pygments.lexer import RegexLexer, include, bygroups
+from pygments.token import Text, Comment, Operator, Name, String, \
+    Number, Keyword
+
+__all__ = ['TeraTermLexer']
+
+
+class TeraTermLexer(RegexLexer):
+    """
+    For `Tera Term <https://ttssh2.osdn.jp/>`_ macro source code.
+
+    .. versionadded:: 2.4
+    """
+    name = 'Tera Term macro'
+    aliases = ['ttl', 'teraterm', 'teratermmacro']
+    filenames = ['*.ttl']
+    mimetypes = ['text/x-teratermmacro']
+
+    tokens = {
+        'root': [
+            include('comments'),
+            include('labels'),
+            include('commands'),
+            include('builtin-variables'),
+            include('user-variables'),
+            include('operators'),
+            include('numeric-literals'),
+            include('string-literals'),
+            include('all-whitespace'),
+            (r'\S', Text),
+        ],
+        'comments': [
+            (r';[^\r\n]*', Comment.Single),
+            (r'/\*', Comment.Multiline, 'in-comment'),
+        ],
+        'in-comment': [
+            (r'\*/', Comment.Multiline, '#pop'),
+            (r'[^*/]+', Comment.Multiline),
+            (r'[*/]', Comment.Multiline)
+        ],
+        'labels': [
+            (r'(?i)^(\s*)(:[a-z0-9_]+)', bygroups(Text, Name.Label)),
+        ],
+        'commands': [
+            (
+                r'(?i)\b('
+                r'basename|'
+                r'beep|'
+                r'bplusrecv|'
+                r'bplussend|'
+                r'break|'
+                r'bringupbox|'
+                # 'call' is handled separately.
+                r'callmenu|'
+                r'changedir|'
+                r'checksum16|'
+                r'checksum16file|'
+                r'checksum32|'
+                r'checksum32file|'
+                r'checksum8|'
+                r'checksum8file|'
+                r'clearscreen|'
+                r'clipb2var|'
+                r'closesbox|'
+                r'closett|'
+                r'code2str|'
+                r'connect|'
+                r'continue|'
+                r'crc16|'
+                r'crc16file|'
+                r'crc32|'
+                r'crc32file|'
+                r'cygconnect|'
+                r'delpassword|'
+                r'dirname|'
+                r'dirnamebox|'
+                r'disconnect|'
+                r'dispstr|'
+                r'do|'
+                r'else|'
+                r'elseif|'
+                r'enablekeyb|'
+                r'end|'
+                r'endif|'
+                r'enduntil|'
+                r'endwhile|'
+                r'exec|'
+                r'execcmnd|'
+                r'exit|'
+                r'expandenv|'
+                r'fileclose|'
+                r'fileconcat|'
+                r'filecopy|'
+                r'filecreate|'
+                r'filedelete|'
+                r'filelock|'
+                r'filemarkptr|'
+                r'filenamebox|'
+                r'fileopen|'
+                r'fileread|'
+                r'filereadln|'
+                r'filerename|'
+                r'filesearch|'
+                r'fileseek|'
+                r'fileseekback|'
+                r'filestat|'
+                r'filestrseek|'
+                r'filestrseek2|'
+                r'filetruncate|'
+                r'fileunlock|'
+                r'filewrite|'
+                r'filewriteln|'
+                r'findclose|'
+                r'findfirst|'
+                r'findnext|'
+                r'flushrecv|'
+                r'foldercreate|'
+                r'folderdelete|'
+                r'foldersearch|'
+                r'for|'
+                r'getdate|'
+                r'getdir|'
+                r'getenv|'
+                r'getfileattr|'
+                r'gethostname|'
+                r'getipv4addr|'
+                r'getipv6addr|'
+                r'getmodemstatus|'
+                r'getpassword|'
+                r'getspecialfolder|'
+                r'gettime|'
+                r'gettitle|'
+                r'getttdir|'
+                r'getver|'
+                # 'goto' is handled separately.
+                r'if|'
+                r'ifdefined|'
+                r'include|'
+                r'inputbox|'
+                r'int2str|'
+                r'intdim|'
+                r'ispassword|'
+                r'kmtfinish|'
+                r'kmtget|'
+                r'kmtrecv|'
+                r'kmtsend|'
+                r'listbox|'
+                r'loadkeymap|'
+                r'logautoclosemode|'
+                r'logclose|'
+                r'loginfo|'
+                r'logopen|'
+                r'logpause|'
+                r'logrotate|'
+                r'logstart|'
+                r'logwrite|'
+                r'loop|'
+                r'makepath|'
+                r'messagebox|'
+                r'mpause|'
+                r'next|'
+                r'passwordbox|'
+                r'pause|'
+                r'quickvanrecv|'
+                r'quickvansend|'
+                r'random|'
+                r'recvln|'
+                r'regexoption|'
+                r'restoresetup|'
+                r'return|'
+                r'rotateleft|'
+                r'rotateright|'
+                r'scprecv|'
+                r'scpsend|'
+                r'send|'
+                r'sendbreak|'
+                r'sendbroadcast|'
+                r'sendfile|'
+                r'sendkcode|'
+                r'sendln|'
+                r'sendlnbroadcast|'
+                r'sendlnmulticast|'
+                r'sendmulticast|'
+                r'setbaud|'
+                r'setdate|'
+                r'setdebug|'
+                r'setdir|'
+                r'setdlgpos|'
+                r'setdtr|'
+                r'setecho|'
+                r'setenv|'
+                r'setexitcode|'
+                r'setfileattr|'
+                r'setflowctrl|'
+                r'setmulticastname|'
+                r'setpassword|'
+                r'setrts|'
+                r'setspeed|'
+                r'setsync|'
+                r'settime|'
+                r'settitle|'
+                r'show|'
+                r'showtt|'
+                r'sprintf|'
+                r'sprintf2|'
+                r'statusbox|'
+                r'str2code|'
+                r'str2int|'
+                r'strcompare|'
+                r'strconcat|'
+                r'strcopy|'
+                r'strdim|'
+                r'strinsert|'
+                r'strjoin|'
+                r'strlen|'
+                r'strmatch|'
+                r'strremove|'
+                r'strreplace|'
+                r'strscan|'
+                r'strspecial|'
+                r'strsplit|'
+                r'strtrim|'
+                r'testlink|'
+                r'then|'
+                r'tolower|'
+                r'toupper|'
+                r'unlink|'
+                r'until|'
+                r'uptime|'
+                r'var2clipb|'
+                r'wait|'
+                r'wait4all|'
+                r'waitevent|'
+                r'waitln|'
+                r'waitn|'
+                r'waitrecv|'
+                r'waitregex|'
+                r'while|'
+                r'xmodemrecv|'
+                r'xmodemsend|'
+                r'yesnobox|'
+                r'ymodemrecv|'
+                r'ymodemsend|'
+                r'zmodemrecv|'
+                r'zmodemsend'
+                r')\b',
+                Keyword,
+            ),
+            (r'(?i)(call|goto)([ \t]+)([a-z0-9_]+)',
+             bygroups(Keyword, Text, Name.Label)),
+        ],
+        'builtin-variables': [
+            (
+                r'(?i)('
+                r'groupmatchstr1|'
+                r'groupmatchstr2|'
+                r'groupmatchstr3|'
+                r'groupmatchstr4|'
+                r'groupmatchstr5|'
+                r'groupmatchstr6|'
+                r'groupmatchstr7|'
+                r'groupmatchstr8|'
+                r'groupmatchstr9|'
+                r'inputstr|'
+                r'matchstr|'
+                r'mtimeout|'
+                r'param1|'
+                r'param2|'
+                r'param3|'
+                r'param4|'
+                r'param5|'
+                r'param6|'
+                r'param7|'
+                r'param8|'
+                r'param9|'
+                r'paramcnt|'
+                r'params|'
+                r'result|'
+                r'timeout'
+                r')\b',
+                Name.Builtin
+            ),
+        ],
+        'user-variables': [
+            (r'(?i)[a-z_][a-z0-9_]*', Name.Variable),
+        ],
+        'numeric-literals': [
+            (r'(-?)([0-9]+)', bygroups(Operator, Number.Integer)),
+            (r'(?i)\$[0-9a-f]+', Number.Hex),
+        ],
+        'string-literals': [
+            (r'(?i)#(?:[0-9]+|\$[0-9a-f]+)', String.Char),
+            (r"'", String.Single, 'in-single-string'),
+            (r'"', String.Double, 'in-double-string'),
+        ],
+        'in-general-string': [
+            (r'\\[\\nt]', String.Escape),  # Only three escapes are supported.
+            (r'.', String),
+        ],
+        'in-single-string': [
+            (r"'", String.Single, '#pop'),
+            include('in-general-string'),
+        ],
+        'in-double-string': [
+            (r'"', String.Double, '#pop'),
+            include('in-general-string'),
+        ],
+        'operators': [
+            (r'and|not|or|xor', Operator.Word),
+            (r'[!%&*+<=>^~\|\/-]+', Operator),
+            (r'[()]', String.Symbol),
+        ],
+        'all-whitespace': [
+            (r'\s+', Text),
+        ],
+    }
+
+    # Turtle and Tera Term macro files share the same file extension
+    # but each has a recognizable and distinct syntax.
+    def analyse_text(text):
+        if re.search(TeraTermLexer.tokens['commands'][0][0], text):
+            return 0.01

eric ide

mercurial