stata.vim 26 KB

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