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