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