blob: 887d6b75e75bcf3965145f8bf824a9b058e3ed29 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: Telix (Modem Comm Program) SALT Script
3" Maintainer: Sean M. McKee <mckee@misslink.net>
Bram Moolenaarb8ff1fb2012-02-04 21:59:01 +01004" Last Change: 2012 Feb 03 by Thilo Six
Bram Moolenaar071d4272004-06-13 20:20:40 +00005" 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
Bram Moolenaarb8ff1fb2012-02-04 21:59:01 +010015let s:cpo_save = &cpo
16set cpo&vim
17
Bram Moolenaar071d4272004-06-13 20:20:40 +000018" 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
Bram Moolenaarb8ff1fb2012-02-04 21:59:01 +0100217let &cpo = s:cpo_save
218unlet s:cpo_save
Bram Moolenaar071d4272004-06-13 20:20:40 +0000219" vim: ts=8