blob: d9afba6de587bfb814415740858658a78ed25f60 [file] [log] [blame]
Bram Moolenaarf193fff2006-04-27 00:02:13 +00001" smcl.vim -- Vim syntax file for smcl files.
Bram Moolenaarc6249bb2006-04-15 20:25:09 +00002" Language: SMCL -- Stata Markup and Control Language
3" Maintainer: Jeff Pitblado <jpitblado@stata.com>
Bram Moolenaarf193fff2006-04-27 00:02:13 +00004" Last Change: 26apr2006
5" Version: 1.1.2
Bram Moolenaarc6249bb2006-04-15 20:25:09 +00006
7" Log:
8" 20mar2003 updated the match definition for cmdab
9" 14apr2006 'syntax clear' only under version control
10" check for 'b:current_syntax', removed 'did_smcl_syntax_inits'
Bram Moolenaarf193fff2006-04-27 00:02:13 +000011" 26apr2006 changed 'stata_smcl' to 'smcl'
Bram Moolenaarc6249bb2006-04-15 20:25:09 +000012
13if version < 600
14 syntax clear
15elseif exists("b:current_syntax")
16 finish
17endif
18
19syntax case match
20
21syn keyword smclCCLword current_date contained
22syn keyword smclCCLword current_time contained
23syn keyword smclCCLword rmsg_time contained
24syn keyword smclCCLword stata_version contained
25syn keyword smclCCLword version contained
26syn keyword smclCCLword born_date contained
27syn keyword smclCCLword flavor contained
28syn keyword smclCCLword SE contained
29syn keyword smclCCLword mode contained
30syn keyword smclCCLword console contained
31syn keyword smclCCLword os contained
32syn keyword smclCCLword osdtl contained
33syn keyword smclCCLword machine_type contained
34syn keyword smclCCLword byteorder contained
35syn keyword smclCCLword sysdir_stata contained
36syn keyword smclCCLword sysdir_updates contained
37syn keyword smclCCLword sysdir_base contained
38syn keyword smclCCLword sysdir_site contained
39syn keyword smclCCLword sysdir_plus contained
40syn keyword smclCCLword sysdir_personal contained
41syn keyword smclCCLword sysdir_oldplace contained
42syn keyword smclCCLword adopath contained
43syn keyword smclCCLword pwd contained
44syn keyword smclCCLword dirsep contained
45syn keyword smclCCLword max_N_theory contained
46syn keyword smclCCLword max_N_current contained
47syn keyword smclCCLword max_k_theory contained
48syn keyword smclCCLword max_k_current contained
49syn keyword smclCCLword max_width_theory contained
50syn keyword smclCCLword max_width_current contained
51syn keyword smclCCLword max_matsize contained
52syn keyword smclCCLword min_matsize contained
53syn keyword smclCCLword max_macrolen contained
54syn keyword smclCCLword macrolen contained
55syn keyword smclCCLword max_cmdlen contained
56syn keyword smclCCLword cmdlen contained
57syn keyword smclCCLword namelen contained
58syn keyword smclCCLword mindouble contained
59syn keyword smclCCLword maxdouble contained
60syn keyword smclCCLword epsdouble contained
61syn keyword smclCCLword minfloat contained
62syn keyword smclCCLword maxfloat contained
63syn keyword smclCCLword epsfloat contained
64syn keyword smclCCLword minlong contained
65syn keyword smclCCLword maxlong contained
66syn keyword smclCCLword minint contained
67syn keyword smclCCLword maxint contained
68syn keyword smclCCLword minbyte contained
69syn keyword smclCCLword maxbyte contained
70syn keyword smclCCLword maxstrvarlen contained
71syn keyword smclCCLword memory contained
72syn keyword smclCCLword maxvar contained
73syn keyword smclCCLword matsize contained
74syn keyword smclCCLword N contained
75syn keyword smclCCLword k contained
76syn keyword smclCCLword width contained
77syn keyword smclCCLword changed contained
78syn keyword smclCCLword filename contained
79syn keyword smclCCLword filedate contained
80syn keyword smclCCLword more contained
81syn keyword smclCCLword rmsg contained
82syn keyword smclCCLword dp contained
83syn keyword smclCCLword linesize contained
84syn keyword smclCCLword pagesize contained
85syn keyword smclCCLword logtype contained
86syn keyword smclCCLword linegap contained
87syn keyword smclCCLword scrollbufsize contained
88syn keyword smclCCLword varlabelpos contained
89syn keyword smclCCLword reventries contained
90syn keyword smclCCLword graphics contained
91syn keyword smclCCLword scheme contained
92syn keyword smclCCLword printcolor contained
93syn keyword smclCCLword adosize contained
94syn keyword smclCCLword maxdb contained
95syn keyword smclCCLword virtual contained
96syn keyword smclCCLword checksum contained
97syn keyword smclCCLword timeout1 contained
98syn keyword smclCCLword timeout2 contained
99syn keyword smclCCLword httpproxy contained
100syn keyword smclCCLword h_current contained
101syn keyword smclCCLword max_matsize contained
102syn keyword smclCCLword min_matsize contained
103syn keyword smclCCLword max_macrolen contained
104syn keyword smclCCLword macrolen contained
105syn keyword smclCCLword max_cmdlen contained
106syn keyword smclCCLword cmdlen contained
107syn keyword smclCCLword namelen contained
108syn keyword smclCCLword mindouble contained
109syn keyword smclCCLword maxdouble contained
110syn keyword smclCCLword epsdouble contained
111syn keyword smclCCLword minfloat contained
112syn keyword smclCCLword maxfloat contained
113syn keyword smclCCLword epsfloat contained
114syn keyword smclCCLword minlong contained
115syn keyword smclCCLword maxlong contained
116syn keyword smclCCLword minint contained
117syn keyword smclCCLword maxint contained
118syn keyword smclCCLword minbyte contained
119syn keyword smclCCLword maxbyte contained
120syn keyword smclCCLword maxstrvarlen contained
121syn keyword smclCCLword memory contained
122syn keyword smclCCLword maxvar contained
123syn keyword smclCCLword matsize contained
124syn keyword smclCCLword N contained
125syn keyword smclCCLword k contained
126syn keyword smclCCLword width contained
127syn keyword smclCCLword changed contained
128syn keyword smclCCLword filename contained
129syn keyword smclCCLword filedate contained
130syn keyword smclCCLword more contained
131syn keyword smclCCLword rmsg contained
132syn keyword smclCCLword dp contained
133syn keyword smclCCLword linesize contained
134syn keyword smclCCLword pagesize contained
135syn keyword smclCCLword logtype contained
136syn keyword smclCCLword linegap contained
137syn keyword smclCCLword scrollbufsize contained
138syn keyword smclCCLword varlabelpos contained
139syn keyword smclCCLword reventries contained
140syn keyword smclCCLword graphics contained
141syn keyword smclCCLword scheme contained
142syn keyword smclCCLword printcolor contained
143syn keyword smclCCLword adosize contained
144syn keyword smclCCLword maxdb contained
145syn keyword smclCCLword virtual contained
146syn keyword smclCCLword checksum contained
147syn keyword smclCCLword timeout1 contained
148syn keyword smclCCLword timeout2 contained
149syn keyword smclCCLword httpproxy contained
150syn keyword smclCCLword httpproxyhost contained
151syn keyword smclCCLword httpproxyport contained
152syn keyword smclCCLword httpproxyauth contained
153syn keyword smclCCLword httpproxyuser contained
154syn keyword smclCCLword httpproxypw contained
155syn keyword smclCCLword trace contained
156syn keyword smclCCLword tracedepth contained
157syn keyword smclCCLword tracesep contained
158syn keyword smclCCLword traceindent contained
159syn keyword smclCCLword traceexapnd contained
160syn keyword smclCCLword tracenumber contained
161syn keyword smclCCLword type contained
162syn keyword smclCCLword level contained
163syn keyword smclCCLword seed contained
164syn keyword smclCCLword searchdefault contained
165syn keyword smclCCLword pi contained
166syn keyword smclCCLword rc contained
167
168" Directive for the contant and current-value class
169syn region smclCCL start=/{ccl / end=/}/ oneline contains=smclCCLword
170
171" The order of the following syntax definitions is roughly that of the on-line
172" documentation for smcl in Stata, from within Stata see help smcl.
173
174" Format directives for line and paragraph modes
175syn match smclFormat /{smcl}/
176syn match smclFormat /{sf\(\|:[^}]\+\)}/
177syn match smclFormat /{it\(\|:[^}]\+\)}/
178syn match smclFormat /{bf\(\|:[^}]\+\)}/
179syn match smclFormat /{inp\(\|:[^}]\+\)}/
180syn match smclFormat /{input\(\|:[^}]\+\)}/
181syn match smclFormat /{err\(\|:[^}]\+\)}/
182syn match smclFormat /{error\(\|:[^}]\+\)}/
183syn match smclFormat /{res\(\|:[^}]\+\)}/
184syn match smclFormat /{result\(\|:[^}]\+\)}/
185syn match smclFormat /{txt\(\|:[^}]\+\)}/
186syn match smclFormat /{text\(\|:[^}]\+\)}/
187syn match smclFormat /{com\(\|:[^}]\+\)}/
188syn match smclFormat /{cmd\(\|:[^}]\+\)}/
189syn match smclFormat /{cmdab:[^:}]\+:[^:}()]*\(\|:\|:(\|:()\)}/
190syn match smclFormat /{hi\(\|:[^}]\+\)}/
191syn match smclFormat /{hilite\(\|:[^}]\+\)}/
192syn match smclFormat /{ul \(on\|off\)}/
193syn match smclFormat /{ul:[^}]\+}/
194syn match smclFormat /{hline\(\| \d\+\| -\d\+\|:[^}]\+\)}/
195syn match smclFormat /{dup \d\+:[^}]\+}/
196syn match smclFormat /{c [^}]\+}/
197syn match smclFormat /{char [^}]\+}/
198syn match smclFormat /{reset}/
199
200" Formatting directives for line mode
201syn match smclFormat /{title:[^}]\+}/
202syn match smclFormat /{center:[^}]\+}/
203syn match smclFormat /{centre:[^}]\+}/
204syn match smclFormat /{center \d\+:[^}]\+}/
205syn match smclFormat /{centre \d\+:[^}]\+}/
206syn match smclFormat /{right:[^}]\+}/
207syn match smclFormat /{lalign \d\+:[^}]\+}/
208syn match smclFormat /{ralign \d\+:[^}]\+}/
209syn match smclFormat /{\.\.\.}/
210syn match smclFormat /{col \d\+}/
211syn match smclFormat /{space \d\+}/
212syn match smclFormat /{tab}/
213
214" Formatting directives for paragraph mode
215syn match smclFormat /{bind:[^}]\+}/
216syn match smclFormat /{break}/
217
218syn match smclFormat /{p}/
219syn match smclFormat /{p \d\+}/
220syn match smclFormat /{p \d\+ \d\+}/
221syn match smclFormat /{p \d\+ \d\+ \d\+}/
222syn match smclFormat /{pstd}/
223syn match smclFormat /{psee}/
224syn match smclFormat /{phang\(\|2\|3\)}/
225syn match smclFormat /{pmore\(\|2\|3\)}/
226syn match smclFormat /{pin\(\|2\|3\)}/
227syn match smclFormat /{p_end}/
228
229syn match smclFormat /{opt \w\+\(\|:\w\+\)\(\|([^)}]*)\)}/
230
231syn match smclFormat /{opth \w*\(\|:\w\+\)(\w*)}/
232syn match smclFormat /{opth "\w\+\((\w\+:[^)}]\+)\)"}/
233syn match smclFormat /{opth \w\+:\w\+(\w\+:[^)}]\+)}/
234
235syn match smclFormat /{dlgtab\s*\(\|\d\+\|\d\+\s\+\d\+\):[^}]\+}/
236
237syn match smclFormat /{p2colset\s\+\d\+\s\+\d\+\s\+\d\+\s\+\d\+}/
238syn match smclFormat /{p2col\s\+:[^{}]*}.*{p_end}/
239syn match smclFormat /{p2col\s\+:{[^{}]*}}.*{p_end}/
240syn match smclFormat /{p2coldent\s*:[^{}]*}.*{p_end}/
241syn match smclFormat /{p2coldent\s*:{[^{}]*}}.*{p_end}/
242syn match smclFormat /{p2line\s*\(\|\d\+\s\+\d\+\)}/
243syn match smclFormat /{p2colreset}/
244
245syn match smclFormat /{synoptset\s\+\d\+\s\+\w\+}/
246syn match smclFormat /{synopt\s*:[^{}]*}.*{p_end}/
247syn match smclFormat /{synopt\s*:{[^{}]*}}.*{p_end}/
248syn match smclFormat /{syntab\s*:[^{}]*}/
249syn match smclFormat /{synopthdr}/
250syn match smclFormat /{synoptline}/
251
252" Link directive for line and paragraph modes
253syn match smclLink /{help [^}]\+}/
254syn match smclLink /{helpb [^}]\+}/
255syn match smclLink /{help_d:[^}]\+}/
256syn match smclLink /{search [^}]\+}/
257syn match smclLink /{search_d:[^}]\+}/
258syn match smclLink /{browse [^}]\+}/
259syn match smclLink /{view [^}]\+}/
260syn match smclLink /{view_d:[^}]\+}/
261syn match smclLink /{news:[^}]\+}/
262syn match smclLink /{net [^}]\+}/
263syn match smclLink /{net_d:[^}]\+}/
264syn match smclLink /{netfrom_d:[^}]\+}/
265syn match smclLink /{ado [^}]\+}/
266syn match smclLink /{ado_d:[^}]\+}/
267syn match smclLink /{update [^}]\+}/
268syn match smclLink /{update_d:[^}]\+}/
269syn match smclLink /{dialog [^}]\+}/
270syn match smclLink /{back:[^}]\+}/
271syn match smclLink /{clearmore:[^}]\+}/
272syn match smclLink /{stata [^}]\+}/
273
274syn match smclLink /{newvar\(\|:[^}]\+\)}/
275syn match smclLink /{var\(\|:[^}]\+\)}/
276syn match smclLink /{varname\(\|:[^}]\+\)}/
277syn match smclLink /{vars\(\|:[^}]\+\)}/
278syn match smclLink /{varlist\(\|:[^}]\+\)}/
279syn match smclLink /{depvar\(\|:[^}]\+\)}/
280syn match smclLink /{depvars\(\|:[^}]\+\)}/
281syn match smclLink /{depvarlist\(\|:[^}]\+\)}/
282syn match smclLink /{indepvars\(\|:[^}]\+\)}/
283
284syn match smclLink /{dtype}/
285syn match smclLink /{ifin}/
286syn match smclLink /{weight}/
287
288" Comment
289syn region smclComment start=/{\*/ end=/}/ oneline
290
291" Strings
292syn region smclString matchgroup=Nothing start=/"/ end=/"/ oneline
293syn region smclEString matchgroup=Nothing start=/`"/ end=/"'/ oneline contains=smclEString
294
295" assign highlight groups
296
297hi def link smclEString smclString
298
299hi def link smclCCLword Statement
300hi def link smclCCL Type
301hi def link smclFormat Statement
302hi def link smclLink Underlined
303hi def link smclComment Comment
304hi def link smclString String
305
Bram Moolenaarf193fff2006-04-27 00:02:13 +0000306let b:current_syntax = "smcl"
Bram Moolenaarc6249bb2006-04-15 20:25:09 +0000307
308" vim: ts=8