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