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