blob: 500560952cb1fe1d02e1dba1dd0dceac71860e1c [file] [log] [blame]
Bram Moolenaarc6249bb2006-04-15 20:25:09 +00001" stata.vim -- Vim syntax file for Stata do, ado, and class files.
2" Language: Stata and/or Mata
3" Maintainer: Jeff Pitblado <jpitblado@stata.com>
Bram Moolenaara93fa7e2006-04-17 22:14:47 +00004" Last Change: 17apr2006
5" Version: 1.1.2
Bram Moolenaarc6249bb2006-04-15 20:25:09 +00006" Location: http://www.stata.com/users/jpitblado/files/vimfiles/syntax/stata.vim
7
8" Log:
9" 14apr2006 renamed syntax groups st* to stata*
10" 'syntax clear' only under version control
Bram Moolenaara93fa7e2006-04-17 22:14:47 +000011" check for 'b:current_syntax', removed 'did_stata_syntax_inits'
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000012
13if version < 600
14 syntax clear
15elseif exists("b:current_syntax")
16 finish
17endif
18
19syntax case match
20
21" comments - single line
22" note that the triple slash continuing line comment comes free
23syn region stataStarComment start=/^\s*\*/ end=/$/ contains=stataComment oneline
24syn region stataSlashComment start="\s//" end=/$/ contains=stataComment oneline
25syn region stataSlashComment start="^//" end=/$/ contains=stataComment oneline
26" comments - multiple line
27syn region stataComment start="/\*" end="\*/" contains=stataComment
28
29" global macros - simple case
30syn match stataGlobal /\$\a\w*/
31" global macros - general case
32syn region stataGlobal start=/\${/ end=/}/ oneline contains=@stataMacroGroup
33" local macros - general case
34syn region stataLocal start=/`/ end=/'/ oneline contains=@stataMacroGroup
35
36" numeric formats
37syn match stataFormat /%-\=\d\+\.\d\+[efg]c\=/
38" numeric hex format
39syn match stataFormat /%-\=21x/
40" string format
41syn match stataFormat /%\(\|-\|\~\)\d\+s/
42
43" Statements
44syn keyword stataConditional else if
45syn keyword stataRepeat foreach
46syn keyword stataRepeat forv[alues]
47syn keyword stataRepeat while
48
49" Common programming commands
50syn keyword stataCommand about
51syn keyword stataCommand adopath
52syn keyword stataCommand adoupdate
53syn keyword stataCommand assert
54syn keyword stataCommand break
55syn keyword stataCommand by
56syn keyword stataCommand cap[ture]
57syn keyword stataCommand cd
58syn keyword stataCommand chdir
59syn keyword stataCommand checksum
60syn keyword stataCommand class
61syn keyword stataCommand classutil
62syn keyword stataCommand compress
63syn keyword stataCommand conf[irm]
64syn keyword stataCommand conren
65syn keyword stataCommand continue
66syn keyword stataCommand cou[nt]
67syn keyword stataCommand cscript
68syn keyword stataCommand cscript_log
69syn keyword stataCommand #delimit
70syn keyword stataCommand d[escribe]
71syn keyword stataCommand dir
72syn keyword stataCommand discard
73syn keyword stataCommand di[splay]
74syn keyword stataCommand do
75syn keyword stataCommand doedit
76syn keyword stataCommand drop
77syn keyword stataCommand edit
78syn keyword stataCommand end
79syn keyword stataCommand erase
80syn keyword stataCommand eret[urn]
81syn keyword stataCommand err[or]
82syn keyword stataCommand e[xit]
83syn keyword stataCommand expand
84syn keyword stataCommand expandcl
85syn keyword stataCommand file
86syn keyword stataCommand findfile
87syn keyword stataCommand format
88syn keyword stataCommand g[enerate]
89syn keyword stataCommand gettoken
90syn keyword stataCommand gl[obal]
91syn keyword stataCommand help
92syn keyword stataCommand hexdump
93syn keyword stataCommand include
94syn keyword stataCommand infile
95syn keyword stataCommand infix
96syn keyword stataCommand input
97syn keyword stataCommand insheet
98syn keyword stataCommand joinby
99syn keyword stataCommand la[bel]
100syn keyword stataCommand levelsof
101syn keyword stataCommand list
102syn keyword stataCommand loc[al]
103syn keyword stataCommand log
104syn keyword stataCommand ma[cro]
105syn keyword stataCommand mark
106syn keyword stataCommand markout
107syn keyword stataCommand marksample
108syn keyword stataCommand mata
109syn keyword stataCommand matrix
110syn keyword stataCommand memory
111syn keyword stataCommand merge
112syn keyword stataCommand mkdir
113syn keyword stataCommand more
114syn keyword stataCommand net
115syn keyword stataCommand nobreak
116syn keyword stataCommand n[oisily]
117syn keyword stataCommand note[s]
118syn keyword stataCommand numlist
119syn keyword stataCommand outfile
120syn keyword stataCommand outsheet
121syn keyword stataCommand _parse
122syn keyword stataCommand pause
123syn keyword stataCommand plugin
124syn keyword stataCommand post
125syn keyword stataCommand postclose
126syn keyword stataCommand postfile
127syn keyword stataCommand preserve
128syn keyword stataCommand print
129syn keyword stataCommand printer
130syn keyword stataCommand profiler
131syn keyword stataCommand pr[ogram]
132syn keyword stataCommand q[uery]
133syn keyword stataCommand qui[etly]
134syn keyword stataCommand rcof
135syn keyword stataCommand reg[ress]
136syn keyword stataCommand rename
137syn keyword stataCommand repeat
138syn keyword stataCommand replace
139syn keyword stataCommand reshape
140syn keyword stataCommand ret[urn]
141syn keyword stataCommand _rmcoll
142syn keyword stataCommand _rmcoll
143syn keyword stataCommand _rmcollright
144syn keyword stataCommand rmdir
145syn keyword stataCommand _robust
146syn keyword stataCommand save
147syn keyword stataCommand sca[lar]
148syn keyword stataCommand search
149syn keyword stataCommand serset
150syn keyword stataCommand set
151syn keyword stataCommand shell
152syn keyword stataCommand sleep
153syn keyword stataCommand sort
154syn keyword stataCommand split
155syn keyword stataCommand sret[urn]
156syn keyword stataCommand ssc
157syn keyword stataCommand su[mmarize]
158syn keyword stataCommand syntax
159syn keyword stataCommand sysdescribe
160syn keyword stataCommand sysdir
161syn keyword stataCommand sysuse
162syn keyword stataCommand token[ize]
163syn keyword stataCommand translate
164syn keyword stataCommand type
165syn keyword stataCommand unab
166syn keyword stataCommand unabcmd
167syn keyword stataCommand update
168syn keyword stataCommand use
169syn keyword stataCommand vers[ion]
170syn keyword stataCommand view
171syn keyword stataCommand viewsource
172syn keyword stataCommand webdescribe
173syn keyword stataCommand webseek
174syn keyword stataCommand webuse
175syn keyword stataCommand which
176syn keyword stataCommand who
177syn keyword stataCommand window
178
179" Literals
180syn match stataQuote /"/
181syn region stataEString matchgroup=Nothing start=/`"/ end=/"'/ oneline contains=@stataMacroGroup,stataQuote,stataString,stataEString
182syn region stataString matchgroup=Nothing start=/"/ end=/"/ oneline contains=@stataMacroGroup
183
184" define clusters
185syn cluster stataFuncGroup contains=@stataMacroGroup,stataFunc,stataString,stataEstring
186syn cluster stataMacroGroup contains=stataGlobal,stataLocal
187syn cluster stataParenGroup contains=stataParenError,stataBracketError,stataBraceError,stataSpecial,stataFormat
188
189" Stata functions
190" Math
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000191syn region stataFunc matchgroup=Function start=/\<abs(/ end=/)/ contains=@stataFuncGroup
192syn region stataFunc matchgroup=Function start=/\<acos(/ end=/)/ contains=@stataFuncGroup
193syn region stataFunc matchgroup=Function start=/\<asin(/ end=/)/ contains=@stataFuncGroup
194syn region stataFunc matchgroup=Function start=/\<atan(/ end=/)/ contains=@stataFuncGroup
195syn region stataFunc matchgroup=Function start=/\<atan2(/ end=/)/ contains=@stataFuncGroup
196syn region stataFunc matchgroup=Function start=/\<atanh(/ end=/)/ contains=@stataFuncGroup
197syn region stataFunc matchgroup=Function start=/\<ceil(/ end=/)/ contains=@stataFuncGroup
198syn region stataFunc matchgroup=Function start=/\<cloglog(/ end=/)/ contains=@stataFuncGroup
199syn region stataFunc matchgroup=Function start=/\<comb(/ end=/)/ contains=@stataFuncGroup
200syn region stataFunc matchgroup=Function start=/\<cos(/ end=/)/ contains=@stataFuncGroup
201syn region stataFunc matchgroup=Function start=/\<digamma(/ end=/)/ contains=@stataFuncGroup
202syn region stataFunc matchgroup=Function start=/\<exp(/ end=/)/ contains=@stataFuncGroup
203syn region stataFunc matchgroup=Function start=/\<floor(/ end=/)/ contains=@stataFuncGroup
204syn region stataFunc matchgroup=Function start=/\<int(/ end=/)/ contains=@stataFuncGroup
205syn region stataFunc matchgroup=Function start=/\<invcloglog(/ end=/)/ contains=@stataFuncGroup
206syn region stataFunc matchgroup=Function start=/\<invlogit(/ end=/)/ contains=@stataFuncGroup
207syn region stataFunc matchgroup=Function start=/\<ln(/ end=/)/ contains=@stataFuncGroup
208syn region stataFunc matchgroup=Function start=/\<lnfact(/ end=/)/ contains=@stataFuncGroup
209syn region stataFunc matchgroup=Function start=/\<lnfactorial(/ end=/)/ contains=@stataFuncGroup
210syn region stataFunc matchgroup=Function start=/\<lngamma(/ end=/)/ contains=@stataFuncGroup
211syn region stataFunc matchgroup=Function start=/\<log(/ end=/)/ contains=@stataFuncGroup
212syn region stataFunc matchgroup=Function start=/\<log10(/ end=/)/ contains=@stataFuncGroup
213syn region stataFunc matchgroup=Function start=/\<logit(/ end=/)/ contains=@stataFuncGroup
214syn region stataFunc matchgroup=Function start=/\<max(/ end=/)/ contains=@stataFuncGroup
215syn region stataFunc matchgroup=Function start=/\<mod(/ end=/)/ contains=@stataFuncGroup
216syn region stataFunc matchgroup=Function start=/\<reldif(/ end=/)/ contains=@stataFuncGroup
217syn region stataFunc matchgroup=Function start=/\<round(/ end=/)/ contains=@stataFuncGroup
218syn region stataFunc matchgroup=Function start=/\<sign(/ end=/)/ contains=@stataFuncGroup
219syn region stataFunc matchgroup=Function start=/\<sin(/ end=/)/ contains=@stataFuncGroup
220syn region stataFunc matchgroup=Function start=/\<sqrt(/ end=/)/ contains=@stataFuncGroup
221syn region stataFunc matchgroup=Function start=/\<sum(/ end=/)/ contains=@stataFuncGroup
222syn region stataFunc matchgroup=Function start=/\<tan(/ end=/)/ contains=@stataFuncGroup
223syn region stataFunc matchgroup=Function start=/\<tanh(/ end=/)/ contains=@stataFuncGroup
224syn region stataFunc matchgroup=Function start=/\<trigamma(/ end=/)/ contains=@stataFuncGroup
225syn region stataFunc matchgroup=Function start=/\<trunc(/ end=/)/ contains=@stataFuncGroup
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000226" Probability distriubtions and density functions
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000227syn region stataFunc matchgroup=Function start=/\<betaden(/ end=/)/ contains=@stataFuncGroup
228syn region stataFunc matchgroup=Function start=/\<Binomial(/ end=/)/ contains=@stataFuncGroup
229syn region stataFunc matchgroup=Function start=/\<binorm(/ end=/)/ contains=@stataFuncGroup
230syn region stataFunc matchgroup=Function start=/\<binormal(/ end=/)/ contains=@stataFuncGroup
231syn region stataFunc matchgroup=Function start=/\<chi2(/ end=/)/ contains=@stataFuncGroup
232syn region stataFunc matchgroup=Function start=/\<chi2tail(/ end=/)/ contains=@stataFuncGroup
233syn region stataFunc matchgroup=Function start=/\<dgammapda(/ end=/)/ contains=@stataFuncGroup
234syn region stataFunc matchgroup=Function start=/\<dgammapdada(/ end=/)/ contains=@stataFuncGroup
235syn region stataFunc matchgroup=Function start=/\<dgammapdadx(/ end=/)/ contains=@stataFuncGroup
236syn region stataFunc matchgroup=Function start=/\<dgammapdx(/ end=/)/ contains=@stataFuncGroup
237syn region stataFunc matchgroup=Function start=/\<dgammapdxdx(/ end=/)/ contains=@stataFuncGroup
238syn region stataFunc matchgroup=Function start=/\<F(/ end=/)/ contains=@stataFuncGroup
239syn region stataFunc matchgroup=Function start=/\<Fden(/ end=/)/ contains=@stataFuncGroup
240syn region stataFunc matchgroup=Function start=/\<Ftail(/ end=/)/ contains=@stataFuncGroup
241syn region stataFunc matchgroup=Function start=/\<gammaden(/ end=/)/ contains=@stataFuncGroup
242syn region stataFunc matchgroup=Function start=/\<gammap(/ end=/)/ contains=@stataFuncGroup
243syn region stataFunc matchgroup=Function start=/\<ibeta(/ end=/)/ contains=@stataFuncGroup
244syn region stataFunc matchgroup=Function start=/\<invbinomial(/ end=/)/ contains=@stataFuncGroup
245syn region stataFunc matchgroup=Function start=/\<invchi2(/ end=/)/ contains=@stataFuncGroup
246syn region stataFunc matchgroup=Function start=/\<invchi2tail(/ end=/)/ contains=@stataFuncGroup
247syn region stataFunc matchgroup=Function start=/\<invF(/ end=/)/ contains=@stataFuncGroup
248syn region stataFunc matchgroup=Function start=/\<invFtail(/ end=/)/ contains=@stataFuncGroup
249syn region stataFunc matchgroup=Function start=/\<invgammap(/ end=/)/ contains=@stataFuncGroup
250syn region stataFunc matchgroup=Function start=/\<invibeta(/ end=/)/ contains=@stataFuncGroup
251syn region stataFunc matchgroup=Function start=/\<invnchi2(/ end=/)/ contains=@stataFuncGroup
252syn region stataFunc matchgroup=Function start=/\<invFtail(/ end=/)/ contains=@stataFuncGroup
253syn region stataFunc matchgroup=Function start=/\<invibeta(/ end=/)/ contains=@stataFuncGroup
254syn region stataFunc matchgroup=Function start=/\<invnorm(/ end=/)/ contains=@stataFuncGroup
255syn region stataFunc matchgroup=Function start=/\<invnormal(/ end=/)/ contains=@stataFuncGroup
256syn region stataFunc matchgroup=Function start=/\<invttail(/ end=/)/ contains=@stataFuncGroup
257syn region stataFunc matchgroup=Function start=/\<lnnormal(/ end=/)/ contains=@stataFuncGroup
258syn region stataFunc matchgroup=Function start=/\<lnnormalden(/ end=/)/ contains=@stataFuncGroup
259syn region stataFunc matchgroup=Function start=/\<nbetaden(/ end=/)/ contains=@stataFuncGroup
260syn region stataFunc matchgroup=Function start=/\<nchi2(/ end=/)/ contains=@stataFuncGroup
261syn region stataFunc matchgroup=Function start=/\<nFden(/ end=/)/ contains=@stataFuncGroup
262syn region stataFunc matchgroup=Function start=/\<nFtail(/ end=/)/ contains=@stataFuncGroup
263syn region stataFunc matchgroup=Function start=/\<nibeta(/ end=/)/ contains=@stataFuncGroup
264syn region stataFunc matchgroup=Function start=/\<norm(/ end=/)/ contains=@stataFuncGroup
265syn region stataFunc matchgroup=Function start=/\<normal(/ end=/)/ contains=@stataFuncGroup
266syn region stataFunc matchgroup=Function start=/\<normalden(/ end=/)/ contains=@stataFuncGroup
267syn region stataFunc matchgroup=Function start=/\<normden(/ end=/)/ contains=@stataFuncGroup
268syn region stataFunc matchgroup=Function start=/\<npnchi2(/ end=/)/ contains=@stataFuncGroup
269syn region stataFunc matchgroup=Function start=/\<tden(/ end=/)/ contains=@stataFuncGroup
270syn region stataFunc matchgroup=Function start=/\<ttail(/ end=/)/ contains=@stataFuncGroup
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000271" Random numbers
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000272syn region stataFunc matchgroup=Function start=/\<uniform(/ end=/)/ contains=@stataFuncGroup
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000273" String
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000274syn region stataFunc matchgroup=Function start=/\<abbrev(/ end=/)/ contains=@stataFuncGroup
275syn region stataFunc matchgroup=Function start=/\<hchar(/ end=/)/ contains=@stataFuncGroup
276syn region stataFunc matchgroup=Function start=/\<indexnot(/ end=/)/ contains=@stataFuncGroup
277syn region stataFunc matchgroup=Function start=/\<itrim(/ end=/)/ contains=@stataFuncGroup
278syn region stataFunc matchgroup=Function start=/\<length(/ end=/)/ contains=@stataFuncGroup
279syn region stataFunc matchgroup=Function start=/\<lower(/ end=/)/ contains=@stataFuncGroup
280syn region stataFunc matchgroup=Function start=/\<ltrim(/ end=/)/ contains=@stataFuncGroup
281syn region stataFunc matchgroup=Function start=/\<plural(/ end=/)/ contains=@stataFuncGroup
282syn region stataFunc matchgroup=Function start=/\<proper(/ end=/)/ contains=@stataFuncGroup
283syn region stataFunc matchgroup=Function start=/\<real(/ end=/)/ contains=@stataFuncGroup
284syn region stataFunc matchgroup=Function start=/\<regexm(/ end=/)/ contains=@stataFuncGroup
285syn region stataFunc matchgroup=Function start=/\<regexr(/ end=/)/ contains=@stataFuncGroup
286syn region stataFunc matchgroup=Function start=/\<regexs(/ end=/)/ contains=@stataFuncGroup
287syn region stataFunc matchgroup=Function start=/\<reverse(/ end=/)/ contains=@stataFuncGroup
288syn region stataFunc matchgroup=Function start=/\<rtrim(/ end=/)/ contains=@stataFuncGroup
289syn region stataFunc matchgroup=Function start=/\<string(/ end=/)/ contains=@stataFuncGroup
290syn region stataFunc matchgroup=Function start=/\<strlen(/ end=/)/ contains=@stataFuncGroup
291syn region stataFunc matchgroup=Function start=/\<strmatch(/ end=/)/ contains=@stataFuncGroup
292syn region stataFunc matchgroup=Function start=/\<strpos(/ end=/)/ contains=@stataFuncGroup
293syn region stataFunc matchgroup=Function start=/\<subinstr(/ end=/)/ contains=@stataFuncGroup
294syn region stataFunc matchgroup=Function start=/\<subinword(/ end=/)/ contains=@stataFuncGroup
295syn region stataFunc matchgroup=Function start=/\<substr(/ end=/)/ contains=@stataFuncGroup
296syn region stataFunc matchgroup=Function start=/\<trim(/ end=/)/ contains=@stataFuncGroup
297syn region stataFunc matchgroup=Function start=/\<upper(/ end=/)/ contains=@stataFuncGroup
298syn region stataFunc matchgroup=Function start=/\<word(/ end=/)/ contains=@stataFuncGroup
299syn region stataFunc matchgroup=Function start=/\<wordcount(/ end=/)/ contains=@stataFuncGroup
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000300" Programming
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000301syn region stataFunc matchgroup=Function start=/\<autocode(/ end=/)/ contains=@stataFuncGroup
302syn region stataFunc matchgroup=Function start=/\<byteorder(/ end=/)/ contains=@stataFuncGroup
303syn region stataFunc matchgroup=Function start=/\<c(/ end=/)/ contains=@stataFuncGroup
304syn region stataFunc matchgroup=Function start=/\<_caller(/ end=/)/ contains=@stataFuncGroup
305syn region stataFunc matchgroup=Function start=/\<chop(/ end=/)/ contains=@stataFuncGroup
306syn region stataFunc matchgroup=Function start=/\<clip(/ end=/)/ contains=@stataFuncGroup
307syn region stataFunc matchgroup=Function start=/\<cond(/ end=/)/ contains=@stataFuncGroup
308syn region stataFunc matchgroup=Function start=/\<e(/ end=/)/ contains=@stataFuncGroup
309syn region stataFunc matchgroup=Function start=/\<epsdouble(/ end=/)/ contains=@stataFuncGroup
310syn region stataFunc matchgroup=Function start=/\<epsfloat(/ end=/)/ contains=@stataFuncGroup
311syn region stataFunc matchgroup=Function start=/\<float(/ end=/)/ contains=@stataFuncGroup
312syn region stataFunc matchgroup=Function start=/\<has_eprop(/ end=/)/ contains=@stataFuncGroup
313syn region stataFunc matchgroup=Function start=/\<has_eprop(/ end=/)/ contains=@stataFuncGroup
314syn region stataFunc matchgroup=Function start=/\<inlist(/ end=/)/ contains=@stataFuncGroup
315syn region stataFunc matchgroup=Function start=/\<inrange(/ end=/)/ contains=@stataFuncGroup
316syn region stataFunc matchgroup=Function start=/\<irecode(/ end=/)/ contains=@stataFuncGroup
317syn region stataFunc matchgroup=Function start=/\<matrix(/ end=/)/ contains=@stataFuncGroup
318syn region stataFunc matchgroup=Function start=/\<maxbyte(/ end=/)/ contains=@stataFuncGroup
319syn region stataFunc matchgroup=Function start=/\<maxdouble(/ end=/)/ contains=@stataFuncGroup
320syn region stataFunc matchgroup=Function start=/\<maxfloat(/ end=/)/ contains=@stataFuncGroup
321syn region stataFunc matchgroup=Function start=/\<maxint(/ end=/)/ contains=@stataFuncGroup
322syn region stataFunc matchgroup=Function start=/\<maxlong(/ end=/)/ contains=@stataFuncGroup
323syn region stataFunc matchgroup=Function start=/\<mi(/ end=/)/ contains=@stataFuncGroup
324syn region stataFunc matchgroup=Function start=/\<minbyte(/ end=/)/ contains=@stataFuncGroup
325syn region stataFunc matchgroup=Function start=/\<mindouble(/ end=/)/ contains=@stataFuncGroup
326syn region stataFunc matchgroup=Function start=/\<minfloat(/ end=/)/ contains=@stataFuncGroup
327syn region stataFunc matchgroup=Function start=/\<minint(/ end=/)/ contains=@stataFuncGroup
328syn region stataFunc matchgroup=Function start=/\<minlong(/ end=/)/ contains=@stataFuncGroup
329syn region stataFunc matchgroup=Function start=/\<missing(/ end=/)/ contains=@stataFuncGroup
330syn region stataFunc matchgroup=Function start=/\<r(/ end=/)/ contains=@stataFuncGroup
331syn region stataFunc matchgroup=Function start=/\<recode(/ end=/)/ contains=@stataFuncGroup
332syn region stataFunc matchgroup=Function start=/\<replay(/ end=/)/ contains=@stataFuncGroup
333syn region stataFunc matchgroup=Function start=/\<return(/ end=/)/ contains=@stataFuncGroup
334syn region stataFunc matchgroup=Function start=/\<s(/ end=/)/ contains=@stataFuncGroup
335syn region stataFunc matchgroup=Function start=/\<scalar(/ end=/)/ contains=@stataFuncGroup
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000336" Date
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000337syn region stataFunc matchgroup=Function start=/\<d(/ end=/)/ contains=@stataFuncGroup
338syn region stataFunc matchgroup=Function start=/\<date(/ end=/)/ contains=@stataFuncGroup
339syn region stataFunc matchgroup=Function start=/\<day(/ end=/)/ contains=@stataFuncGroup
340syn region stataFunc matchgroup=Function start=/\<dow(/ end=/)/ contains=@stataFuncGroup
341syn region stataFunc matchgroup=Function start=/\<doy(/ end=/)/ contains=@stataFuncGroup
342syn region stataFunc matchgroup=Function start=/\<halfyear(/ end=/)/ contains=@stataFuncGroup
343syn region stataFunc matchgroup=Function start=/\<mdy(/ end=/)/ contains=@stataFuncGroup
344syn region stataFunc matchgroup=Function start=/\<month(/ end=/)/ contains=@stataFuncGroup
345syn region stataFunc matchgroup=Function start=/\<quarter(/ end=/)/ contains=@stataFuncGroup
346syn region stataFunc matchgroup=Function start=/\<week(/ end=/)/ contains=@stataFuncGroup
347syn region stataFunc matchgroup=Function start=/\<year(/ end=/)/ contains=@stataFuncGroup
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000348" Time-series
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000349syn region stataFunc matchgroup=Function start=/\<daily(/ end=/)/ contains=@stataFuncGroup
350syn region stataFunc matchgroup=Function start=/\<halfyearly(/ end=/)/ contains=@stataFuncGroup
351syn region stataFunc matchgroup=Function start=/\<monthly(/ end=/)/ contains=@stataFuncGroup
352syn region stataFunc matchgroup=Function start=/\<quarterly(/ end=/)/ contains=@stataFuncGroup
353syn region stataFunc matchgroup=Function start=/\<weekly(/ end=/)/ contains=@stataFuncGroup
354syn region stataFunc matchgroup=Function start=/\<yearly(/ end=/)/ contains=@stataFuncGroup
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000355"
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000356syn region stataFunc matchgroup=Function start=/\<yh(/ end=/)/ contains=@stataFuncGroup
357syn region stataFunc matchgroup=Function start=/\<ym(/ end=/)/ contains=@stataFuncGroup
358syn region stataFunc matchgroup=Function start=/\<yq(/ end=/)/ contains=@stataFuncGroup
359syn region stataFunc matchgroup=Function start=/\<yw(/ end=/)/ contains=@stataFuncGroup
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000360"
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000361syn region stataFunc matchgroup=Function start=/\<d(/ end=/)/ contains=@stataFuncGroup
362syn region stataFunc matchgroup=Function start=/\<h(/ end=/)/ contains=@stataFuncGroup
363syn region stataFunc matchgroup=Function start=/\<m(/ end=/)/ contains=@stataFuncGroup
364syn region stataFunc matchgroup=Function start=/\<q(/ end=/)/ contains=@stataFuncGroup
365syn region stataFunc matchgroup=Function start=/\<w(/ end=/)/ contains=@stataFuncGroup
366syn region stataFunc matchgroup=Function start=/\<y(/ end=/)/ contains=@stataFuncGroup
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000367"
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000368syn region stataFunc matchgroup=Function start=/\<dofd(/ end=/)/ contains=@stataFuncGroup
369syn region stataFunc matchgroup=Function start=/\<dofh(/ end=/)/ contains=@stataFuncGroup
370syn region stataFunc matchgroup=Function start=/\<dofm(/ end=/)/ contains=@stataFuncGroup
371syn region stataFunc matchgroup=Function start=/\<dofq(/ end=/)/ contains=@stataFuncGroup
372syn region stataFunc matchgroup=Function start=/\<dofw(/ end=/)/ contains=@stataFuncGroup
373syn region stataFunc matchgroup=Function start=/\<dofy(/ end=/)/ contains=@stataFuncGroup
374syn region stataFunc matchgroup=Function start=/\<hofd(/ end=/)/ contains=@stataFuncGroup
375syn region stataFunc matchgroup=Function start=/\<mofd(/ end=/)/ contains=@stataFuncGroup
376syn region stataFunc matchgroup=Function start=/\<qofd(/ end=/)/ contains=@stataFuncGroup
377syn region stataFunc matchgroup=Function start=/\<wofd(/ end=/)/ contains=@stataFuncGroup
378syn region stataFunc matchgroup=Function start=/\<yofd(/ end=/)/ contains=@stataFuncGroup
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000379"
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000380syn region stataFunc matchgroup=Function start=/\<tin(/ end=/)/ contains=@stataFuncGroup
381syn region stataFunc matchgroup=Function start=/\<twithin(/ end=/)/ contains=@stataFuncGroup
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000382" Matrix
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000383syn region stataFunc matchgroup=Function start=/\<colnumb(/ end=/)/ contains=@stataFuncGroup
384syn region stataFunc matchgroup=Function start=/\<colsof(/ end=/)/ contains=@stataFuncGroup
385syn region stataFunc matchgroup=Function start=/\<det(/ end=/)/ contains=@stataFuncGroup
386syn region stataFunc matchgroup=Function start=/\<diag0cnt(/ end=/)/ contains=@stataFuncGroup
387syn region stataFunc matchgroup=Function start=/\<el(/ end=/)/ contains=@stataFuncGroup
388syn region stataFunc matchgroup=Function start=/\<issymmetric(/ end=/)/ contains=@stataFuncGroup
389syn region stataFunc matchgroup=Function start=/\<matmissing(/ end=/)/ contains=@stataFuncGroup
390syn region stataFunc matchgroup=Function start=/\<mreldif(/ end=/)/ contains=@stataFuncGroup
391syn region stataFunc matchgroup=Function start=/\<rownumb(/ end=/)/ contains=@stataFuncGroup
392syn region stataFunc matchgroup=Function start=/\<rowsof(/ end=/)/ contains=@stataFuncGroup
393syn region stataFunc matchgroup=Function start=/\<trace(/ end=/)/ contains=@stataFuncGroup
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000394"
Bram Moolenaara93fa7e2006-04-17 22:14:47 +0000395syn region stataFunc matchgroup=Function start=/\<cholsky(/ end=/)/ contains=@stataFuncGroup
396syn region stataFunc matchgroup=Function start=/\<corr(/ end=/)/ contains=@stataFuncGroup
397syn region stataFunc matchgroup=Function start=/\<diag(/ end=/)/ contains=@stataFuncGroup
398syn region stataFunc matchgroup=Function start=/\<get(/ end=/)/ contains=@stataFuncGroup
399syn region stataFunc matchgroup=Function start=/\<hadamard(/ end=/)/ contains=@stataFuncGroup
400syn region stataFunc matchgroup=Function start=/\<I(/ end=/)/ contains=@stataFuncGroup
401syn region stataFunc matchgroup=Function start=/\<inv(/ end=/)/ contains=@stataFuncGroup
402syn region stataFunc matchgroup=Function start=/\<invsym(/ end=/)/ contains=@stataFuncGroup
403syn region stataFunc matchgroup=Function start=/\<J(/ end=/)/ contains=@stataFuncGroup
404syn region stataFunc matchgroup=Function start=/\<matuniform(/ end=/)/ contains=@stataFuncGroup
405syn region stataFunc matchgroup=Function start=/\<nullmat(/ end=/)/ contains=@stataFuncGroup
406syn region stataFunc matchgroup=Function start=/\<sweep(/ end=/)/ contains=@stataFuncGroup
407syn region stataFunc matchgroup=Function start=/\<vec(/ end=/)/ contains=@stataFuncGroup
408syn region stataFunc matchgroup=Function start=/\<vecdiag(/ end=/)/ contains=@stataFuncGroup
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000409
410" Errors to catch
411" taken from $VIMRUNTIME/syntax/c.vim
412" catch errors caused by wrong parenthesis, braces and brackets
413syn region stataParen transparent start=/(/ end=/)/ contains=ALLBUT,@stataParenGroup,stataErrInBracket,stataErrInBrace
414syn region stataBracket transparent start=/\[/ end=/]/ contains=ALLBUT,@stataParenGroup,stataErrInParen,stataErrInBrace
415syn region stataBrace transparent start=/{/ end=/}/ contains=ALLBUT,@stataParenGroup,stataErrInParen,stataErrInBracket
416syn match stataParenError /[\])}]/
417syn match stataBracketError /]/
418syn match stataBraceError /}/
419syn match stataErrInParen contained /[\]{}]/
420syn match stataErrInBracket contained /[){}]/
421syn match stataErrInBrace contained /[)\]]/
422
423" assign highlight groups
424hi def link stataBraceError stataError
425hi def link stataBracketError stataError
426hi def link stataErrInBrace stataError
427hi def link stataErrInBracket stataError
428hi def link stataErrInParen stataError
429hi def link stataEString stataString
430hi def link stataFormat stataSpecial
431hi def link stataGlobal stataMacro
432hi def link stataLocal stataMacro
433hi def link stataParenError stataError
434hi def link stataSlashComment stataComment
435hi def link stataStarComment stataComment
436
437hi def link stataCommand Define
438hi def link stataComment Comment
439hi def link stataConditional Conditional
440hi def link stataError Error
441hi def link stataFunc None
442hi def link stataMacro Define
443hi def link stataRepeat Repeat
444hi def link stataSpecial SpecialChar
445hi def link stataString String
446
447let b:current_syntax = "stata"
448
449" vim: ts=8