1" Vim syntax file
2" Filename:     foxpro.vim
3" Version:      1.0
4" Language:     FoxPro for DOS/UNIX v2.6
5" Maintainer:   Bill W. Smith, Jr. <donal@brewich.com>
6" Last Change:  15 May 2006
7
8"     This file replaces the FoxPro for DOS v2.x syntax file 
9" maintained by Powing Tse <powing@mcmug.org>
10" 
11" Change Log:	added support for FoxPro Codebook highlighting
12" 		corrected highlighting of comments that do NOT start in col 1
13" 		corrected highlighting of comments at end of line (&&)
14" 
15" 
16if version < 600
17    syntax clear
18elseif exists("b:current_syntax")
19    finish
20endif
21
22" FoxPro Codebook Naming Conventions
23syn match foxproCBConst "\<[c][A-Z][A-Za-z0-9_]*\>"
24syn match foxproCBVar "\<[lgrt][acndlmf][A-Z][A-Za-z0-9_]*\>"
25syn match foxproCBField "\<[a-z0-9]*\.[A-Za-z0-9_]*\>"
26" PROPER CodeBook field names start with the data type and do NOT have _
27syn match foxproCBField "\<[A-Za-z0-9]*\.[acndlm][A-Z][A-Za-z0-9]*\>"
28syn match foxproCBWin "\<w[rbcm][A-Z][A-Za-z0-9_]*\>"
29" CodeBook 2.0 defined objects as follows
30" This uses the hotkey from the screen builder as the second character
31syn match foxproCBObject "\<[lgr][bfthnkoli][A-Z][A-Za-z0-9_]*\>"
32" A later version added the following conventions for objects
33syn match foxproCBObject "\<box[A-Z][A-Za-z0-9_]*\>"
34syn match foxproCBObject "\<fld[A-Z][A-Za-z0-9_]*\>"
35syn match foxproCBObject "\<txt[A-Z][A-Za-z0-9_]*\>"
36syn match foxproCBObject "\<phb[A-Z][A-Za-z0-9_]*\>"
37syn match foxproCBObject "\<rdo[A-Z][A-Za-z0-9_]*\>"
38syn match foxproCBObject "\<chk[A-Z][A-Za-z0-9_]*\>"
39syn match foxproCBObject "\<pop[A-Z][A-Za-z0-9_]*\>"
40syn match foxproCBObject "\<lst[A-Z][A-Za-z0-9_]*\>"
41syn match foxproCBObject "\<inv[A-Z][A-Za-z0-9_]*\>"
42syn match foxproCBObject "\<mnu[A-Z][A-Za-z0-9_]*\>"
43
44syntax case ignore
45
46" Highlight special characters
47syn match foxproSpecial "^\s*!"
48syn match foxproSpecial "&"
49syn match foxproSpecial ";\s*$"
50syn match foxproSpecial "^\s*="
51syn match foxproSpecial "^\s*\\"
52syn match foxproSpecial "^\s*\\\\"
53syn match foxproSpecial "^\s*?"
54syn match foxproSpecial "^\s*??"
55syn match foxproSpecial "^\s*???"
56syn match foxproSpecial "\<m\>\."
57
58" @ Statements
59syn match foxproAtSymbol contained "^\s*@"
60syn match foxproAtCmd    contained "\<say\>\|\<get\>\|\<edit\>\|\<box\>\|\<clea\%[r]\>\|\<fill\>\|\<menu\>\|\<prom\%[pt]\>\|\<scro\%[ll]\>\|\<to\>"
61syn match foxproAtStart  transparent "^\s*@.*" contains=ALL
62
63" preprocessor directives
64syn match foxproPreProc "^\s*#\s*\(\<if\>\|\<elif\>\|\<else\>\|\<endi\%[f]\>\)"
65syn match foxproPreProc "^\s*#\s*\(\<defi\%[ne]\>\|\<unde\%[f]\>\)"
66syn match foxproPreProc "^\s*#\s*\<regi\%[on]\>"
67
68" Functions
69syn match foxproFunc "\<abs\>\s*("me=e-1
70syn match foxproFunc "\<acop\%[y]\>\s*("me=e-1
71syn match foxproFunc "\<acos\>\s*("me=e-1
72syn match foxproFunc "\<adel\>\s*("me=e-1
73syn match foxproFunc "\<adir\>\s*("me=e-1
74syn match foxproFunc "\<aele\%[ment]\>\s*("me=e-1
75syn match foxproFunc "\<afie\%[lds]\>\s*("me=e-1
76syn match foxproFunc "\<afon\%[t]\>\s*("me=e-1
77syn match foxproFunc "\<ains\>\s*("me=e-1
78syn match foxproFunc "\<alen\>\s*("me=e-1
79syn match foxproFunc "\<alia\%[s]\>\s*("me=e-1
80syn match foxproFunc "\<allt\%[rim]\>\s*("me=e-1
81syn match foxproFunc "\<ansi\%[tooem]\>\s*("me=e-1
82syn match foxproFunc "\<asc\>\s*("me=e-1
83syn match foxproFunc "\<asca\%[n]\>\s*("me=e-1
84syn match foxproFunc "\<asin\>\s*("me=e-1
85syn match foxproFunc "\<asor\%[t]\>\s*("me=e-1
86syn match foxproFunc "\<asub\%[script]\>\s*("me=e-1
87syn match foxproFunc "\<at\>\s*("me=e-1
88syn match foxproFunc "\<atan\>\s*("me=e-1
89syn match foxproFunc "\<atc\>\s*("me=e-1
90syn match foxproFunc "\<atcl\%[ine]\>\s*("me=e-1
91syn match foxproFunc "\<atli\%[ne]\>\s*("me=e-1
92syn match foxproFunc "\<atn2\>\s*("me=e-1
93syn match foxproFunc "\<bar\>\s*("me=e-1
94syn match foxproFunc "\<barc\%[ount]\>\s*("me=e-1
95syn match foxproFunc "\<barp\%[rompt]\>\s*("me=e-1
96syn match foxproFunc "\<betw\%[een]\>\s*("me=e-1
97syn match foxproFunc "\<bof\>\s*("me=e-1
98syn match foxproFunc "\<caps\%[lock]\>\s*("me=e-1
99syn match foxproFunc "\<cdow\>\s*("me=e-1
100syn match foxproFunc "\<cdx\>\s*("me=e-1
101syn match foxproFunc "\<ceil\%[ing]\>\s*("me=e-1
102syn match foxproFunc "\<chr\>\s*("me=e-1
103syn match foxproFunc "\<chrs\%[aw]\>\s*("me=e-1
104syn match foxproFunc "\<chrt\%[ran]\>\s*("me=e-1
105syn match foxproFunc "\<cmon\%[th]\>\s*("me=e-1
106syn match foxproFunc "\<cntb\%[ar]\>\s*("me=e-1
107syn match foxproFunc "\<cntp\%[ad]\>\s*("me=e-1
108syn match foxproFunc "\<col\>\s*("me=e-1
109syn match foxproFunc "\<cos\>\s*("me=e-1
110syn match foxproFunc "\<cpco\%[nvert]\>\s*("me=e-1
111syn match foxproFunc "\<cpcu\%[rrent]\>\s*("me=e-1
112syn match foxproFunc "\<cpdb\%[f]\>\s*("me=e-1
113syn match foxproFunc "\<ctod\>\s*("me=e-1
114syn match foxproFunc "\<curd\%[ir]\>\s*("me=e-1
115syn match foxproFunc "\<date\>\s*("me=e-1
116syn match foxproFunc "\<day\>\s*("me=e-1
117syn match foxproFunc "\<dbf\>\s*("me=e-1
118syn match foxproFunc "\<ddea\%[borttrans]\>\s*("me=e-1
119syn match foxproFunc "\<ddea\%[dvise]\>\s*("me=e-1
120syn match foxproFunc "\<ddee\%[nabled]\>\s*("me=e-1
121syn match foxproFunc "\<ddee\%[xecute]\>\s*("me=e-1
122syn match foxproFunc "\<ddei\%[nitiate]\>\s*("me=e-1
123syn match foxproFunc "\<ddel\%[asterror]\>\s*("me=e-1
124syn match foxproFunc "\<ddep\%[oke]\>\s*("me=e-1
125syn match foxproFunc "\<dder\%[equest]\>\s*("me=e-1
126syn match foxproFunc "\<ddes\%[etoption]\>\s*("me=e-1
127syn match foxproFunc "\<ddes\%[etservice]\>\s*("me=e-1
128syn match foxproFunc "\<ddes\%[ettopic]\>\s*("me=e-1
129syn match foxproFunc "\<ddet\%[erminate]\>\s*("me=e-1
130syn match foxproFunc "\<dele\%[ted]\>\s*("me=e-1
131syn match foxproFunc "\<desc\%[ending]\>\s*("me=e-1
132syn match foxproFunc "\<diff\%[erence]\>\s*("me=e-1
133syn match foxproFunc "\<disk\%[space]\>\s*("me=e-1
134syn match foxproFunc "\<dmy\>\s*("me=e-1
135syn match foxproFunc "\<dow\>\s*("me=e-1
136syn match foxproFunc "\<dtoc\>\s*("me=e-1
137syn match foxproFunc "\<dtor\>\s*("me=e-1
138syn match foxproFunc "\<dtos\>\s*("me=e-1
139syn match foxproFunc "\<empt\%[y]\>\s*("me=e-1
140syn match foxproFunc "\<eof\>\s*("me=e-1
141syn match foxproFunc "\<erro\%[r]\>\s*("me=e-1
142syn match foxproFunc "\<eval\%[uate]\>\s*("me=e-1
143syn match foxproFunc "\<exp\>\s*("me=e-1
144syn match foxproFunc "\<fchs\%[ize]\>\s*("me=e-1
145syn match foxproFunc "\<fclo\%[se]\>\s*("me=e-1
146syn match foxproFunc "\<fcou\%[nt]\>\s*("me=e-1
147syn match foxproFunc "\<fcre\%[ate]\>\s*("me=e-1
148syn match foxproFunc "\<fdat\%[e]\>\s*("me=e-1
149syn match foxproFunc "\<feof\>\s*("me=e-1
150syn match foxproFunc "\<ferr\%[or]\>\s*("me=e-1
151syn match foxproFunc "\<fflu\%[sh]\>\s*("me=e-1
152syn match foxproFunc "\<fget\%[s]\>\s*("me=e-1
153syn match foxproFunc "\<fiel\%[d]\>\s*("me=e-1
154syn match foxproFunc "\<file\>\s*("me=e-1
155syn match foxproFunc "\<filt\%[er]\>\s*("me=e-1
156syn match foxproFunc "\<fkla\%[bel]\>\s*("me=e-1
157syn match foxproFunc "\<fkma\%[x]\>\s*("me=e-1
158syn match foxproFunc "\<fldl\%[ist]\>\s*("me=e-1
159syn match foxproFunc "\<floc\%[k]\>\s*("me=e-1
160syn match foxproFunc "\<floo\%[r]\>\s*("me=e-1
161syn match foxproFunc "\<font\%[metric]\>\s*("me=e-1
162syn match foxproFunc "\<fope\%[n]\>\s*("me=e-1
163syn match foxproFunc "\<for\>\s*("me=e-1
164syn match foxproFunc "\<foun\%[d]\>\s*("me=e-1
165syn match foxproFunc "\<fput\%[s]\>\s*("me=e-1
166syn match foxproFunc "\<frea\%[d]\>\s*("me=e-1
167syn match foxproFunc "\<fsee\%[k]\>\s*("me=e-1
168syn match foxproFunc "\<fsiz\%[e]\>\s*("me=e-1
169syn match foxproFunc "\<ftim\%[e]\>\s*("me=e-1
170syn match foxproFunc "\<full\%[path]\>\s*("me=e-1
171syn match foxproFunc "\<fv\>\s*("me=e-1
172syn match foxproFunc "\<fwri\%[te]\>\s*("me=e-1
173syn match foxproFunc "\<getb\%[ar]\>\s*("me=e-1
174syn match foxproFunc "\<getd\%[ir]\>\s*("me=e-1
175syn match foxproFunc "\<gete\%[nv]\>\s*("me=e-1
176syn match foxproFunc "\<getf\%[ile]\>\s*("me=e-1
177syn match foxproFunc "\<getf\%[ont]\>\s*("me=e-1
178syn match foxproFunc "\<getp\%[ad]\>\s*("me=e-1
179syn match foxproFunc "\<gomo\%[nth]\>\s*("me=e-1
180syn match foxproFunc "\<head\%[er]\>\s*("me=e-1
181syn match foxproFunc "\<home\>\s*("me=e-1
182syn match foxproFunc "\<idxc\%[ollate]\>\s*("me=e-1
183syn match foxproFunc "\<iif\>\s*("me=e-1
184syn match foxproFunc "\<inke\%[y]\>\s*("me=e-1
185syn match foxproFunc "\<inli\%[st]\>\s*("me=e-1
186syn match foxproFunc "\<insm\%[ode]\>\s*("me=e-1
187syn match foxproFunc "\<int\>\s*("me=e-1
188syn match foxproFunc "\<isal\%[pha]\>\s*("me=e-1
189syn match foxproFunc "\<isbl\%[ank]\>\s*("me=e-1
190syn match foxproFunc "\<isco\%[lor]\>\s*("me=e-1
191syn match foxproFunc "\<isdi\%[git]\>\s*("me=e-1
192syn match foxproFunc "\<islo\%[wer]\>\s*("me=e-1
193syn match foxproFunc "\<isre\%[adonly]\>\s*("me=e-1
194syn match foxproFunc "\<isup\%[per]\>\s*("me=e-1
195syn match foxproFunc "\<key\>\s*("me=e-1
196syn match foxproFunc "\<keym\%[atch]\>\s*("me=e-1
197syn match foxproFunc "\<last\%[key]\>\s*("me=e-1
198syn match foxproFunc "\<left\>\s*("me=e-1
199syn match foxproFunc "\<len\>\s*("me=e-1
200syn match foxproFunc "\<like\>\s*("me=e-1
201syn match foxproFunc "\<line\%[no]\>\s*("me=e-1
202syn match foxproFunc "\<locf\%[ile]\>\s*("me=e-1
203syn match foxproFunc "\<lock\>\s*("me=e-1
204syn match foxproFunc "\<log\>\s*("me=e-1
205syn match foxproFunc "\<log1\%[0]\>\s*("me=e-1
206syn match foxproFunc "\<look\%[up]\>\s*("me=e-1
207syn match foxproFunc "\<lowe\%[r]\>\s*("me=e-1
208syn match foxproFunc "\<ltri\%[m]\>\s*("me=e-1
209syn match foxproFunc "\<lupd\%[ate]\>\s*("me=e-1
210syn match foxproFunc "\<max\>\s*("me=e-1
211syn match foxproFunc "\<mcol\>\s*("me=e-1
212syn match foxproFunc "\<mdow\%[n]\>\s*("me=e-1
213syn match foxproFunc "\<mdx\>\s*("me=e-1
214syn match foxproFunc "\<mdy\>\s*("me=e-1
215syn match foxproFunc "\<meml\%[ines]\>\s*("me=e-1
216syn match foxproFunc "\<memo\%[ry]\>\s*("me=e-1
217syn match foxproFunc "\<menu\>\s*("me=e-1
218syn match foxproFunc "\<mess\%[age]\>\s*("me=e-1
219syn match foxproFunc "\<min\>\s*("me=e-1
220syn match foxproFunc "\<mlin\%[e]\>\s*("me=e-1
221syn match foxproFunc "\<mod\>\s*("me=e-1
222syn match foxproFunc "\<mont\%[h]\>\s*("me=e-1
223syn match foxproFunc "\<mrkb\%[ar]\>\s*("me=e-1
224syn match foxproFunc "\<mrkp\%[ad]\>\s*("me=e-1
225syn match foxproFunc "\<mrow\>\s*("me=e-1
226syn match foxproFunc "\<mwin\%[dow]\>\s*("me=e-1
227syn match foxproFunc "\<ndx\>\s*("me=e-1
228syn match foxproFunc "\<norm\%[alize]\>\s*("me=e-1
229syn match foxproFunc "\<numl\%[ock]\>\s*("me=e-1
230syn match foxproFunc "\<objn\%[um]\>\s*("me=e-1
231syn match foxproFunc "\<objv\%[ar]\>\s*("me=e-1
232syn match foxproFunc "\<occu\%[rs]\>\s*("me=e-1
233syn match foxproFunc "\<oemt\%[oansi]\>\s*("me=e-1
234syn match foxproFunc "\<on\>\s*("me=e-1
235syn match foxproFunc "\<orde\%[r]\>\s*("me=e-1
236syn match foxproFunc "\<os\>\s*("me=e-1
237syn match foxproFunc "\<pad\>\s*("me=e-1
238syn match foxproFunc "\<padc\>\s*("me=e-1
239syn match foxproFunc "\<padl\>\s*("me=e-1
240syn match foxproFunc "\<padr\>\s*("me=e-1
241syn match foxproFunc "\<para\%[meters]\>\s*("me=e-1
242syn match foxproFunc "\<paym\%[ent]\>\s*("me=e-1
243syn match foxproFunc "\<pcol\>\s*("me=e-1
244syn match foxproFunc "\<pi\>\s*("me=e-1
245syn match foxproFunc "\<popu\%[p]\>\s*("me=e-1
246syn match foxproFunc "\<prin\%[tstatus]\>\s*("me=e-1
247syn match foxproFunc "\<prmb\%[ar]\>\s*("me=e-1
248syn match foxproFunc "\<prmp\%[ad]\>\s*("me=e-1
249syn match foxproFunc "\<prog\%[ram]\>\s*("me=e-1
250syn match foxproFunc "\<prom\%[pt]\>\s*("me=e-1
251syn match foxproFunc "\<prop\%[er]\>\s*("me=e-1
252syn match foxproFunc "\<prow\>\s*("me=e-1
253syn match foxproFunc "\<prti\%[nfo]\>\s*("me=e-1
254syn match foxproFunc "\<putf\%[ile]\>\s*("me=e-1
255syn match foxproFunc "\<pv\>\s*("me=e-1
256syn match foxproFunc "\<rand\>\s*("me=e-1
257syn match foxproFunc "\<rat\>\s*("me=e-1
258syn match foxproFunc "\<ratl\%[ine]\>\s*("me=e-1
259syn match foxproFunc "\<rdle\%[vel]\>\s*("me=e-1
260syn match foxproFunc "\<read\%[key]\>\s*("me=e-1
261syn match foxproFunc "\<recc\%[ount]\>\s*("me=e-1
262syn match foxproFunc "\<recn\%[o]\>\s*("me=e-1
263syn match foxproFunc "\<recs\%[ize]\>\s*("me=e-1
264syn match foxproFunc "\<rela\%[tion]\>\s*("me=e-1
265syn match foxproFunc "\<repl\%[icate]\>\s*("me=e-1
266syn match foxproFunc "\<rgbs\%[cheme]\>\s*("me=e-1
267syn match foxproFunc "\<righ\%[t]\>\s*("me=e-1
268syn match foxproFunc "\<rloc\%[k]\>\s*("me=e-1
269syn match foxproFunc "\<roun\%[d]\>\s*("me=e-1
270syn match foxproFunc "\<row\>\s*("me=e-1
271syn match foxproFunc "\<rtod\>\s*("me=e-1
272syn match foxproFunc "\<rtri\%[m]\>\s*("me=e-1
273syn match foxproFunc "\<sche\%[me]\>\s*("me=e-1
274syn match foxproFunc "\<scol\%[s]\>\s*("me=e-1
275syn match foxproFunc "\<seco\%[nds]\>\s*("me=e-1
276syn match foxproFunc "\<seek\>\s*("me=e-1
277syn match foxproFunc "\<sele\%[ct]\>\s*("me=e-1
278syn match foxproFunc "\<set\>\s*("me=e-1
279syn match foxproFunc "\<sign\>\s*("me=e-1
280syn match foxproFunc "\<sin\>\s*("me=e-1
281syn match foxproFunc "\<skpb\%[ar]\>\s*("me=e-1
282syn match foxproFunc "\<skpp\%[ad]\>\s*("me=e-1
283syn match foxproFunc "\<soun\%[dex]\>\s*("me=e-1
284syn match foxproFunc "\<spac\%[e]\>\s*("me=e-1
285syn match foxproFunc "\<sqrt\>\s*("me=e-1
286syn match foxproFunc "\<srow\%[s]\>\s*("me=e-1
287syn match foxproFunc "\<str\>\s*("me=e-1
288syn match foxproFunc "\<strt\%[ran]\>\s*("me=e-1
289syn match foxproFunc "\<stuf\%[f]\>\s*("me=e-1
290syn match foxproFunc "\<subs\%[tr]\>\s*("me=e-1
291syn match foxproFunc "\<sysm\%[etric]\>\s*("me=e-1
292syn match foxproFunc "\<sys\>\s*("me=e-1
293syn match foxproFunc "\<tag\>\s*("me=e-1
294syn match foxproFunc "\<tagc\%[ount]\>\s*("me=e-1
295syn match foxproFunc "\<tagn\%[o]\>\s*("me=e-1
296syn match foxproFunc "\<tan\>\s*("me=e-1
297syn match foxproFunc "\<targ\%[et]\>\s*("me=e-1
298syn match foxproFunc "\<time\>\s*("me=e-1
299syn match foxproFunc "\<tran\%[sform]\>\s*("me=e-1
300syn match foxproFunc "\<trim\>\s*("me=e-1
301syn match foxproFunc "\<txtw\%[idth]\>\s*("me=e-1
302syn match foxproFunc "\<type\>\s*("me=e-1
303syn match foxproFunc "\<uniq\%[ue]\>\s*("me=e-1
304syn match foxproFunc "\<upda\%[ted]\>\s*("me=e-1
305syn match foxproFunc "\<uppe\%[r]\>\s*("me=e-1
306syn match foxproFunc "\<used\>\s*("me=e-1
307syn match foxproFunc "\<val\>\s*("me=e-1
308syn match foxproFunc "\<varr\%[ead]\>\s*("me=e-1
309syn match foxproFunc "\<vers\%[ion]\>\s*("me=e-1
310syn match foxproFunc "\<wbor\%[der]\>\s*("me=e-1
311syn match foxproFunc "\<wchi\%[ld]\>\s*("me=e-1
312syn match foxproFunc "\<wcol\%[s]\>\s*("me=e-1
313syn match foxproFunc "\<wexi\%[st]\>\s*("me=e-1
314syn match foxproFunc "\<wfon\%[t]\>\s*("me=e-1
315syn match foxproFunc "\<wlas\%[t]\>\s*("me=e-1
316syn match foxproFunc "\<wlco\%[l]\>\s*("me=e-1
317syn match foxproFunc "\<wlro\%[w]\>\s*("me=e-1
318syn match foxproFunc "\<wmax\%[imum]\>\s*("me=e-1
319syn match foxproFunc "\<wmin\%[imum]\>\s*("me=e-1
320syn match foxproFunc "\<wont\%[op]\>\s*("me=e-1
321syn match foxproFunc "\<wout\%[put]\>\s*("me=e-1
322syn match foxproFunc "\<wpar\%[ent]\>\s*("me=e-1
323syn match foxproFunc "\<wrea\%[d]\>\s*("me=e-1
324syn match foxproFunc "\<wrow\%[s]\>\s*("me=e-1
325syn match foxproFunc "\<wtit\%[le]\>\s*("me=e-1
326syn match foxproFunc "\<wvis\%[ible]\>\s*("me=e-1
327syn match foxproFunc "\<year\>\s*("me=e-1
328
329" Commands
330syn match foxproCmd "^\s*\<acce\%[pt]\>"
331syn match foxproCmd "^\s*\<acti\%[vate]\>\s*\<menu\>"
332syn match foxproCmd "^\s*\<acti\%[vate]\>\s*\<popu\%[p]\>"
333syn match foxproCmd "^\s*\<acti\%[vate]\>\s*\<scre\%[en]\>"
334syn match foxproCmd "^\s*\<acti\%[vate]\>\s*\<wind\%[ow]\>"
335syn match foxproCmd "^\s*\<appe\%[nd]\>"
336syn match foxproCmd "^\s*\<appe\%[nd]\>\s*\<from\>"
337syn match foxproCmd "^\s*\<appe\%[nd]\>\s*\<from\>\s*\<arra\%[y]\>"
338syn match foxproCmd "^\s*\<appe\%[nd]\>\s*\<gene\%[ral]\>"
339syn match foxproCmd "^\s*\<appe\%[nd]\>\s*\<memo\>"
340syn match foxproCmd "^\s*\<assi\%[st]\>"
341syn match foxproCmd "^\s*\<aver\%[age]\>"
342syn match foxproCmd "^\s*\<blan\%[k]\>"
343syn match foxproCmd "^\s*\<brow\%[se]\>"
344syn match foxproCmd "^\s*\<buil\%[d]\>\s*\<app\>"
345syn match foxproCmd "^\s*\<buil\%[d]\>\s*\<exe\>"
346syn match foxproCmd "^\s*\<buil\%[d]\>\s*\<proj\%[ect]\>"
347syn match foxproCmd "^\s*\<calc\%[ulate]\>"
348syn match foxproCmd "^\s*\<call\>"
349syn match foxproCmd "^\s*\<canc\%[el]\>"
350syn match foxproCmd "^\s*\<chan\%[ge]\>"
351syn match foxproCmd "^\s*\<clea\%[r]\>"
352syn match foxproCmd "^\s*\<clos\%[e]\>"
353syn match foxproCmd "^\s*\<clos\%[e]\>\s*\<memo\>"
354syn match foxproCmd "^\s*\<comp\%[ile]\>"
355syn match foxproCmd "^\s*\<cont\%[inue]\>"
356syn match foxproCmd "^\s*\<copy\>\s*\<file\>"
357syn match foxproCmd "^\s*\<copy\>\s*\<inde\%[xes]\>"
358syn match foxproCmd "^\s*\<copy\>\s*\<memo\>"
359syn match foxproCmd "^\s*\<copy\>\s*\<stru\%[cture]\>"
360syn match foxproCmd "^\s*\<copy\>\s*\<stru\%[cture]\>\s*\<exte\%[nded]\>"
361syn match foxproCmd "^\s*\<copy\>\s*\<tag\>"
362syn match foxproCmd "^\s*\<copy\>\s*\<to\>"
363syn match foxproCmd "^\s*\<copy\>\s*\<to\>\s*\<arra\%[y]\>"
364syn match foxproCmd "^\s*\<coun\%[t]\>"
365syn match foxproCmd "^\s*\<crea\%[te]\>"
366syn match foxproCmd "^\s*\<crea\%[te]\>\s*\<colo\%[r]\>\s*\<set\>"
367syn match foxproCmd "^\s*\<crea\%[te]\>\s*\<curs\%[or]\>"
368syn match foxproCmd "^\s*\<crea\%[te]\>\s*\<from\>"
369syn match foxproCmd "^\s*\<crea\%[te]\>\s*\<labe\%[l]\>"
370syn match foxproCmd "^\s*\<crea\%[te]\>\s*\<menu\>"
371syn match foxproCmd "^\s*\<crea\%[te]\>\s*\<proj\%[ect]\>"
372syn match foxproCmd "^\s*\<crea\%[te]\>\s*\<quer\%[y]\>"
373syn match foxproCmd "^\s*\<crea\%[te]\>\s*\<repo\%[rt]\>"
374syn match foxproCmd "^\s*\<crea\%[te]\>\s*\<scre\%[en]\>"
375syn match foxproCmd "^\s*\<crea\%[te]\>\s*\<tabl\%[e]\>"
376syn match foxproCmd "^\s*\<crea\%[te]\>\s*\<view\>"
377syn match foxproCmd "^\s*\<dde\>"
378syn match foxproCmd "^\s*\<deac\%[tivate]\>\s*\<menu\>"
379syn match foxproCmd "^\s*\<deac\%[tivate]\>\s*\<popu\%[p]\>"
380syn match foxproCmd "^\s*\<deac\%[tivate]\>\s*\<wind\%[ow]\>"
381syn match foxproCmd "^\s*\<decl\%[are]\>"
382syn match foxproCmd "^\s*\<defi\%[ne]\>\s*\<bar\>"
383syn match foxproCmd "^\s*\<defi\%[ne]\>\s*\<box\>"
384syn match foxproCmd "^\s*\<defi\%[ne]\>\s*\<menu\>"
385syn match foxproCmd "^\s*\<defi\%[ne]\>\s*\<pad\>"
386syn match foxproCmd "^\s*\<defi\%[ne]\>\s*\<popu\%[p]\>"
387syn match foxproCmd "^\s*\<defi\%[ne]\>\s*\<wind\%[ow]\>"
388syn match foxproCmd "^\s*\<dele\%[te]\>"
389syn match foxproCmd "^\s*\<dele\%[te]\>\s*\<file\>"
390syn match foxproCmd "^\s*\<dele\%[te]\>\s*\<tag\>"
391syn match foxproCmd "^\s*\<dime\%[nsion]\>"
392syn match foxproCmd "^\s*\<dire\%[ctory]\>"
393syn match foxproCmd "^\s*\<disp\%[lay]\>"
394syn match foxproCmd "^\s*\<disp\%[lay]\>\s*\<file\%[s]\>"
395syn match foxproCmd "^\s*\<disp\%[lay]\>\s*\<memo\%[ry]\>"
396syn match foxproCmd "^\s*\<disp\%[lay]\>\s*\<stat\%[us]\>"
397syn match foxproCmd "^\s*\<disp\%[lay]\>\s*\<stru\%[cture]\>"
398syn match foxproCmd "^\s*\<do\>"
399syn match foxproCmd "^\s*\<edit\>"
400syn match foxproCmd "^\s*\<ejec\%[t]\>"
401syn match foxproCmd "^\s*\<ejec\%[t]\>\s*\<page\>"
402syn match foxproCmd "^\s*\<eras\%[e]\>"
403syn match foxproCmd "^\s*\<exit\>"
404syn match foxproCmd "^\s*\<expo\%[rt]\>"
405syn match foxproCmd "^\s*\<exte\%[rnal]\>"
406syn match foxproCmd "^\s*\<file\%[r]\>"
407syn match foxproCmd "^\s*\<find\>"
408syn match foxproCmd "^\s*\<flus\%[h]\>"
409syn match foxproCmd "^\s*\<func\%[tion]\>"
410syn match foxproCmd "^\s*\<gath\%[er]\>"
411syn match foxproCmd "^\s*\<gete\%[xpr]\>"
412syn match foxproCmd "^\s*\<go\>"
413syn match foxproCmd "^\s*\<goto\>"
414syn match foxproCmd "^\s*\<help\>"
415syn match foxproCmd "^\s*\<hide\>\s*\<menu\>"
416syn match foxproCmd "^\s*\<hide\>\s*\<popu\%[p]\>"
417syn match foxproCmd "^\s*\<hide\>\s*\<wind\%[ow]\>"
418syn match foxproCmd "^\s*\<impo\%[rt]\>"
419syn match foxproCmd "^\s*\<inde\%[x]\>"
420syn match foxproCmd "^\s*\<inpu\%[t]\>"
421syn match foxproCmd "^\s*\<inse\%[rt]\>"
422syn match foxproCmd "^\s*\<join\>"
423syn match foxproCmd "^\s*\<keyb\%[oard]\>"
424syn match foxproCmd "^\s*\<labe\%[l]\>"
425syn match foxproCmd "^\s*\<list\>"
426syn match foxproCmd "^\s*\<load\>"
427syn match foxproCmd "^\s*\<loca\%[te]\>"
428syn match foxproCmd "^\s*\<loop\>"
429syn match foxproCmd "^\s*\<menu\>"
430syn match foxproCmd "^\s*\<menu\>\s*\<to\>"
431syn match foxproCmd "^\s*\<modi\%[fy]\>\s*\<comm\%[and]\>"
432syn match foxproCmd "^\s*\<modi\%[fy]\>\s*\<file\>"
433syn match foxproCmd "^\s*\<modi\%[fy]\>\s*\<gene\%[ral]\>"
434syn match foxproCmd "^\s*\<modi\%[fy]\>\s*\<labe\%[l]\>"
435syn match foxproCmd "^\s*\<modi\%[fy]\>\s*\<memo\>"
436syn match foxproCmd "^\s*\<modi\%[fy]\>\s*\<menu\>"
437syn match foxproCmd "^\s*\<modi\%[fy]\>\s*\<proj\%[ect]\>"
438syn match foxproCmd "^\s*\<modi\%[fy]\>\s*\<quer\%[y]\>"
439syn match foxproCmd "^\s*\<modi\%[fy]\>\s*\<repo\%[rt]\>"
440syn match foxproCmd "^\s*\<modi\%[fy]\>\s*\<scre\%[en]\>"
441syn match foxproCmd "^\s*\<modi\%[fy]\>\s*\<stru\%[cture]\>"
442syn match foxproCmd "^\s*\<modi\%[fy]\>\s*\<wind\%[ow]\>"
443syn match foxproCmd "^\s*\<move\>\s*\<popu\%[p]\>"
444syn match foxproCmd "^\s*\<move\>\s*\<wind\%[ow]\>"
445syn match foxproCmd "^\s*\<note\>"
446syn match foxproCmd "^\s*\<on\>\s*\<apla\%[bout]\>"
447syn match foxproCmd "^\s*\<on\>\s*\<bar\>"
448syn match foxproCmd "^\s*\<on\>\s*\<erro\%[r]\>"
449syn match foxproCmd "^\s*\<on\>\s*\<esca\%[pe]\>"
450syn match foxproCmd "^\s*\<on\>\s*\<exit\>\s*\<bar\>"
451syn match foxproCmd "^\s*\<on\>\s*\<exit\>\s*\<menu\>"
452syn match foxproCmd "^\s*\<on\>\s*\<exit\>\s*\<pad\>"
453syn match foxproCmd "^\s*\<on\>\s*\<exit\>\s*\<popu\%[p]\>"
454syn match foxproCmd "^\s*\<on\>\s*\<key\>"
455syn match foxproCmd "^\s*\<on\>\s*\<key\>\s*\<=\>"
456syn match foxproCmd "^\s*\<on\>\s*\<key\>\s*\<labe\%[l]\>"
457syn match foxproCmd "^\s*\<on\>\s*\<mach\%[elp]\>"
458syn match foxproCmd "^\s*\<on\>\s*\<pad\>"
459syn match foxproCmd "^\s*\<on\>\s*\<page\>"
460syn match foxproCmd "^\s*\<on\>\s*\<read\%[error]\>"
461syn match foxproCmd "^\s*\<on\>\s*\<sele\%[ction]\>\s*\<bar\>"
462syn match foxproCmd "^\s*\<on\>\s*\<sele\%[ction]\>\s*\<menu\>"
463syn match foxproCmd "^\s*\<on\>\s*\<sele\%[ction]\>\s*\<pad\>"
464syn match foxproCmd "^\s*\<on\>\s*\<sele\%[ction]\>\s*\<popu\%[p]\>"
465syn match foxproCmd "^\s*\<on\>\s*\<shut\%[down]\>"
466syn match foxproCmd "^\s*\<pack\>"
467syn match foxproCmd "^\s*\<para\%[meters]\>"
468syn match foxproCmd "^\s*\<play\>\s*\<macr\%[o]\>"
469syn match foxproCmd "^\s*\<pop\>\s*\<key\>"
470syn match foxproCmd "^\s*\<pop\>\s*\<menu\>"
471syn match foxproCmd "^\s*\<pop\>\s*\<popu\%[p]\>"
472syn match foxproCmd "^\s*\<priv\%[ate]\>"
473syn match foxproCmd "^\s*\<proc\%[edure]\>"
474syn match foxproCmd "^\s*\<publ\%[ic]\>"
475syn match foxproCmd "^\s*\<push\>\s*\<key\>"
476syn match foxproCmd "^\s*\<push\>\s*\<menu\>"
477syn match foxproCmd "^\s*\<push\>\s*\<popu\%[p]\>"
478syn match foxproCmd "^\s*\<quit\>"
479syn match foxproCmd "^\s*\<read\>"
480syn match foxproCmd "^\s*\<read\>\s*\<menu\>"
481syn match foxproCmd "^\s*\<reca\%[ll]\>"
482syn match foxproCmd "^\s*\<rein\%[dex]\>"
483syn match foxproCmd "^\s*\<rele\%[ase]\>"
484syn match foxproCmd "^\s*\<rele\%[ase]\>\s*\<modu\%[le]\>"
485syn match foxproCmd "^\s*\<rena\%[me]\>"
486syn match foxproCmd "^\s*\<repl\%[ace]\>"
487syn match foxproCmd "^\s*\<repl\%[ace]\>\s*\<from\>\s*\<arra\%[y]\>"
488syn match foxproCmd "^\s*\<repo\%[rt]\>"
489syn match foxproCmd "^\s*\<rest\%[ore]\>\s*\<from\>"
490syn match foxproCmd "^\s*\<rest\%[ore]\>\s*\<macr\%[os]\>"
491syn match foxproCmd "^\s*\<rest\%[ore]\>\s*\<scre\%[en]\>"
492syn match foxproCmd "^\s*\<rest\%[ore]\>\s*\<wind\%[ow]\>"
493syn match foxproCmd "^\s*\<resu\%[me]\>"
494syn match foxproCmd "^\s*\<retr\%[y]\>"
495syn match foxproCmd "^\s*\<retu\%[rn]\>"
496syn match foxproCmd "^\s*\<run\>"
497syn match foxproCmd "^\s*\<run\>\s*\/n"
498syn match foxproCmd "^\s*\<runs\%[cript]\>"
499syn match foxproCmd "^\s*\<save\>\s*\<macr\%[os]\>"
500syn match foxproCmd "^\s*\<save\>\s*\<scre\%[en]\>"
501syn match foxproCmd "^\s*\<save\>\s*\<to\>"
502syn match foxproCmd "^\s*\<save\>\s*\<wind\%[ows]\>"
503syn match foxproCmd "^\s*\<scat\%[ter]\>"
504syn match foxproCmd "^\s*\<scro\%[ll]\>"
505syn match foxproCmd "^\s*\<seek\>"
506syn match foxproCmd "^\s*\<sele\%[ct]\>"
507syn match foxproCmd "^\s*\<set\>"
508syn match foxproCmd "^\s*\<set\>\s*\<alte\%[rnate]\>"
509syn match foxproCmd "^\s*\<set\>\s*\<ansi\>"
510syn match foxproCmd "^\s*\<set\>\s*\<apla\%[bout]\>"
511syn match foxproCmd "^\s*\<set\>\s*\<auto\%[save]\>"
512syn match foxproCmd "^\s*\<set\>\s*\<bell\>"
513syn match foxproCmd "^\s*\<set\>\s*\<blin\%[k]\>"
514syn match foxproCmd "^\s*\<set\>\s*\<bloc\%[ksize]\>"
515syn match foxproCmd "^\s*\<set\>\s*\<bord\%[er]\>"
516syn match foxproCmd "^\s*\<set\>\s*\<brst\%[atus]\>"
517syn match foxproCmd "^\s*\<set\>\s*\<carr\%[y]\>"
518syn match foxproCmd "^\s*\<set\>\s*\<cent\%[ury]\>"
519syn match foxproCmd "^\s*\<set\>\s*\<clea\%[r]\>"
520syn match foxproCmd "^\s*\<set\>\s*\<cloc\%[k]\>"
521syn match foxproCmd "^\s*\<set\>\s*\<coll\%[ate]\>"
522syn match foxproCmd "^\s*\<set\>\s*\<colo\%[r]\>\s*\<of\>"
523syn match foxproCmd "^\s*\<set\>\s*\<colo\%[r]\>\s*\<of\>\s*\<sche\%[me]\>"
524syn match foxproCmd "^\s*\<set\>\s*\<colo\%[r]\>\s*\<set\>"
525syn match foxproCmd "^\s*\<set\>\s*\<colo\%[r]\>\s*\<to\>"
526syn match foxproCmd "^\s*\<set\>\s*\<comp\%[atible]\>"
527syn match foxproCmd "^\s*\<set\>\s*\<conf\%[irm]\>"
528syn match foxproCmd "^\s*\<set\>\s*\<cons\%[ole]\>"
529syn match foxproCmd "^\s*\<set\>\s*\<curr\%[ency]\>"
530syn match foxproCmd "^\s*\<set\>\s*\<curs\%[or]\>"
531syn match foxproCmd "^\s*\<set\>\s*\<date\>"
532syn match foxproCmd "^\s*\<set\>\s*\<debu\%[g]\>"
533syn match foxproCmd "^\s*\<set\>\s*\<deci\%[mals]\>"
534syn match foxproCmd "^\s*\<set\>\s*\<defa\%[ult]\>"
535syn match foxproCmd "^\s*\<set\>\s*\<dele\%[ted]\>"
536syn match foxproCmd "^\s*\<set\>\s*\<deli\%[miters]\>"
537syn match foxproCmd "^\s*\<set\>\s*\<deve\%[lopment]\>"
538syn match foxproCmd "^\s*\<set\>\s*\<devi\%[ce]\>"
539syn match foxproCmd "^\s*\<set\>\s*\<disp\%[lay]\>"
540syn match foxproCmd "^\s*\<set\>\s*\<dohi\%[story]\>"
541syn match foxproCmd "^\s*\<set\>\s*\<echo\>"
542syn match foxproCmd "^\s*\<set\>\s*\<esca\%[pe]\>"
543syn match foxproCmd "^\s*\<set\>\s*\<exac\%[t]\>"
544syn match foxproCmd "^\s*\<set\>\s*\<excl\%[usive]\>"
545syn match foxproCmd "^\s*\<set\>\s*\<fiel\%[ds]\>"
546syn match foxproCmd "^\s*\<set\>\s*\<filt\%[er]\>"
547syn match foxproCmd "^\s*\<set\>\s*\<fixe\%[d]\>"
548syn match foxproCmd "^\s*\<set\>\s*\<form\%[at]\>"
549syn match foxproCmd "^\s*\<set\>\s*\<full\%[path]\>"
550syn match foxproCmd "^\s*\<set\>\s*\<func\%[tion]\>"
551syn match foxproCmd "^\s*\<set\>\s*\<head\%[ings]\>"
552syn match foxproCmd "^\s*\<set\>\s*\<help\>"
553syn match foxproCmd "^\s*\<set\>\s*\<help\%[filter]\>"
554syn match foxproCmd "^\s*\<set\>\s*\<hour\%[s]\>"
555syn match foxproCmd "^\s*\<set\>\s*\<inde\%[x]\>"
556syn match foxproCmd "^\s*\<set\>\s*\<inte\%[nsity]\>"
557syn match foxproCmd "^\s*\<set\>\s*\<key\>"
558syn match foxproCmd "^\s*\<set\>\s*\<keyc\%[omp]\>"
559syn match foxproCmd "^\s*\<set\>\s*\<libr\%[ary]\>"
560syn match foxproCmd "^\s*\<set\>\s*\<lock\>"
561syn match foxproCmd "^\s*\<set\>\s*\<loge\%[rrors]\>"
562syn match foxproCmd "^\s*\<set\>\s*\<macd\%[esktop]\>"
563syn match foxproCmd "^\s*\<set\>\s*\<mach\%[elp]\>"
564syn match foxproCmd "^\s*\<set\>\s*\<mack\%[ey]\>"
565syn match foxproCmd "^\s*\<set\>\s*\<marg\%[in]\>"
566syn match foxproCmd "^\s*\<set\>\s*\<mark\>\s*\<of\>"
567syn match foxproCmd "^\s*\<set\>\s*\<mark\>\s*\<to\>"
568syn match foxproCmd "^\s*\<set\>\s*\<memo\%[width]\>"
569syn match foxproCmd "^\s*\<set\>\s*\<mess\%[age]\>"
570syn match foxproCmd "^\s*\<set\>\s*\<mous\%[e]\>"
571syn match foxproCmd "^\s*\<set\>\s*\<mult\%[ilocks]\>"
572syn match foxproCmd "^\s*\<set\>\s*\<near\>"
573syn match foxproCmd "^\s*\<set\>\s*\<nocp\%[trans]\>"
574syn match foxproCmd "^\s*\<set\>\s*\<noti\%[fy]\>"
575syn match foxproCmd "^\s*\<set\>\s*\<odom\%[eter]\>"
576syn match foxproCmd "^\s*\<set\>\s*\<opti\%[mize]\>"
577syn match foxproCmd "^\s*\<set\>\s*\<orde\%[r]\>"
578syn match foxproCmd "^\s*\<set\>\s*\<pale\%[tte]\>"
579syn match foxproCmd "^\s*\<set\>\s*\<path\>"
580syn match foxproCmd "^\s*\<set\>\s*\<pdse\%[tup]\>"
581syn match foxproCmd "^\s*\<set\>\s*\<poin\%[t]\>"
582syn match foxproCmd "^\s*\<set\>\s*\<prin\%[ter]\>"
583syn match foxproCmd "^\s*\<set\>\s*\<proc\%[edure]\>"
584syn match foxproCmd "^\s*\<set\>\s*\<read\%[border]\>"
585syn match foxproCmd "^\s*\<set\>\s*\<refr\%[esh]\>"
586syn match foxproCmd "^\s*\<set\>\s*\<rela\%[tion]\>"
587syn match foxproCmd "^\s*\<set\>\s*\<rela\%[tion]\>\s*\<off\>"
588syn match foxproCmd "^\s*\<set\>\s*\<repr\%[ocess]\>"
589syn match foxproCmd "^\s*\<set\>\s*\<reso\%[urce]\>"
590syn match foxproCmd "^\s*\<set\>\s*\<safe\%[ty]\>"
591syn match foxproCmd "^\s*\<set\>\s*\<scor\%[eboard]\>"
592syn match foxproCmd "^\s*\<set\>\s*\<sepa\%[rator]\>"
593syn match foxproCmd "^\s*\<set\>\s*\<shad\%[ows]\>"
594syn match foxproCmd "^\s*\<set\>\s*\<skip\>"
595syn match foxproCmd "^\s*\<set\>\s*\<skip\>\s*\<of\>"
596syn match foxproCmd "^\s*\<set\>\s*\<spac\%[e]\>"
597syn match foxproCmd "^\s*\<set\>\s*\<stat\%[us]\>"
598syn match foxproCmd "^\s*\<set\>\s*\<stat\%[us]\>\s*\<bar\>"
599syn match foxproCmd "^\s*\<set\>\s*\<step\>"
600syn match foxproCmd "^\s*\<set\>\s*\<stic\%[ky]\>"
601syn match foxproCmd "^\s*\<set\>\s*\<sysm\%[enu]\>"
602syn match foxproCmd "^\s*\<set\>\s*\<talk\>"
603syn match foxproCmd "^\s*\<set\>\s*\<text\%[merge]\>"
604syn match foxproCmd "^\s*\<set\>\s*\<text\%[merge]\>\s*\<deli\%[miters]\>"
605syn match foxproCmd "^\s*\<set\>\s*\<topi\%[c]\>"
606syn match foxproCmd "^\s*\<set\>\s*\<trbe\%[tween]\>"
607syn match foxproCmd "^\s*\<set\>\s*\<type\%[ahead]\>"
608syn match foxproCmd "^\s*\<set\>\s*\<udfp\%[arms]\>"
609syn match foxproCmd "^\s*\<set\>\s*\<uniq\%[ue]\>"
610syn match foxproCmd "^\s*\<set\>\s*\<view\>"
611syn match foxproCmd "^\s*\<set\>\s*\<volu\%[me]\>"
612syn match foxproCmd "^\s*\<set\>\s*\<wind\%[ow]\>\s*\<of\>\s*\<memo\>"
613syn match foxproCmd "^\s*\<set\>\s*\<xcmd\%[file]\>"
614syn match foxproCmd "^\s*\<show\>\s*\<get\>"
615syn match foxproCmd "^\s*\<show\>\s*\<gets\>"
616syn match foxproCmd "^\s*\<show\>\s*\<menu\>"
617syn match foxproCmd "^\s*\<show\>\s*\<obje\%[ct]\>"
618syn match foxproCmd "^\s*\<show\>\s*\<popu\%[p]\>"
619syn match foxproCmd "^\s*\<show\>\s*\<wind\%[ow]\>"
620syn match foxproCmd "^\s*\<size\>\s*\<popu\%[p]\>"
621syn match foxproCmd "^\s*\<skip\>"
622syn match foxproCmd "^\s*\<sort\>"
623syn match foxproCmd "^\s*\<stor\%[e]\>"
624syn match foxproCmd "^\s*\<sum\>"
625syn match foxproCmd "^\s*\<susp\%[end]\>"
626syn match foxproCmd "^\s*\<tota\%[l]\>"
627syn match foxproCmd "^\s*\<type\>"
628syn match foxproCmd "^\s*\<unlo\%[ck]\>"
629syn match foxproCmd "^\s*\<upda\%[te]\>"
630syn match foxproCmd "^\s*\<use\>"
631syn match foxproCmd "^\s*\<wait\>"
632syn match foxproCmd "^\s*\<zap\>"
633syn match foxproCmd "^\s*\<zoom\>\s*\<wind\%[ow]\>"
634
635" Enclosed Block
636syn match foxproEnBlk "^\s*\<do\>\s*\<case\>"
637syn match foxproEnBlk "^\s*\<case\>"
638syn match foxproEnBlk "^\s*\<othe\%[rwise]\>"
639syn match foxproEnBlk "^\s*\<endc\%[ase]\>"
640syn match foxproEnBlk "^\s*\<do\>\s*\<whil\%[e]\>"
641syn match foxproEnBlk "^\s*\<endd\%[o]\>"
642syn match foxproEnBlk "^\s*\<for\>"
643syn match foxproEnBlk "^\s*\<endf\%[or]\>"
644syn match foxproEnBlk "^\s*\<next\>"
645syn match foxproEnBlk "^\s*\<if\>"
646syn match foxproEnBlk "^\s*\<else\>"
647syn match foxproEnBlk "^\s*\<endi\%[f]\>"
648syn match foxproEnBlk "^\s*\<prin\%[tjob]\>"
649syn match foxproEnBlk "^\s*\<endp\%[rintjob]\>"
650syn match foxproEnBlk "^\s*\<scan\>"
651syn match foxproEnBlk "^\s*\<ends\%[can]\>"
652syn match foxproEnBlk "^\s*\<text\>"
653syn match foxproEnBlk "^\s*\<endt\%[ext]\>"
654
655" System Variables
656syn keyword foxproSysVar _alignment _assist _beautify _box _calcmem _calcvalue
657syn keyword foxproSysVar _cliptext _curobj _dblclick _diarydate _dos _foxdoc
658syn keyword foxproSysVar _foxgraph _gengraph _genmenu _genpd _genscrn _genxtab
659syn keyword foxproSysVar _indent _lmargin _mac _mline _padvance _pageno _pbpage
660syn keyword foxproSysVar _pcolno _pcopies _pdriver _pdsetup _pecode _peject _pepage
661syn keyword foxproSysVar _plength _plineno _ploffset _ppitch _pquality _pretext
662syn keyword foxproSysVar _pscode _pspacing _pwait _rmargin _shell _spellchk
663syn keyword foxproSysVar _startup _tabs _tally _text _throttle _transport _unix
664syn keyword foxproSysVar _windows _wrap
665
666" Strings
667syn region foxproString start=+"+ end=+"+ oneline
668syn region foxproString start=+'+ end=+'+ oneline
669syn region foxproString start=+\[+ end=+\]+ oneline
670
671" Constants
672syn match foxproConst "\.t\."
673syn match foxproConst "\.f\."
674
675"integer number, or floating point number without a dot and with "f".
676syn match foxproNumber "\<[0-9]\+\>"
677"floating point number, with dot, optional exponent
678syn match foxproFloat  "\<[0-9]\+\.[0-9]*\(e[-+]\=[0-9]\+\)\=\>"
679"floating point number, starting with a dot, optional exponent
680syn match foxproFloat  "\.[0-9]\+\(e[-+]\=[0-9]\+\)\=\>"
681"floating point number, without dot, with exponent
682syn match foxproFloat  "\<[0-9]\+e[-+]\=[0-9]\+\>"
683
684syn match foxproComment "^\s*\*.*"
685syn match foxproComment "&&.*"
686
687"catch errors caused by wrong parenthesis
688syn region foxproParen transparent start='(' end=')' contains=ALLBUT,foxproParenErr
689syn match foxproParenErr ")"
690
691syn sync minlines=1 maxlines=3
692
693" Define the default highlighting.
694" For version 5.7 and earlier: only when not done already
695" For version 5.8 and later: only when an item doesn't have highlighting yet
696if version >= 508 || !exists("did_foxpro_syn_inits")
697    if version < 508
698	let did_foxpro_syn_inits = 1
699	command -nargs=+ HiLink hi link <args>
700    else
701	command -nargs=+ HiLink hi def link <args>
702    endif
703
704    HiLink foxproSpecial  Special
705    HiLink foxproAtSymbol Special
706    HiLink foxproAtCmd    Statement
707    HiLink foxproPreProc  PreProc
708    HiLink foxproFunc     Identifier
709    HiLink foxproCmd      Statement
710    HiLink foxproEnBlk    Type
711    HiLink foxproSysVar   String
712    HiLink foxproString   String
713    HiLink foxproConst    Constant
714    HiLink foxproNumber   Number
715    HiLink foxproFloat    Float
716    HiLink foxproComment  Comment
717    HiLink foxproParenErr Error
718    HiLink foxproCBConst  PreProc
719    HiLink foxproCBField  Special
720    HiLink foxproCBVar    Identifier
721    HiLink foxproCBWin    Special
722    HiLink foxproCBObject Identifier
723
724    delcommand HiLink
725endif
726
727let b:current_syntax = "foxpro"
728