1" Vim syntax file 2" Language: Telix (Modem Comm Program) SALT Script 3" Maintainer: Sean M. McKee <[email protected]> 4" Last Change: 2012 Feb 03 by Thilo Six 5" Version Info: @(#)tsalt.vim 1.5 97/12/16 08:11:15 6 7" For version 5.x: Clear all syntax items 8" For version 6.x: Quit when a syntax file was already loaded 9if version < 600 10 syntax clear 11elseif exists("b:current_syntax") 12 finish 13endif 14 15let s:cpo_save = &cpo 16set cpo&vim 17 18" turn case matching off 19syn case ignore 20 21"FUNCTIONS 22" Character Handling Functions 23syn keyword tsaltFunction IsAscii IsAlNum IsAlpha IsCntrl IsDigit 24syn keyword tsaltFunction IsLower IsUpper ToLower ToUpper 25 26" Connect Device Operations 27syn keyword tsaltFunction Carrier cInp_Cnt cGetC cGetCT cPutC cPutN 28syn keyword tsaltFunction cPutS cPutS_TR FlushBuf Get_Baud 29syn keyword tsaltFunction Get_DataB Get_Port Get_StopB Hangup 30syn keyword tsaltFunction KillConnectDevice MakeConnectDevice 31syn keyword tsaltFunction Send_Brk Set_ConnectDevice Set_Port 32 33" File Input/Output Operations 34syn keyword tsaltFunction fClearErr fClose fDelete fError fEOF fFlush 35syn keyword tsaltFunction fGetC fGetS FileAttr FileFind FileSize 36syn keyword tsaltFunction FileTime fnStrip fOpen fPutC fPutS fRead 37syn keyword tsaltFunction fRename fSeek fTell fWrite 38 39" File Transfers and Logs 40syn keyword tsaltFunction Capture Capture_Stat Printer Receive Send 41syn keyword tsaltFunction Set_DefProt UsageLog Usage_Stat UStamp 42 43" Input String Matching 44syn keyword tsaltFunction Track Track_AddChr Track_Free Track_Hit 45syn keyword tsaltFunction WaitFor 46 47" Keyboard Operations 48syn keyword tsaltFunction InKey InKeyW KeyGet KeyLoad KeySave KeySet 49 50" Miscellaneous Functions 51syn keyword tsaltFunction ChatMode Dos Dial DosFunction ExitTelix 52syn keyword tsaltFunction GetEnv GetFon HelpScreen LoadFon NewDir 53syn keyword tsaltFunction Randon Redial RedirectDOS Run 54syn keyword tsaltFunction Set_Terminal Show_Directory TelixVersion 55syn keyword tsaltFunction Terminal TransTab Update_Term 56 57" Script Management 58syn keyword tsaltFunction ArgCount Call CallD CompileScript GetRunPath 59syn keyword tsaltFunction Is_Loaded Load_Scr ScriptVersion 60syn keyword tsaltFunction TelixForWindows Unload_Scr 61 62" Sound Functions 63syn keyword tsaltFunction Alarm PlayWave Tone 64 65" String Handling 66syn keyword tsaltFunction CopyChrs CopyStr DelChrs GetS GetSXY 67syn keyword tsaltFunction InputBox InsChrs ItoS SetChr StoI StrCat 68syn keyword tsaltFunction StrChr StrCompI StrLen StrLower StrMaxLen 69syn keyword tsaltFunction StrPos StrPosI StrUpper SubChr SubChrs 70syn keyword tsaltFunction SubStr 71 72" Time, Date, and Timer Operations 73syn keyword tsaltFunction CurTime Date Delay Delay_Scr Get_OnlineTime 74syn keyword tsaltFunction tDay tHour tMin tMonth tSec tYear Time 75syn keyword tsaltFunction Time_Up Timer_Free Time_Restart 76syn keyword tsaltFunction Time_Start Time_Total 77 78" Video Operations 79syn keyword tsaltFunction Box CNewLine Cursor_OnOff Clear_Scr 80syn keyword tsaltFunction GetTermHeight GetTermWidth GetX GetY 81syn keyword tsaltFunction GotoXY MsgBox NewLine PrintC PrintC_Trm 82syn keyword tsaltFunction PrintN PrintN_Trm PrintS PrintS_Trm 83syn keyword tsaltFunction PrintSC PRintSC_Trm 84syn keyword tsaltFunction PStrA PStrAXY Scroll Status_Wind vGetChr 85syn keyword tsaltFunction vGetChrs vGetChrsA vPutChr vPutChrs 86syn keyword tsaltFunction vPutChrsA vRstrArea vSaveArea 87 88" Dynamic Data Exchange (DDE) Operations 89syn keyword tsaltFunction DDEExecute DDEInitate DDEPoke DDERequest 90syn keyword tsaltFunction DDETerminate DDETerminateAll 91"END FUNCTIONS 92 93"PREDEFINED VARAIABLES 94syn keyword tsaltSysVar _add_lf _alarm_on _answerback_str _asc_rcrtrans 95syn keyword tsaltSysVar _asc_remabort _asc_rlftrans _asc_scpacing 96syn keyword tsaltSysVar _asc_scrtrans _asc_secho _asc_slpacing 97syn keyword tsaltSysVar _asc_spacechr _asc_striph _back_color 98syn keyword tsaltSysVar _capture_fname _connect_str _dest_bs 99syn keyword tsaltSysVar _dial_pause _dial_time _dial_post 100syn keyword tsaltSysVar _dial_pref1 _dial_pref2 _dial_pref3 101syn keyword tsaltSysVar _dial_pref4 _dir_prog _down_dir 102syn keyword tsaltSysVar _entry_bbstype _entry_comment _entry_enum 103syn keyword tsaltSysVar _entry_name _entry_num _entry_logonname 104syn keyword tsaltSysVar _entry_pass _fore_color _image_file 105syn keyword tsaltSysVar _local_echo _mdm_hang_str _mdm_init_str 106syn keyword tsaltSysVar _no_connect1 _no_connect2 _no_connect3 107syn keyword tsaltSysVar _no_connect4 _no_connect5 _redial_stop 108syn keyword tsaltSysVar _scr_chk_key _script_dir _sound_on 109syn keyword tsaltSysVar _strip_high _swap_bs _telix_dir _up_dir 110syn keyword tsaltSysVar _usage_fname _zmodauto _zmod_rcrash 111syn keyword tsaltSysVar _zmod_scrash 112"END PREDEFINED VARAIABLES 113 114"TYPE 115syn keyword tsaltType str int 116"END TYPE 117 118"KEYWORDS 119syn keyword tsaltStatement goto break return continue 120syn keyword tsaltConditional if then else 121syn keyword tsaltRepeat while for do 122"END KEYWORDS 123 124syn keyword tsaltTodo contained TODO 125 126" the rest is pretty close to C ----------------------------------------- 127 128" String and Character constants 129" Highlight special characters (those which have a backslash) differently 130syn match tsaltSpecial contained "\^\d\d\d\|\^." 131syn region tsaltString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=tsaltSpecial 132syn match tsaltCharacter "'[^\\]'" 133syn match tsaltSpecialCharacter "'\\.'" 134 135"catch errors caused by wrong parenthesis 136syn region tsaltParen transparent start='(' end=')' contains=ALLBUT,tsaltParenError,tsaltIncluded,tsaltSpecial,tsaltTodo 137syn match tsaltParenError ")" 138syn match tsaltInParen contained "[{}]" 139 140hi link tsaltParenError tsaltError 141hi link tsaltInParen tsaltError 142 143"integer number, or floating point number without a dot and with "f". 144syn match tsaltNumber "\<\d\+\(u\=l\=\|lu\|f\)\>" 145"floating point number, with dot, optional exponent 146syn match tsaltFloat "\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>" 147"floating point number, starting with a dot, optional exponent 148syn match tsaltFloat "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>" 149"floating point number, without dot, with exponent 150syn match tsaltFloat "\<\d\+e[-+]\=\d\+[fl]\=\>" 151"hex number 152syn match tsaltNumber "0x[0-9a-f]\+\(u\=l\=\|lu\)\>" 153"syn match cIdentifier "\<[a-z_][a-z0-9_]*\>" 154 155syn region tsaltComment start="/\*" end="\*/" contains=cTodo 156syn match tsaltComment "//.*" contains=cTodo 157syn match tsaltCommentError "\*/" 158 159syn region tsaltPreCondit start="^[ \t]*#[ \t]*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=tsaltComment,tsaltString,tsaltCharacter,tsaltNumber,tsaltCommentError 160syn region tsaltIncluded contained start=+"+ skip=+\\\\\|\\"+ end=+"+ 161syn match tsaltIncluded contained "<[^>]*>" 162syn match tsaltInclude "^[ \t]*#[ \t]*include\>[ \t]*["<]" contains=tsaltIncluded 163"syn match TelixSalyLineSkip "\\$" 164syn region tsaltDefine start="^[ \t]*#[ \t]*\(define\>\|undef\>\)" skip="\\$" end="$" contains=ALLBUT,tsaltPreCondit,tsaltIncluded,tsaltInclude,tsaltDefine,tsaltInParen 165syn region tsaltPreProc start="^[ \t]*#[ \t]*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" contains=ALLBUT,tsaltPreCondit,tsaltIncluded,tsaltInclude,tsaltDefine,tsaltInParen 166 167" Highlight User Labels 168syn region tsaltMulti transparent start='?' end=':' contains=ALLBUT,tsaltIncluded,tsaltSpecial,tsaltTodo 169 170syn sync ccomment tsaltComment 171 172 173" Define the default highlighting. 174" For version 5.7 and earlier: only when not done already 175" For version 5.8 and later: only when an item doesn't have highlighting yet 176if version >= 508 || !exists("did_tsalt_syntax_inits") 177 if version < 508 178 let did_tsalt_syntax_inits = 1 179 command -nargs=+ HiLink hi link <args> 180 else 181 command -nargs=+ HiLink hi def link <args> 182 endif 183 184 HiLink tsaltFunction Statement 185 HiLink tsaltSysVar Type 186 "HiLink tsaltLibFunc UserDefFunc 187 "HiLink tsaltConstants Type 188 "HiLink tsaltFuncArg Type 189 "HiLink tsaltOperator Operator 190 "HiLink tsaltLabel Label 191 "HiLink tsaltUserLabel Label 192 HiLink tsaltConditional Conditional 193 HiLink tsaltRepeat Repeat 194 HiLink tsaltCharacter SpecialChar 195 HiLink tsaltSpecialCharacter SpecialChar 196 HiLink tsaltNumber Number 197 HiLink tsaltFloat Float 198 HiLink tsaltCommentError tsaltError 199 HiLink tsaltInclude Include 200 HiLink tsaltPreProc PreProc 201 HiLink tsaltDefine Macro 202 HiLink tsaltIncluded tsaltString 203 HiLink tsaltError Error 204 HiLink tsaltStatement Statement 205 HiLink tsaltPreCondit PreCondit 206 HiLink tsaltType Type 207 HiLink tsaltString String 208 HiLink tsaltComment Comment 209 HiLink tsaltSpecial Special 210 HiLink tsaltTodo Todo 211 212 delcommand HiLink 213endif 214 215let b:current_syntax = "tsalt" 216 217let &cpo = s:cpo_save 218unlet s:cpo_save 219" vim: ts=8 220