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

changeset 7983
54c5cfbb1e29
parent 7701
25f42e208e08
--- a/eric6/ThirdParty/Pygments/pygments/lexers/automation.py	Thu Jan 14 18:06:56 2021 +0100
+++ b/eric6/ThirdParty/Pygments/pygments/lexers/automation.py	Thu Jan 14 18:14:15 2021 +0100
@@ -1,374 +1,374 @@
-# -*- coding: utf-8 -*-
-"""
-    pygments.lexers.automation
-    ~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-    Lexers for automation scripting languages.
-
-    :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
-    :license: BSD, see LICENSE for details.
-"""
-
-from pygments.lexer import RegexLexer, include, bygroups, combined
-from pygments.token import Text, Comment, Operator, Name, String, \
-    Number, Punctuation, Generic
-
-__all__ = ['AutohotkeyLexer', 'AutoItLexer']
-
-
-class AutohotkeyLexer(RegexLexer):
-    """
-    For `autohotkey <http://www.autohotkey.com/>`_ source code.
-
-    .. versionadded:: 1.4
-    """
-    name = 'autohotkey'
-    aliases = ['ahk', 'autohotkey']
-    filenames = ['*.ahk', '*.ahkl']
-    mimetypes = ['text/x-autohotkey']
-
-    tokens = {
-        'root': [
-            (r'^(\s*)(/\*)', bygroups(Text, Comment.Multiline), 'incomment'),
-            (r'^(\s*)(\()', bygroups(Text, Generic), 'incontinuation'),
-            (r'\s+;.*?$', Comment.Single),
-            (r'^;.*?$', Comment.Single),
-            (r'[]{}(),;[]', Punctuation),
-            (r'(in|is|and|or|not)\b', Operator.Word),
-            (r'\%[a-zA-Z_#@$][\w#@$]*\%', Name.Variable),
-            (r'!=|==|:=|\.=|<<|>>|[-~+/*%=<>&^|?:!.]', Operator),
-            include('commands'),
-            include('labels'),
-            include('builtInFunctions'),
-            include('builtInVariables'),
-            (r'"', String, combined('stringescape', 'dqs')),
-            include('numbers'),
-            (r'[a-zA-Z_#@$][\w#@$]*', Name),
-            (r'\\|\'', Text),
-            (r'\`([,%`abfnrtv\-+;])', String.Escape),
-            include('garbage'),
-        ],
-        'incomment': [
-            (r'^\s*\*/', Comment.Multiline, '#pop'),
-            (r'[^*/]', Comment.Multiline),
-            (r'[*/]', Comment.Multiline)
-        ],
-        'incontinuation': [
-            (r'^\s*\)', Generic, '#pop'),
-            (r'[^)]', Generic),
-            (r'[)]', Generic),
-        ],
-        'commands': [
-            (r'(?i)^(\s*)(global|local|static|'
-             r'#AllowSameLineComments|#ClipboardTimeout|#CommentFlag|'
-             r'#ErrorStdOut|#EscapeChar|#HotkeyInterval|#HotkeyModifierTimeout|'
-             r'#Hotstring|#IfWinActive|#IfWinExist|#IfWinNotActive|'
-             r'#IfWinNotExist|#IncludeAgain|#Include|#InstallKeybdHook|'
-             r'#InstallMouseHook|#KeyHistory|#LTrim|#MaxHotkeysPerInterval|'
-             r'#MaxMem|#MaxThreads|#MaxThreadsBuffer|#MaxThreadsPerHotkey|'
-             r'#NoEnv|#NoTrayIcon|#Persistent|#SingleInstance|#UseHook|'
-             r'#WinActivateForce|AutoTrim|BlockInput|Break|Click|ClipWait|'
-             r'Continue|Control|ControlClick|ControlFocus|ControlGetFocus|'
-             r'ControlGetPos|ControlGetText|ControlGet|ControlMove|ControlSend|'
-             r'ControlSendRaw|ControlSetText|CoordMode|Critical|'
-             r'DetectHiddenText|DetectHiddenWindows|Drive|DriveGet|'
-             r'DriveSpaceFree|Edit|Else|EnvAdd|EnvDiv|EnvGet|EnvMult|EnvSet|'
-             r'EnvSub|EnvUpdate|Exit|ExitApp|FileAppend|'
-             r'FileCopy|FileCopyDir|FileCreateDir|FileCreateShortcut|'
-             r'FileDelete|FileGetAttrib|FileGetShortcut|FileGetSize|'
-             r'FileGetTime|FileGetVersion|FileInstall|FileMove|FileMoveDir|'
-             r'FileRead|FileReadLine|FileRecycle|FileRecycleEmpty|'
-             r'FileRemoveDir|FileSelectFile|FileSelectFolder|FileSetAttrib|'
-             r'FileSetTime|FormatTime|GetKeyState|Gosub|Goto|GroupActivate|'
-             r'GroupAdd|GroupClose|GroupDeactivate|Gui|GuiControl|'
-             r'GuiControlGet|Hotkey|IfEqual|IfExist|IfGreaterOrEqual|IfGreater|'
-             r'IfInString|IfLess|IfLessOrEqual|IfMsgBox|IfNotEqual|IfNotExist|'
-             r'IfNotInString|IfWinActive|IfWinExist|IfWinNotActive|'
-             r'IfWinNotExist|If |ImageSearch|IniDelete|IniRead|IniWrite|'
-             r'InputBox|Input|KeyHistory|KeyWait|ListHotkeys|ListLines|'
-             r'ListVars|Loop|Menu|MouseClickDrag|MouseClick|MouseGetPos|'
-             r'MouseMove|MsgBox|OnExit|OutputDebug|Pause|PixelGetColor|'
-             r'PixelSearch|PostMessage|Process|Progress|Random|RegDelete|'
-             r'RegRead|RegWrite|Reload|Repeat|Return|RunAs|RunWait|Run|'
-             r'SendEvent|SendInput|SendMessage|SendMode|SendPlay|SendRaw|Send|'
-             r'SetBatchLines|SetCapslockState|SetControlDelay|'
-             r'SetDefaultMouseSpeed|SetEnv|SetFormat|SetKeyDelay|'
-             r'SetMouseDelay|SetNumlockState|SetScrollLockState|'
-             r'SetStoreCapslockMode|SetTimer|SetTitleMatchMode|'
-             r'SetWinDelay|SetWorkingDir|Shutdown|Sleep|Sort|SoundBeep|'
-             r'SoundGet|SoundGetWaveVolume|SoundPlay|SoundSet|'
-             r'SoundSetWaveVolume|SplashImage|SplashTextOff|SplashTextOn|'
-             r'SplitPath|StatusBarGetText|StatusBarWait|StringCaseSense|'
-             r'StringGetPos|StringLeft|StringLen|StringLower|StringMid|'
-             r'StringReplace|StringRight|StringSplit|StringTrimLeft|'
-             r'StringTrimRight|StringUpper|Suspend|SysGet|Thread|ToolTip|'
-             r'Transform|TrayTip|URLDownloadToFile|While|WinActivate|'
-             r'WinActivateBottom|WinClose|WinGetActiveStats|WinGetActiveTitle|'
-             r'WinGetClass|WinGetPos|WinGetText|WinGetTitle|WinGet|WinHide|'
-             r'WinKill|WinMaximize|WinMenuSelectItem|WinMinimizeAllUndo|'
-             r'WinMinimizeAll|WinMinimize|WinMove|WinRestore|WinSetTitle|'
-             r'WinSet|WinShow|WinWaitActive|WinWaitClose|WinWaitNotActive|'
-             r'WinWait)\b', bygroups(Text, Name.Builtin)),
-        ],
-        'builtInFunctions': [
-            (r'(?i)(Abs|ACos|Asc|ASin|ATan|Ceil|Chr|Cos|DllCall|Exp|FileExist|'
-             r'Floor|GetKeyState|IL_Add|IL_Create|IL_Destroy|InStr|IsFunc|'
-             r'IsLabel|Ln|Log|LV_Add|LV_Delete|LV_DeleteCol|LV_GetCount|'
-             r'LV_GetNext|LV_GetText|LV_Insert|LV_InsertCol|LV_Modify|'
-             r'LV_ModifyCol|LV_SetImageList|Mod|NumGet|NumPut|OnMessage|'
-             r'RegExMatch|RegExReplace|RegisterCallback|Round|SB_SetIcon|'
-             r'SB_SetParts|SB_SetText|Sin|Sqrt|StrLen|SubStr|Tan|TV_Add|'
-             r'TV_Delete|TV_GetChild|TV_GetCount|TV_GetNext|TV_Get|'
-             r'TV_GetParent|TV_GetPrev|TV_GetSelection|TV_GetText|TV_Modify|'
-             r'VarSetCapacity|WinActive|WinExist|Object|ComObjActive|'
-             r'ComObjArray|ComObjEnwrap|ComObjUnwrap|ComObjParameter|'
-             r'ComObjType|ComObjConnect|ComObjCreate|ComObjGet|ComObjError|'
-             r'ComObjValue|Insert|MinIndex|MaxIndex|Remove|SetCapacity|'
-             r'GetCapacity|GetAddress|_NewEnum|FileOpen|Read|Write|ReadLine|'
-             r'WriteLine|ReadNumType|WriteNumType|RawRead|RawWrite|Seek|Tell|'
-             r'Close|Next|IsObject|StrPut|StrGet|Trim|LTrim|RTrim)\b',
-             Name.Function),
-        ],
-        'builtInVariables': [
-            (r'(?i)(A_AhkPath|A_AhkVersion|A_AppData|A_AppDataCommon|'
-             r'A_AutoTrim|A_BatchLines|A_CaretX|A_CaretY|A_ComputerName|'
-             r'A_ControlDelay|A_Cursor|A_DDDD|A_DDD|A_DD|A_DefaultMouseSpeed|'
-             r'A_Desktop|A_DesktopCommon|A_DetectHiddenText|'
-             r'A_DetectHiddenWindows|A_EndChar|A_EventInfo|A_ExitReason|'
-             r'A_FormatFloat|A_FormatInteger|A_Gui|A_GuiEvent|A_GuiControl|'
-             r'A_GuiControlEvent|A_GuiHeight|A_GuiWidth|A_GuiX|A_GuiY|A_Hour|'
-             r'A_IconFile|A_IconHidden|A_IconNumber|A_IconTip|A_Index|'
-             r'A_IPAddress1|A_IPAddress2|A_IPAddress3|A_IPAddress4|A_ISAdmin|'
-             r'A_IsCompiled|A_IsCritical|A_IsPaused|A_IsSuspended|A_KeyDelay|'
-             r'A_Language|A_LastError|A_LineFile|A_LineNumber|A_LoopField|'
-             r'A_LoopFileAttrib|A_LoopFileDir|A_LoopFileExt|A_LoopFileFullPath|'
-             r'A_LoopFileLongPath|A_LoopFileName|A_LoopFileShortName|'
-             r'A_LoopFileShortPath|A_LoopFileSize|A_LoopFileSizeKB|'
-             r'A_LoopFileSizeMB|A_LoopFileTimeAccessed|A_LoopFileTimeCreated|'
-             r'A_LoopFileTimeModified|A_LoopReadLine|A_LoopRegKey|'
-             r'A_LoopRegName|A_LoopRegSubkey|A_LoopRegTimeModified|'
-             r'A_LoopRegType|A_MDAY|A_Min|A_MM|A_MMM|A_MMMM|A_Mon|A_MouseDelay|'
-             r'A_MSec|A_MyDocuments|A_Now|A_NowUTC|A_NumBatchLines|A_OSType|'
-             r'A_OSVersion|A_PriorHotkey|A_ProgramFiles|A_Programs|'
-             r'A_ProgramsCommon|A_ScreenHeight|A_ScreenWidth|A_ScriptDir|'
-             r'A_ScriptFullPath|A_ScriptName|A_Sec|A_Space|A_StartMenu|'
-             r'A_StartMenuCommon|A_Startup|A_StartupCommon|A_StringCaseSense|'
-             r'A_Tab|A_Temp|A_ThisFunc|A_ThisHotkey|A_ThisLabel|A_ThisMenu|'
-             r'A_ThisMenuItem|A_ThisMenuItemPos|A_TickCount|A_TimeIdle|'
-             r'A_TimeIdlePhysical|A_TimeSincePriorHotkey|A_TimeSinceThisHotkey|'
-             r'A_TitleMatchMode|A_TitleMatchModeSpeed|A_UserName|A_WDay|'
-             r'A_WinDelay|A_WinDir|A_WorkingDir|A_YDay|A_YEAR|A_YWeek|A_YYYY|'
-             r'Clipboard|ClipboardAll|ComSpec|ErrorLevel|ProgramFiles|True|'
-             r'False|A_IsUnicode|A_FileEncoding|A_OSVersion|A_PtrSize)\b',
-             Name.Variable),
-        ],
-        'labels': [
-            # hotkeys and labels
-            # technically, hotkey names are limited to named keys and buttons
-            (r'(^\s*)([^:\s("]+?:{1,2})', bygroups(Text, Name.Label)),
-            (r'(^\s*)(::[^:\s]+?::)', bygroups(Text, Name.Label)),
-        ],
-        'numbers': [
-            (r'(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?', Number.Float),
-            (r'\d+[eE][+-]?[0-9]+', Number.Float),
-            (r'0\d+', Number.Oct),
-            (r'0[xX][a-fA-F0-9]+', Number.Hex),
-            (r'\d+L', Number.Integer.Long),
-            (r'\d+', Number.Integer)
-        ],
-        'stringescape': [
-            (r'\"\"|\`([,%`abfnrtv])', String.Escape),
-        ],
-        'strings': [
-            (r'[^"\n]+', String),
-        ],
-        'dqs': [
-            (r'"', String, '#pop'),
-            include('strings')
-        ],
-        'garbage': [
-            (r'[^\S\n]', Text),
-            # (r'.', Text),      # no cheating
-        ],
-    }
-
-
-class AutoItLexer(RegexLexer):
-    """
-    For `AutoIt <http://www.autoitscript.com/site/autoit/>`_ files.
-
-    AutoIt is a freeware BASIC-like scripting language
-    designed for automating the Windows GUI and general scripting
-
-    .. versionadded:: 1.6
-    """
-    name = 'AutoIt'
-    aliases = ['autoit']
-    filenames = ['*.au3']
-    mimetypes = ['text/x-autoit']
-
-    # Keywords, functions, macros from au3.keywords.properties
-    # which can be found in AutoIt installed directory, e.g.
-    # c:\Program Files (x86)\AutoIt3\SciTE\au3.keywords.properties
-
-    keywords = """\
-    #include-once #include #endregion #forcedef #forceref #region
-    and byref case continueloop dim do else elseif endfunc endif
-    endselect exit exitloop for func global
-    if local next not or return select step
-    then to until wend while exit""".split()
-
-    functions = """\
-    abs acos adlibregister adlibunregister asc ascw asin assign atan
-    autoitsetoption autoitwingettitle autoitwinsettitle beep binary binarylen
-    binarymid binarytostring bitand bitnot bitor bitrotate bitshift bitxor
-    blockinput break call cdtray ceiling chr chrw clipget clipput consoleread
-    consolewrite consolewriteerror controlclick controlcommand controldisable
-    controlenable controlfocus controlgetfocus controlgethandle controlgetpos
-    controlgettext controlhide controllistview controlmove controlsend
-    controlsettext controlshow controltreeview cos dec dircopy dircreate
-    dirgetsize dirmove dirremove dllcall dllcalladdress dllcallbackfree
-    dllcallbackgetptr dllcallbackregister dllclose dllopen dllstructcreate
-    dllstructgetdata dllstructgetptr dllstructgetsize dllstructsetdata
-    drivegetdrive drivegetfilesystem drivegetlabel drivegetserial drivegettype
-    drivemapadd drivemapdel drivemapget drivesetlabel drivespacefree
-    drivespacetotal drivestatus envget envset envupdate eval execute exp
-    filechangedir fileclose filecopy filecreatentfslink filecreateshortcut
-    filedelete fileexists filefindfirstfile filefindnextfile fileflush
-    filegetattrib filegetencoding filegetlongname filegetpos filegetshortcut
-    filegetshortname filegetsize filegettime filegetversion fileinstall filemove
-    fileopen fileopendialog fileread filereadline filerecycle filerecycleempty
-    filesavedialog fileselectfolder filesetattrib filesetpos filesettime
-    filewrite filewriteline floor ftpsetproxy guicreate guictrlcreateavi
-    guictrlcreatebutton guictrlcreatecheckbox guictrlcreatecombo
-    guictrlcreatecontextmenu guictrlcreatedate guictrlcreatedummy
-    guictrlcreateedit guictrlcreategraphic guictrlcreategroup guictrlcreateicon
-    guictrlcreateinput guictrlcreatelabel guictrlcreatelist
-    guictrlcreatelistview guictrlcreatelistviewitem guictrlcreatemenu
-    guictrlcreatemenuitem guictrlcreatemonthcal guictrlcreateobj
-    guictrlcreatepic guictrlcreateprogress guictrlcreateradio
-    guictrlcreateslider guictrlcreatetab guictrlcreatetabitem
-    guictrlcreatetreeview guictrlcreatetreeviewitem guictrlcreateupdown
-    guictrldelete guictrlgethandle guictrlgetstate guictrlread guictrlrecvmsg
-    guictrlregisterlistviewsort guictrlsendmsg guictrlsendtodummy
-    guictrlsetbkcolor guictrlsetcolor guictrlsetcursor guictrlsetdata
-    guictrlsetdefbkcolor guictrlsetdefcolor guictrlsetfont guictrlsetgraphic
-    guictrlsetimage guictrlsetlimit guictrlsetonevent guictrlsetpos
-    guictrlsetresizing guictrlsetstate guictrlsetstyle guictrlsettip guidelete
-    guigetcursorinfo guigetmsg guigetstyle guiregistermsg guisetaccelerators
-    guisetbkcolor guisetcoord guisetcursor guisetfont guisethelp guiseticon
-    guisetonevent guisetstate guisetstyle guistartgroup guiswitch hex hotkeyset
-    httpsetproxy httpsetuseragent hwnd inetclose inetget inetgetinfo inetgetsize
-    inetread inidelete iniread inireadsection inireadsectionnames
-    inirenamesection iniwrite iniwritesection inputbox int isadmin isarray
-    isbinary isbool isdeclared isdllstruct isfloat ishwnd isint iskeyword
-    isnumber isobj isptr isstring log memgetstats mod mouseclick mouseclickdrag
-    mousedown mousegetcursor mousegetpos mousemove mouseup mousewheel msgbox
-    number objcreate objcreateinterface objevent objevent objget objname
-    onautoitexitregister onautoitexitunregister opt ping pixelchecksum
-    pixelgetcolor pixelsearch pluginclose pluginopen processclose processexists
-    processgetstats processlist processsetpriority processwait processwaitclose
-    progressoff progresson progressset ptr random regdelete regenumkey
-    regenumval regread regwrite round run runas runaswait runwait send
-    sendkeepactive seterror setextended shellexecute shellexecutewait shutdown
-    sin sleep soundplay soundsetwavevolume splashimageon splashoff splashtexton
-    sqrt srandom statusbargettext stderrread stdinwrite stdioclose stdoutread
-    string stringaddcr stringcompare stringformat stringfromasciiarray
-    stringinstr stringisalnum stringisalpha stringisascii stringisdigit
-    stringisfloat stringisint stringislower stringisspace stringisupper
-    stringisxdigit stringleft stringlen stringlower stringmid stringregexp
-    stringregexpreplace stringreplace stringright stringsplit stringstripcr
-    stringstripws stringtoasciiarray stringtobinary stringtrimleft
-    stringtrimright stringupper tan tcpaccept tcpclosesocket tcpconnect
-    tcplisten tcpnametoip tcprecv tcpsend tcpshutdown tcpstartup timerdiff
-    timerinit tooltip traycreateitem traycreatemenu traygetmsg trayitemdelete
-    trayitemgethandle trayitemgetstate trayitemgettext trayitemsetonevent
-    trayitemsetstate trayitemsettext traysetclick trayseticon traysetonevent
-    traysetpauseicon traysetstate traysettooltip traytip ubound udpbind
-    udpclosesocket udpopen udprecv udpsend udpshutdown udpstartup vargettype
-    winactivate winactive winclose winexists winflash wingetcaretpos
-    wingetclasslist wingetclientsize wingethandle wingetpos wingetprocess
-    wingetstate wingettext wingettitle winkill winlist winmenuselectitem
-    winminimizeall winminimizeallundo winmove winsetontop winsetstate
-    winsettitle winsettrans winwait winwaitactive winwaitclose
-    winwaitnotactive""".split()
-
-    macros = """\
-    @appdatacommondir @appdatadir @autoitexe @autoitpid @autoitversion
-    @autoitx64 @com_eventobj @commonfilesdir @compiled @computername @comspec
-    @cpuarch @cr @crlf @desktopcommondir @desktopdepth @desktopdir
-    @desktopheight @desktoprefresh @desktopwidth @documentscommondir @error
-    @exitcode @exitmethod @extended @favoritescommondir @favoritesdir
-    @gui_ctrlhandle @gui_ctrlid @gui_dragfile @gui_dragid @gui_dropid
-    @gui_winhandle @homedrive @homepath @homeshare @hotkeypressed @hour
-    @ipaddress1 @ipaddress2 @ipaddress3 @ipaddress4 @kblayout @lf
-    @logondnsdomain @logondomain @logonserver @mday @min @mon @msec @muilang
-    @mydocumentsdir @numparams @osarch @osbuild @oslang @osservicepack @ostype
-    @osversion @programfilesdir @programscommondir @programsdir @scriptdir
-    @scriptfullpath @scriptlinenumber @scriptname @sec @startmenucommondir
-    @startmenudir @startupcommondir @startupdir @sw_disable @sw_enable @sw_hide
-    @sw_lock @sw_maximize @sw_minimize @sw_restore @sw_show @sw_showdefault
-    @sw_showmaximized @sw_showminimized @sw_showminnoactive @sw_showna
-    @sw_shownoactivate @sw_shownormal @sw_unlock @systemdir @tab @tempdir
-    @tray_id @trayiconflashing @trayiconvisible @username @userprofiledir @wday
-    @windowsdir @workingdir @yday @year""".split()
-
-    tokens = {
-        'root': [
-            (r';.*\n', Comment.Single),
-            (r'(#comments-start|#cs)(.|\n)*?(#comments-end|#ce)',
-             Comment.Multiline),
-            (r'[\[\]{}(),;]', Punctuation),
-            (r'(and|or|not)\b', Operator.Word),
-            (r'[$|@][a-zA-Z_]\w*', Name.Variable),
-            (r'!=|==|:=|\.=|<<|>>|[-~+/*%=<>&^|?:!.]', Operator),
-            include('commands'),
-            include('labels'),
-            include('builtInFunctions'),
-            include('builtInMarcros'),
-            (r'"', String, combined('stringescape', 'dqs')),
-            include('numbers'),
-            (r'[a-zA-Z_#@$][\w#@$]*', Name),
-            (r'\\|\'', Text),
-            (r'\`([,%`abfnrtv\-+;])', String.Escape),
-            (r'_\n', Text),  # Line continuation
-            include('garbage'),
-        ],
-        'commands': [
-            (r'(?i)(\s*)(%s)\b' % '|'.join(keywords),
-             bygroups(Text, Name.Builtin)),
-        ],
-        'builtInFunctions': [
-            (r'(?i)(%s)\b' % '|'.join(functions),
-             Name.Function),
-        ],
-        'builtInMarcros': [
-            (r'(?i)(%s)\b' % '|'.join(macros),
-             Name.Variable.Global),
-        ],
-        'labels': [
-            # sendkeys
-            (r'(^\s*)(\{\S+?\})', bygroups(Text, Name.Label)),
-        ],
-        'numbers': [
-            (r'(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?', Number.Float),
-            (r'\d+[eE][+-]?[0-9]+', Number.Float),
-            (r'0\d+', Number.Oct),
-            (r'0[xX][a-fA-F0-9]+', Number.Hex),
-            (r'\d+L', Number.Integer.Long),
-            (r'\d+', Number.Integer)
-        ],
-        'stringescape': [
-            (r'\"\"|\`([,%`abfnrtv])', String.Escape),
-        ],
-        'strings': [
-            (r'[^"\n]+', String),
-        ],
-        'dqs': [
-            (r'"', String, '#pop'),
-            include('strings')
-        ],
-        'garbage': [
-            (r'[^\S\n]', Text),
-        ],
-    }
+# -*- coding: utf-8 -*-
+"""
+    pygments.lexers.automation
+    ~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+    Lexers for automation scripting languages.
+
+    :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+"""
+
+from pygments.lexer import RegexLexer, include, bygroups, combined
+from pygments.token import Text, Comment, Operator, Name, String, \
+    Number, Punctuation, Generic
+
+__all__ = ['AutohotkeyLexer', 'AutoItLexer']
+
+
+class AutohotkeyLexer(RegexLexer):
+    """
+    For `autohotkey <http://www.autohotkey.com/>`_ source code.
+
+    .. versionadded:: 1.4
+    """
+    name = 'autohotkey'
+    aliases = ['ahk', 'autohotkey']
+    filenames = ['*.ahk', '*.ahkl']
+    mimetypes = ['text/x-autohotkey']
+
+    tokens = {
+        'root': [
+            (r'^(\s*)(/\*)', bygroups(Text, Comment.Multiline), 'incomment'),
+            (r'^(\s*)(\()', bygroups(Text, Generic), 'incontinuation'),
+            (r'\s+;.*?$', Comment.Single),
+            (r'^;.*?$', Comment.Single),
+            (r'[]{}(),;[]', Punctuation),
+            (r'(in|is|and|or|not)\b', Operator.Word),
+            (r'\%[a-zA-Z_#@$][\w#@$]*\%', Name.Variable),
+            (r'!=|==|:=|\.=|<<|>>|[-~+/*%=<>&^|?:!.]', Operator),
+            include('commands'),
+            include('labels'),
+            include('builtInFunctions'),
+            include('builtInVariables'),
+            (r'"', String, combined('stringescape', 'dqs')),
+            include('numbers'),
+            (r'[a-zA-Z_#@$][\w#@$]*', Name),
+            (r'\\|\'', Text),
+            (r'\`([,%`abfnrtv\-+;])', String.Escape),
+            include('garbage'),
+        ],
+        'incomment': [
+            (r'^\s*\*/', Comment.Multiline, '#pop'),
+            (r'[^*/]', Comment.Multiline),
+            (r'[*/]', Comment.Multiline)
+        ],
+        'incontinuation': [
+            (r'^\s*\)', Generic, '#pop'),
+            (r'[^)]', Generic),
+            (r'[)]', Generic),
+        ],
+        'commands': [
+            (r'(?i)^(\s*)(global|local|static|'
+             r'#AllowSameLineComments|#ClipboardTimeout|#CommentFlag|'
+             r'#ErrorStdOut|#EscapeChar|#HotkeyInterval|#HotkeyModifierTimeout|'
+             r'#Hotstring|#IfWinActive|#IfWinExist|#IfWinNotActive|'
+             r'#IfWinNotExist|#IncludeAgain|#Include|#InstallKeybdHook|'
+             r'#InstallMouseHook|#KeyHistory|#LTrim|#MaxHotkeysPerInterval|'
+             r'#MaxMem|#MaxThreads|#MaxThreadsBuffer|#MaxThreadsPerHotkey|'
+             r'#NoEnv|#NoTrayIcon|#Persistent|#SingleInstance|#UseHook|'
+             r'#WinActivateForce|AutoTrim|BlockInput|Break|Click|ClipWait|'
+             r'Continue|Control|ControlClick|ControlFocus|ControlGetFocus|'
+             r'ControlGetPos|ControlGetText|ControlGet|ControlMove|ControlSend|'
+             r'ControlSendRaw|ControlSetText|CoordMode|Critical|'
+             r'DetectHiddenText|DetectHiddenWindows|Drive|DriveGet|'
+             r'DriveSpaceFree|Edit|Else|EnvAdd|EnvDiv|EnvGet|EnvMult|EnvSet|'
+             r'EnvSub|EnvUpdate|Exit|ExitApp|FileAppend|'
+             r'FileCopy|FileCopyDir|FileCreateDir|FileCreateShortcut|'
+             r'FileDelete|FileGetAttrib|FileGetShortcut|FileGetSize|'
+             r'FileGetTime|FileGetVersion|FileInstall|FileMove|FileMoveDir|'
+             r'FileRead|FileReadLine|FileRecycle|FileRecycleEmpty|'
+             r'FileRemoveDir|FileSelectFile|FileSelectFolder|FileSetAttrib|'
+             r'FileSetTime|FormatTime|GetKeyState|Gosub|Goto|GroupActivate|'
+             r'GroupAdd|GroupClose|GroupDeactivate|Gui|GuiControl|'
+             r'GuiControlGet|Hotkey|IfEqual|IfExist|IfGreaterOrEqual|IfGreater|'
+             r'IfInString|IfLess|IfLessOrEqual|IfMsgBox|IfNotEqual|IfNotExist|'
+             r'IfNotInString|IfWinActive|IfWinExist|IfWinNotActive|'
+             r'IfWinNotExist|If |ImageSearch|IniDelete|IniRead|IniWrite|'
+             r'InputBox|Input|KeyHistory|KeyWait|ListHotkeys|ListLines|'
+             r'ListVars|Loop|Menu|MouseClickDrag|MouseClick|MouseGetPos|'
+             r'MouseMove|MsgBox|OnExit|OutputDebug|Pause|PixelGetColor|'
+             r'PixelSearch|PostMessage|Process|Progress|Random|RegDelete|'
+             r'RegRead|RegWrite|Reload|Repeat|Return|RunAs|RunWait|Run|'
+             r'SendEvent|SendInput|SendMessage|SendMode|SendPlay|SendRaw|Send|'
+             r'SetBatchLines|SetCapslockState|SetControlDelay|'
+             r'SetDefaultMouseSpeed|SetEnv|SetFormat|SetKeyDelay|'
+             r'SetMouseDelay|SetNumlockState|SetScrollLockState|'
+             r'SetStoreCapslockMode|SetTimer|SetTitleMatchMode|'
+             r'SetWinDelay|SetWorkingDir|Shutdown|Sleep|Sort|SoundBeep|'
+             r'SoundGet|SoundGetWaveVolume|SoundPlay|SoundSet|'
+             r'SoundSetWaveVolume|SplashImage|SplashTextOff|SplashTextOn|'
+             r'SplitPath|StatusBarGetText|StatusBarWait|StringCaseSense|'
+             r'StringGetPos|StringLeft|StringLen|StringLower|StringMid|'
+             r'StringReplace|StringRight|StringSplit|StringTrimLeft|'
+             r'StringTrimRight|StringUpper|Suspend|SysGet|Thread|ToolTip|'
+             r'Transform|TrayTip|URLDownloadToFile|While|WinActivate|'
+             r'WinActivateBottom|WinClose|WinGetActiveStats|WinGetActiveTitle|'
+             r'WinGetClass|WinGetPos|WinGetText|WinGetTitle|WinGet|WinHide|'
+             r'WinKill|WinMaximize|WinMenuSelectItem|WinMinimizeAllUndo|'
+             r'WinMinimizeAll|WinMinimize|WinMove|WinRestore|WinSetTitle|'
+             r'WinSet|WinShow|WinWaitActive|WinWaitClose|WinWaitNotActive|'
+             r'WinWait)\b', bygroups(Text, Name.Builtin)),
+        ],
+        'builtInFunctions': [
+            (r'(?i)(Abs|ACos|Asc|ASin|ATan|Ceil|Chr|Cos|DllCall|Exp|FileExist|'
+             r'Floor|GetKeyState|IL_Add|IL_Create|IL_Destroy|InStr|IsFunc|'
+             r'IsLabel|Ln|Log|LV_Add|LV_Delete|LV_DeleteCol|LV_GetCount|'
+             r'LV_GetNext|LV_GetText|LV_Insert|LV_InsertCol|LV_Modify|'
+             r'LV_ModifyCol|LV_SetImageList|Mod|NumGet|NumPut|OnMessage|'
+             r'RegExMatch|RegExReplace|RegisterCallback|Round|SB_SetIcon|'
+             r'SB_SetParts|SB_SetText|Sin|Sqrt|StrLen|SubStr|Tan|TV_Add|'
+             r'TV_Delete|TV_GetChild|TV_GetCount|TV_GetNext|TV_Get|'
+             r'TV_GetParent|TV_GetPrev|TV_GetSelection|TV_GetText|TV_Modify|'
+             r'VarSetCapacity|WinActive|WinExist|Object|ComObjActive|'
+             r'ComObjArray|ComObjEnwrap|ComObjUnwrap|ComObjParameter|'
+             r'ComObjType|ComObjConnect|ComObjCreate|ComObjGet|ComObjError|'
+             r'ComObjValue|Insert|MinIndex|MaxIndex|Remove|SetCapacity|'
+             r'GetCapacity|GetAddress|_NewEnum|FileOpen|Read|Write|ReadLine|'
+             r'WriteLine|ReadNumType|WriteNumType|RawRead|RawWrite|Seek|Tell|'
+             r'Close|Next|IsObject|StrPut|StrGet|Trim|LTrim|RTrim)\b',
+             Name.Function),
+        ],
+        'builtInVariables': [
+            (r'(?i)(A_AhkPath|A_AhkVersion|A_AppData|A_AppDataCommon|'
+             r'A_AutoTrim|A_BatchLines|A_CaretX|A_CaretY|A_ComputerName|'
+             r'A_ControlDelay|A_Cursor|A_DDDD|A_DDD|A_DD|A_DefaultMouseSpeed|'
+             r'A_Desktop|A_DesktopCommon|A_DetectHiddenText|'
+             r'A_DetectHiddenWindows|A_EndChar|A_EventInfo|A_ExitReason|'
+             r'A_FormatFloat|A_FormatInteger|A_Gui|A_GuiEvent|A_GuiControl|'
+             r'A_GuiControlEvent|A_GuiHeight|A_GuiWidth|A_GuiX|A_GuiY|A_Hour|'
+             r'A_IconFile|A_IconHidden|A_IconNumber|A_IconTip|A_Index|'
+             r'A_IPAddress1|A_IPAddress2|A_IPAddress3|A_IPAddress4|A_ISAdmin|'
+             r'A_IsCompiled|A_IsCritical|A_IsPaused|A_IsSuspended|A_KeyDelay|'
+             r'A_Language|A_LastError|A_LineFile|A_LineNumber|A_LoopField|'
+             r'A_LoopFileAttrib|A_LoopFileDir|A_LoopFileExt|A_LoopFileFullPath|'
+             r'A_LoopFileLongPath|A_LoopFileName|A_LoopFileShortName|'
+             r'A_LoopFileShortPath|A_LoopFileSize|A_LoopFileSizeKB|'
+             r'A_LoopFileSizeMB|A_LoopFileTimeAccessed|A_LoopFileTimeCreated|'
+             r'A_LoopFileTimeModified|A_LoopReadLine|A_LoopRegKey|'
+             r'A_LoopRegName|A_LoopRegSubkey|A_LoopRegTimeModified|'
+             r'A_LoopRegType|A_MDAY|A_Min|A_MM|A_MMM|A_MMMM|A_Mon|A_MouseDelay|'
+             r'A_MSec|A_MyDocuments|A_Now|A_NowUTC|A_NumBatchLines|A_OSType|'
+             r'A_OSVersion|A_PriorHotkey|A_ProgramFiles|A_Programs|'
+             r'A_ProgramsCommon|A_ScreenHeight|A_ScreenWidth|A_ScriptDir|'
+             r'A_ScriptFullPath|A_ScriptName|A_Sec|A_Space|A_StartMenu|'
+             r'A_StartMenuCommon|A_Startup|A_StartupCommon|A_StringCaseSense|'
+             r'A_Tab|A_Temp|A_ThisFunc|A_ThisHotkey|A_ThisLabel|A_ThisMenu|'
+             r'A_ThisMenuItem|A_ThisMenuItemPos|A_TickCount|A_TimeIdle|'
+             r'A_TimeIdlePhysical|A_TimeSincePriorHotkey|A_TimeSinceThisHotkey|'
+             r'A_TitleMatchMode|A_TitleMatchModeSpeed|A_UserName|A_WDay|'
+             r'A_WinDelay|A_WinDir|A_WorkingDir|A_YDay|A_YEAR|A_YWeek|A_YYYY|'
+             r'Clipboard|ClipboardAll|ComSpec|ErrorLevel|ProgramFiles|True|'
+             r'False|A_IsUnicode|A_FileEncoding|A_OSVersion|A_PtrSize)\b',
+             Name.Variable),
+        ],
+        'labels': [
+            # hotkeys and labels
+            # technically, hotkey names are limited to named keys and buttons
+            (r'(^\s*)([^:\s("]+?:{1,2})', bygroups(Text, Name.Label)),
+            (r'(^\s*)(::[^:\s]+?::)', bygroups(Text, Name.Label)),
+        ],
+        'numbers': [
+            (r'(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?', Number.Float),
+            (r'\d+[eE][+-]?[0-9]+', Number.Float),
+            (r'0\d+', Number.Oct),
+            (r'0[xX][a-fA-F0-9]+', Number.Hex),
+            (r'\d+L', Number.Integer.Long),
+            (r'\d+', Number.Integer)
+        ],
+        'stringescape': [
+            (r'\"\"|\`([,%`abfnrtv])', String.Escape),
+        ],
+        'strings': [
+            (r'[^"\n]+', String),
+        ],
+        'dqs': [
+            (r'"', String, '#pop'),
+            include('strings')
+        ],
+        'garbage': [
+            (r'[^\S\n]', Text),
+            # (r'.', Text),      # no cheating
+        ],
+    }
+
+
+class AutoItLexer(RegexLexer):
+    """
+    For `AutoIt <http://www.autoitscript.com/site/autoit/>`_ files.
+
+    AutoIt is a freeware BASIC-like scripting language
+    designed for automating the Windows GUI and general scripting
+
+    .. versionadded:: 1.6
+    """
+    name = 'AutoIt'
+    aliases = ['autoit']
+    filenames = ['*.au3']
+    mimetypes = ['text/x-autoit']
+
+    # Keywords, functions, macros from au3.keywords.properties
+    # which can be found in AutoIt installed directory, e.g.
+    # c:\Program Files (x86)\AutoIt3\SciTE\au3.keywords.properties
+
+    keywords = """\
+    #include-once #include #endregion #forcedef #forceref #region
+    and byref case continueloop dim do else elseif endfunc endif
+    endselect exit exitloop for func global
+    if local next not or return select step
+    then to until wend while exit""".split()
+
+    functions = """\
+    abs acos adlibregister adlibunregister asc ascw asin assign atan
+    autoitsetoption autoitwingettitle autoitwinsettitle beep binary binarylen
+    binarymid binarytostring bitand bitnot bitor bitrotate bitshift bitxor
+    blockinput break call cdtray ceiling chr chrw clipget clipput consoleread
+    consolewrite consolewriteerror controlclick controlcommand controldisable
+    controlenable controlfocus controlgetfocus controlgethandle controlgetpos
+    controlgettext controlhide controllistview controlmove controlsend
+    controlsettext controlshow controltreeview cos dec dircopy dircreate
+    dirgetsize dirmove dirremove dllcall dllcalladdress dllcallbackfree
+    dllcallbackgetptr dllcallbackregister dllclose dllopen dllstructcreate
+    dllstructgetdata dllstructgetptr dllstructgetsize dllstructsetdata
+    drivegetdrive drivegetfilesystem drivegetlabel drivegetserial drivegettype
+    drivemapadd drivemapdel drivemapget drivesetlabel drivespacefree
+    drivespacetotal drivestatus envget envset envupdate eval execute exp
+    filechangedir fileclose filecopy filecreatentfslink filecreateshortcut
+    filedelete fileexists filefindfirstfile filefindnextfile fileflush
+    filegetattrib filegetencoding filegetlongname filegetpos filegetshortcut
+    filegetshortname filegetsize filegettime filegetversion fileinstall filemove
+    fileopen fileopendialog fileread filereadline filerecycle filerecycleempty
+    filesavedialog fileselectfolder filesetattrib filesetpos filesettime
+    filewrite filewriteline floor ftpsetproxy guicreate guictrlcreateavi
+    guictrlcreatebutton guictrlcreatecheckbox guictrlcreatecombo
+    guictrlcreatecontextmenu guictrlcreatedate guictrlcreatedummy
+    guictrlcreateedit guictrlcreategraphic guictrlcreategroup guictrlcreateicon
+    guictrlcreateinput guictrlcreatelabel guictrlcreatelist
+    guictrlcreatelistview guictrlcreatelistviewitem guictrlcreatemenu
+    guictrlcreatemenuitem guictrlcreatemonthcal guictrlcreateobj
+    guictrlcreatepic guictrlcreateprogress guictrlcreateradio
+    guictrlcreateslider guictrlcreatetab guictrlcreatetabitem
+    guictrlcreatetreeview guictrlcreatetreeviewitem guictrlcreateupdown
+    guictrldelete guictrlgethandle guictrlgetstate guictrlread guictrlrecvmsg
+    guictrlregisterlistviewsort guictrlsendmsg guictrlsendtodummy
+    guictrlsetbkcolor guictrlsetcolor guictrlsetcursor guictrlsetdata
+    guictrlsetdefbkcolor guictrlsetdefcolor guictrlsetfont guictrlsetgraphic
+    guictrlsetimage guictrlsetlimit guictrlsetonevent guictrlsetpos
+    guictrlsetresizing guictrlsetstate guictrlsetstyle guictrlsettip guidelete
+    guigetcursorinfo guigetmsg guigetstyle guiregistermsg guisetaccelerators
+    guisetbkcolor guisetcoord guisetcursor guisetfont guisethelp guiseticon
+    guisetonevent guisetstate guisetstyle guistartgroup guiswitch hex hotkeyset
+    httpsetproxy httpsetuseragent hwnd inetclose inetget inetgetinfo inetgetsize
+    inetread inidelete iniread inireadsection inireadsectionnames
+    inirenamesection iniwrite iniwritesection inputbox int isadmin isarray
+    isbinary isbool isdeclared isdllstruct isfloat ishwnd isint iskeyword
+    isnumber isobj isptr isstring log memgetstats mod mouseclick mouseclickdrag
+    mousedown mousegetcursor mousegetpos mousemove mouseup mousewheel msgbox
+    number objcreate objcreateinterface objevent objevent objget objname
+    onautoitexitregister onautoitexitunregister opt ping pixelchecksum
+    pixelgetcolor pixelsearch pluginclose pluginopen processclose processexists
+    processgetstats processlist processsetpriority processwait processwaitclose
+    progressoff progresson progressset ptr random regdelete regenumkey
+    regenumval regread regwrite round run runas runaswait runwait send
+    sendkeepactive seterror setextended shellexecute shellexecutewait shutdown
+    sin sleep soundplay soundsetwavevolume splashimageon splashoff splashtexton
+    sqrt srandom statusbargettext stderrread stdinwrite stdioclose stdoutread
+    string stringaddcr stringcompare stringformat stringfromasciiarray
+    stringinstr stringisalnum stringisalpha stringisascii stringisdigit
+    stringisfloat stringisint stringislower stringisspace stringisupper
+    stringisxdigit stringleft stringlen stringlower stringmid stringregexp
+    stringregexpreplace stringreplace stringright stringsplit stringstripcr
+    stringstripws stringtoasciiarray stringtobinary stringtrimleft
+    stringtrimright stringupper tan tcpaccept tcpclosesocket tcpconnect
+    tcplisten tcpnametoip tcprecv tcpsend tcpshutdown tcpstartup timerdiff
+    timerinit tooltip traycreateitem traycreatemenu traygetmsg trayitemdelete
+    trayitemgethandle trayitemgetstate trayitemgettext trayitemsetonevent
+    trayitemsetstate trayitemsettext traysetclick trayseticon traysetonevent
+    traysetpauseicon traysetstate traysettooltip traytip ubound udpbind
+    udpclosesocket udpopen udprecv udpsend udpshutdown udpstartup vargettype
+    winactivate winactive winclose winexists winflash wingetcaretpos
+    wingetclasslist wingetclientsize wingethandle wingetpos wingetprocess
+    wingetstate wingettext wingettitle winkill winlist winmenuselectitem
+    winminimizeall winminimizeallundo winmove winsetontop winsetstate
+    winsettitle winsettrans winwait winwaitactive winwaitclose
+    winwaitnotactive""".split()
+
+    macros = """\
+    @appdatacommondir @appdatadir @autoitexe @autoitpid @autoitversion
+    @autoitx64 @com_eventobj @commonfilesdir @compiled @computername @comspec
+    @cpuarch @cr @crlf @desktopcommondir @desktopdepth @desktopdir
+    @desktopheight @desktoprefresh @desktopwidth @documentscommondir @error
+    @exitcode @exitmethod @extended @favoritescommondir @favoritesdir
+    @gui_ctrlhandle @gui_ctrlid @gui_dragfile @gui_dragid @gui_dropid
+    @gui_winhandle @homedrive @homepath @homeshare @hotkeypressed @hour
+    @ipaddress1 @ipaddress2 @ipaddress3 @ipaddress4 @kblayout @lf
+    @logondnsdomain @logondomain @logonserver @mday @min @mon @msec @muilang
+    @mydocumentsdir @numparams @osarch @osbuild @oslang @osservicepack @ostype
+    @osversion @programfilesdir @programscommondir @programsdir @scriptdir
+    @scriptfullpath @scriptlinenumber @scriptname @sec @startmenucommondir
+    @startmenudir @startupcommondir @startupdir @sw_disable @sw_enable @sw_hide
+    @sw_lock @sw_maximize @sw_minimize @sw_restore @sw_show @sw_showdefault
+    @sw_showmaximized @sw_showminimized @sw_showminnoactive @sw_showna
+    @sw_shownoactivate @sw_shownormal @sw_unlock @systemdir @tab @tempdir
+    @tray_id @trayiconflashing @trayiconvisible @username @userprofiledir @wday
+    @windowsdir @workingdir @yday @year""".split()
+
+    tokens = {
+        'root': [
+            (r';.*\n', Comment.Single),
+            (r'(#comments-start|#cs)(.|\n)*?(#comments-end|#ce)',
+             Comment.Multiline),
+            (r'[\[\]{}(),;]', Punctuation),
+            (r'(and|or|not)\b', Operator.Word),
+            (r'[$|@][a-zA-Z_]\w*', Name.Variable),
+            (r'!=|==|:=|\.=|<<|>>|[-~+/*%=<>&^|?:!.]', Operator),
+            include('commands'),
+            include('labels'),
+            include('builtInFunctions'),
+            include('builtInMarcros'),
+            (r'"', String, combined('stringescape', 'dqs')),
+            include('numbers'),
+            (r'[a-zA-Z_#@$][\w#@$]*', Name),
+            (r'\\|\'', Text),
+            (r'\`([,%`abfnrtv\-+;])', String.Escape),
+            (r'_\n', Text),  # Line continuation
+            include('garbage'),
+        ],
+        'commands': [
+            (r'(?i)(\s*)(%s)\b' % '|'.join(keywords),
+             bygroups(Text, Name.Builtin)),
+        ],
+        'builtInFunctions': [
+            (r'(?i)(%s)\b' % '|'.join(functions),
+             Name.Function),
+        ],
+        'builtInMarcros': [
+            (r'(?i)(%s)\b' % '|'.join(macros),
+             Name.Variable.Global),
+        ],
+        'labels': [
+            # sendkeys
+            (r'(^\s*)(\{\S+?\})', bygroups(Text, Name.Label)),
+        ],
+        'numbers': [
+            (r'(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?', Number.Float),
+            (r'\d+[eE][+-]?[0-9]+', Number.Float),
+            (r'0\d+', Number.Oct),
+            (r'0[xX][a-fA-F0-9]+', Number.Hex),
+            (r'\d+L', Number.Integer.Long),
+            (r'\d+', Number.Integer)
+        ],
+        'stringescape': [
+            (r'\"\"|\`([,%`abfnrtv])', String.Escape),
+        ],
+        'strings': [
+            (r'[^"\n]+', String),
+        ],
+        'dqs': [
+            (r'"', String, '#pop'),
+            include('strings')
+        ],
+        'garbage': [
+            (r'[^\S\n]', Text),
+        ],
+    }

eric ide

mercurial