xref: /vim-8.2.3635/runtime/syntax/stata.vim (revision 89bcfda6)
1" stata.vim -- Vim syntax file for Stata do, ado, and class files.
2" Language:	Stata and/or Mata
3" Maintainer:	Jeff Pitblado <[email protected]>
4" Last Change:	26apr2006
5" Version:	1.1.4
6
7" Log:
8" 14apr2006	renamed syntax groups st* to stata*
9"		'syntax clear' only under version control
10"		check for 'b:current_syntax', removed 'did_stata_syntax_inits'
11" 17apr2006	fixed start expression for stataFunc
12" 26apr2006	fixed brace confusion in stataErrInParen and stataErrInBracket
13"		fixed paren/bracket confusion in stataFuncGroup
14
15" quit when a syntax file was already loaded
16if exists("b:current_syntax")
17	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
186syn cluster stataFuncGroup contains=@stataMacroGroup,stataFunc,stataString,stataEstring,stataParen,stataBracket
187syn cluster stataMacroGroup contains=stataGlobal,stataLocal
188syn cluster stataParenGroup contains=stataParenError,stataBracketError,stataBraceError,stataSpecial,stataFormat
189
190" Stata functions
191" Math
192syn 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
227" Probability distriubtions and density functions
228syn 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
272" Random numbers
273syn region stataFunc matchgroup=Function start=/\<uniform(/ end=/)/ contains=@stataFuncGroup
274" String
275syn 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
301" Programming
302syn 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
337" Date
338syn 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
349" Time-series
350syn 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
356"
357syn 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
361"
362syn 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
368"
369syn 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
380"
381syn region stataFunc matchgroup=Function start=/\<tin(/ end=/)/ contains=@stataFuncGroup
382syn region stataFunc matchgroup=Function start=/\<twithin(/ end=/)/ contains=@stataFuncGroup
383" Matrix
384syn 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
395"
396syn 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
410
411" Errors to catch
412" taken from $VIMRUNTIME/syntax/c.vim
413" catch errors caused by wrong parenthesis, braces and brackets
414syn region	stataParen	transparent start=/(/ end=/)/  contains=ALLBUT,@stataParenGroup,stataErrInBracket,stataErrInBrace
415syn region	stataBracket	transparent start=/\[/ end=/]/ contains=ALLBUT,@stataParenGroup,stataErrInParen,stataErrInBrace
416syn region	stataBrace	transparent start=/{/ end=/}/  contains=ALLBUT,@stataParenGroup,stataErrInParen,stataErrInBracket
417syn match	stataParenError	/[\])}]/
418syn match	stataBracketError	/]/
419syn match	stataBraceError	/}/
420syn match	stataErrInParen	contained /[\]}]/
421syn match	stataErrInBracket	contained /[)}]/
422syn 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
451