1071d4279SBram Moolenaar" Vim syntax file 2071d4279SBram Moolenaar" Language: Telix (Modem Comm Program) SALT Script 3071d4279SBram Moolenaar" Maintainer: Sean M. McKee <[email protected]> 4b8ff1fb5SBram Moolenaar" Last Change: 2012 Feb 03 by Thilo Six 5071d4279SBram Moolenaar" Version Info: @(#)tsalt.vim 1.5 97/12/16 08:11:15 6071d4279SBram Moolenaar 789bcfda6SBram Moolenaar" quit when a syntax file was already loaded 889bcfda6SBram Moolenaarif exists("b:current_syntax") 9071d4279SBram Moolenaar finish 10071d4279SBram Moolenaarendif 11071d4279SBram Moolenaar 12b8ff1fb5SBram Moolenaarlet s:cpo_save = &cpo 13b8ff1fb5SBram Moolenaarset cpo&vim 14b8ff1fb5SBram Moolenaar 15071d4279SBram Moolenaar" turn case matching off 16071d4279SBram Moolenaarsyn case ignore 17071d4279SBram Moolenaar 18071d4279SBram Moolenaar"FUNCTIONS 19071d4279SBram Moolenaar" Character Handling Functions 20071d4279SBram Moolenaarsyn keyword tsaltFunction IsAscii IsAlNum IsAlpha IsCntrl IsDigit 21071d4279SBram Moolenaarsyn keyword tsaltFunction IsLower IsUpper ToLower ToUpper 22071d4279SBram Moolenaar 23071d4279SBram Moolenaar" Connect Device Operations 24071d4279SBram Moolenaarsyn keyword tsaltFunction Carrier cInp_Cnt cGetC cGetCT cPutC cPutN 25071d4279SBram Moolenaarsyn keyword tsaltFunction cPutS cPutS_TR FlushBuf Get_Baud 26071d4279SBram Moolenaarsyn keyword tsaltFunction Get_DataB Get_Port Get_StopB Hangup 27071d4279SBram Moolenaarsyn keyword tsaltFunction KillConnectDevice MakeConnectDevice 28071d4279SBram Moolenaarsyn keyword tsaltFunction Send_Brk Set_ConnectDevice Set_Port 29071d4279SBram Moolenaar 30071d4279SBram Moolenaar" File Input/Output Operations 31071d4279SBram Moolenaarsyn keyword tsaltFunction fClearErr fClose fDelete fError fEOF fFlush 32071d4279SBram Moolenaarsyn keyword tsaltFunction fGetC fGetS FileAttr FileFind FileSize 33071d4279SBram Moolenaarsyn keyword tsaltFunction FileTime fnStrip fOpen fPutC fPutS fRead 34071d4279SBram Moolenaarsyn keyword tsaltFunction fRename fSeek fTell fWrite 35071d4279SBram Moolenaar 36071d4279SBram Moolenaar" File Transfers and Logs 37071d4279SBram Moolenaarsyn keyword tsaltFunction Capture Capture_Stat Printer Receive Send 38071d4279SBram Moolenaarsyn keyword tsaltFunction Set_DefProt UsageLog Usage_Stat UStamp 39071d4279SBram Moolenaar 40071d4279SBram Moolenaar" Input String Matching 41071d4279SBram Moolenaarsyn keyword tsaltFunction Track Track_AddChr Track_Free Track_Hit 42071d4279SBram Moolenaarsyn keyword tsaltFunction WaitFor 43071d4279SBram Moolenaar 44071d4279SBram Moolenaar" Keyboard Operations 45071d4279SBram Moolenaarsyn keyword tsaltFunction InKey InKeyW KeyGet KeyLoad KeySave KeySet 46071d4279SBram Moolenaar 47071d4279SBram Moolenaar" Miscellaneous Functions 48071d4279SBram Moolenaarsyn keyword tsaltFunction ChatMode Dos Dial DosFunction ExitTelix 49071d4279SBram Moolenaarsyn keyword tsaltFunction GetEnv GetFon HelpScreen LoadFon NewDir 50071d4279SBram Moolenaarsyn keyword tsaltFunction Randon Redial RedirectDOS Run 51071d4279SBram Moolenaarsyn keyword tsaltFunction Set_Terminal Show_Directory TelixVersion 52071d4279SBram Moolenaarsyn keyword tsaltFunction Terminal TransTab Update_Term 53071d4279SBram Moolenaar 54071d4279SBram Moolenaar" Script Management 55071d4279SBram Moolenaarsyn keyword tsaltFunction ArgCount Call CallD CompileScript GetRunPath 56071d4279SBram Moolenaarsyn keyword tsaltFunction Is_Loaded Load_Scr ScriptVersion 57071d4279SBram Moolenaarsyn keyword tsaltFunction TelixForWindows Unload_Scr 58071d4279SBram Moolenaar 59071d4279SBram Moolenaar" Sound Functions 60071d4279SBram Moolenaarsyn keyword tsaltFunction Alarm PlayWave Tone 61071d4279SBram Moolenaar 62071d4279SBram Moolenaar" String Handling 63071d4279SBram Moolenaarsyn keyword tsaltFunction CopyChrs CopyStr DelChrs GetS GetSXY 64071d4279SBram Moolenaarsyn keyword tsaltFunction InputBox InsChrs ItoS SetChr StoI StrCat 65071d4279SBram Moolenaarsyn keyword tsaltFunction StrChr StrCompI StrLen StrLower StrMaxLen 66071d4279SBram Moolenaarsyn keyword tsaltFunction StrPos StrPosI StrUpper SubChr SubChrs 67071d4279SBram Moolenaarsyn keyword tsaltFunction SubStr 68071d4279SBram Moolenaar 69071d4279SBram Moolenaar" Time, Date, and Timer Operations 70071d4279SBram Moolenaarsyn keyword tsaltFunction CurTime Date Delay Delay_Scr Get_OnlineTime 71071d4279SBram Moolenaarsyn keyword tsaltFunction tDay tHour tMin tMonth tSec tYear Time 72071d4279SBram Moolenaarsyn keyword tsaltFunction Time_Up Timer_Free Time_Restart 73071d4279SBram Moolenaarsyn keyword tsaltFunction Time_Start Time_Total 74071d4279SBram Moolenaar 75071d4279SBram Moolenaar" Video Operations 76071d4279SBram Moolenaarsyn keyword tsaltFunction Box CNewLine Cursor_OnOff Clear_Scr 77071d4279SBram Moolenaarsyn keyword tsaltFunction GetTermHeight GetTermWidth GetX GetY 78071d4279SBram Moolenaarsyn keyword tsaltFunction GotoXY MsgBox NewLine PrintC PrintC_Trm 79071d4279SBram Moolenaarsyn keyword tsaltFunction PrintN PrintN_Trm PrintS PrintS_Trm 80071d4279SBram Moolenaarsyn keyword tsaltFunction PrintSC PRintSC_Trm 81071d4279SBram Moolenaarsyn keyword tsaltFunction PStrA PStrAXY Scroll Status_Wind vGetChr 82071d4279SBram Moolenaarsyn keyword tsaltFunction vGetChrs vGetChrsA vPutChr vPutChrs 83071d4279SBram Moolenaarsyn keyword tsaltFunction vPutChrsA vRstrArea vSaveArea 84071d4279SBram Moolenaar 85071d4279SBram Moolenaar" Dynamic Data Exchange (DDE) Operations 86071d4279SBram Moolenaarsyn keyword tsaltFunction DDEExecute DDEInitate DDEPoke DDERequest 87071d4279SBram Moolenaarsyn keyword tsaltFunction DDETerminate DDETerminateAll 88071d4279SBram Moolenaar"END FUNCTIONS 89071d4279SBram Moolenaar 90071d4279SBram Moolenaar"PREDEFINED VARAIABLES 91071d4279SBram Moolenaarsyn keyword tsaltSysVar _add_lf _alarm_on _answerback_str _asc_rcrtrans 92071d4279SBram Moolenaarsyn keyword tsaltSysVar _asc_remabort _asc_rlftrans _asc_scpacing 93071d4279SBram Moolenaarsyn keyword tsaltSysVar _asc_scrtrans _asc_secho _asc_slpacing 94071d4279SBram Moolenaarsyn keyword tsaltSysVar _asc_spacechr _asc_striph _back_color 95071d4279SBram Moolenaarsyn keyword tsaltSysVar _capture_fname _connect_str _dest_bs 96071d4279SBram Moolenaarsyn keyword tsaltSysVar _dial_pause _dial_time _dial_post 97071d4279SBram Moolenaarsyn keyword tsaltSysVar _dial_pref1 _dial_pref2 _dial_pref3 98071d4279SBram Moolenaarsyn keyword tsaltSysVar _dial_pref4 _dir_prog _down_dir 99071d4279SBram Moolenaarsyn keyword tsaltSysVar _entry_bbstype _entry_comment _entry_enum 100071d4279SBram Moolenaarsyn keyword tsaltSysVar _entry_name _entry_num _entry_logonname 101071d4279SBram Moolenaarsyn keyword tsaltSysVar _entry_pass _fore_color _image_file 102071d4279SBram Moolenaarsyn keyword tsaltSysVar _local_echo _mdm_hang_str _mdm_init_str 103071d4279SBram Moolenaarsyn keyword tsaltSysVar _no_connect1 _no_connect2 _no_connect3 104071d4279SBram Moolenaarsyn keyword tsaltSysVar _no_connect4 _no_connect5 _redial_stop 105071d4279SBram Moolenaarsyn keyword tsaltSysVar _scr_chk_key _script_dir _sound_on 106071d4279SBram Moolenaarsyn keyword tsaltSysVar _strip_high _swap_bs _telix_dir _up_dir 107071d4279SBram Moolenaarsyn keyword tsaltSysVar _usage_fname _zmodauto _zmod_rcrash 108071d4279SBram Moolenaarsyn keyword tsaltSysVar _zmod_scrash 109071d4279SBram Moolenaar"END PREDEFINED VARAIABLES 110071d4279SBram Moolenaar 111071d4279SBram Moolenaar"TYPE 112071d4279SBram Moolenaarsyn keyword tsaltType str int 113071d4279SBram Moolenaar"END TYPE 114071d4279SBram Moolenaar 115071d4279SBram Moolenaar"KEYWORDS 116071d4279SBram Moolenaarsyn keyword tsaltStatement goto break return continue 117071d4279SBram Moolenaarsyn keyword tsaltConditional if then else 118071d4279SBram Moolenaarsyn keyword tsaltRepeat while for do 119071d4279SBram Moolenaar"END KEYWORDS 120071d4279SBram Moolenaar 121071d4279SBram Moolenaarsyn keyword tsaltTodo contained TODO 122071d4279SBram Moolenaar 123071d4279SBram Moolenaar" the rest is pretty close to C ----------------------------------------- 124071d4279SBram Moolenaar 125071d4279SBram Moolenaar" String and Character constants 126071d4279SBram Moolenaar" Highlight special characters (those which have a backslash) differently 127071d4279SBram Moolenaarsyn match tsaltSpecial contained "\^\d\d\d\|\^." 128071d4279SBram Moolenaarsyn region tsaltString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=tsaltSpecial 129071d4279SBram Moolenaarsyn match tsaltCharacter "'[^\\]'" 130071d4279SBram Moolenaarsyn match tsaltSpecialCharacter "'\\.'" 131071d4279SBram Moolenaar 132071d4279SBram Moolenaar"catch errors caused by wrong parenthesis 133071d4279SBram Moolenaarsyn region tsaltParen transparent start='(' end=')' contains=ALLBUT,tsaltParenError,tsaltIncluded,tsaltSpecial,tsaltTodo 134071d4279SBram Moolenaarsyn match tsaltParenError ")" 135071d4279SBram Moolenaarsyn match tsaltInParen contained "[{}]" 136071d4279SBram Moolenaar 137071d4279SBram Moolenaarhi link tsaltParenError tsaltError 138071d4279SBram Moolenaarhi link tsaltInParen tsaltError 139071d4279SBram Moolenaar 140071d4279SBram Moolenaar"integer number, or floating point number without a dot and with "f". 141071d4279SBram Moolenaarsyn match tsaltNumber "\<\d\+\(u\=l\=\|lu\|f\)\>" 142071d4279SBram Moolenaar"floating point number, with dot, optional exponent 143071d4279SBram Moolenaarsyn match tsaltFloat "\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>" 144071d4279SBram Moolenaar"floating point number, starting with a dot, optional exponent 145071d4279SBram Moolenaarsyn match tsaltFloat "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>" 146071d4279SBram Moolenaar"floating point number, without dot, with exponent 147071d4279SBram Moolenaarsyn match tsaltFloat "\<\d\+e[-+]\=\d\+[fl]\=\>" 148071d4279SBram Moolenaar"hex number 149071d4279SBram Moolenaarsyn match tsaltNumber "0x[0-9a-f]\+\(u\=l\=\|lu\)\>" 150071d4279SBram Moolenaar"syn match cIdentifier "\<[a-z_][a-z0-9_]*\>" 151071d4279SBram Moolenaar 152071d4279SBram Moolenaarsyn region tsaltComment start="/\*" end="\*/" contains=cTodo 153071d4279SBram Moolenaarsyn match tsaltComment "//.*" contains=cTodo 154071d4279SBram Moolenaarsyn match tsaltCommentError "\*/" 155071d4279SBram Moolenaar 156071d4279SBram Moolenaarsyn region tsaltPreCondit start="^[ \t]*#[ \t]*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=tsaltComment,tsaltString,tsaltCharacter,tsaltNumber,tsaltCommentError 157071d4279SBram Moolenaarsyn region tsaltIncluded contained start=+"+ skip=+\\\\\|\\"+ end=+"+ 158071d4279SBram Moolenaarsyn match tsaltIncluded contained "<[^>]*>" 159071d4279SBram Moolenaarsyn match tsaltInclude "^[ \t]*#[ \t]*include\>[ \t]*["<]" contains=tsaltIncluded 160071d4279SBram Moolenaar"syn match TelixSalyLineSkip "\\$" 161071d4279SBram Moolenaarsyn region tsaltDefine start="^[ \t]*#[ \t]*\(define\>\|undef\>\)" skip="\\$" end="$" contains=ALLBUT,tsaltPreCondit,tsaltIncluded,tsaltInclude,tsaltDefine,tsaltInParen 162071d4279SBram Moolenaarsyn region tsaltPreProc start="^[ \t]*#[ \t]*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" contains=ALLBUT,tsaltPreCondit,tsaltIncluded,tsaltInclude,tsaltDefine,tsaltInParen 163071d4279SBram Moolenaar 164071d4279SBram Moolenaar" Highlight User Labels 165071d4279SBram Moolenaarsyn region tsaltMulti transparent start='?' end=':' contains=ALLBUT,tsaltIncluded,tsaltSpecial,tsaltTodo 166071d4279SBram Moolenaar 167071d4279SBram Moolenaarsyn sync ccomment tsaltComment 168071d4279SBram Moolenaar 169071d4279SBram Moolenaar 170071d4279SBram Moolenaar" Define the default highlighting. 17189bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet 172071d4279SBram Moolenaar 173*f37506f6SBram Moolenaarhi def link tsaltFunction Statement 174*f37506f6SBram Moolenaarhi def link tsaltSysVar Type 175*f37506f6SBram Moolenaar"hi def link tsaltLibFunc UserDefFunc 176*f37506f6SBram Moolenaar"hi def link tsaltConstants Type 177*f37506f6SBram Moolenaar"hi def link tsaltFuncArg Type 178*f37506f6SBram Moolenaar"hi def link tsaltOperator Operator 179*f37506f6SBram Moolenaar"hi def link tsaltLabel Label 180*f37506f6SBram Moolenaar"hi def link tsaltUserLabel Label 181*f37506f6SBram Moolenaarhi def link tsaltConditional Conditional 182*f37506f6SBram Moolenaarhi def link tsaltRepeat Repeat 183*f37506f6SBram Moolenaarhi def link tsaltCharacter SpecialChar 184*f37506f6SBram Moolenaarhi def link tsaltSpecialCharacter SpecialChar 185*f37506f6SBram Moolenaarhi def link tsaltNumber Number 186*f37506f6SBram Moolenaarhi def link tsaltFloat Float 187*f37506f6SBram Moolenaarhi def link tsaltCommentError tsaltError 188*f37506f6SBram Moolenaarhi def link tsaltInclude Include 189*f37506f6SBram Moolenaarhi def link tsaltPreProc PreProc 190*f37506f6SBram Moolenaarhi def link tsaltDefine Macro 191*f37506f6SBram Moolenaarhi def link tsaltIncluded tsaltString 192*f37506f6SBram Moolenaarhi def link tsaltError Error 193*f37506f6SBram Moolenaarhi def link tsaltStatement Statement 194*f37506f6SBram Moolenaarhi def link tsaltPreCondit PreCondit 195*f37506f6SBram Moolenaarhi def link tsaltType Type 196*f37506f6SBram Moolenaarhi def link tsaltString String 197*f37506f6SBram Moolenaarhi def link tsaltComment Comment 198*f37506f6SBram Moolenaarhi def link tsaltSpecial Special 199*f37506f6SBram Moolenaarhi def link tsaltTodo Todo 200071d4279SBram Moolenaar 201071d4279SBram Moolenaar 202071d4279SBram Moolenaarlet b:current_syntax = "tsalt" 203071d4279SBram Moolenaar 204b8ff1fb5SBram Moolenaarlet &cpo = s:cpo_save 205b8ff1fb5SBram Moolenaarunlet s:cpo_save 206071d4279SBram Moolenaar" vim: ts=8 207