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