xref: /vim-8.2.3635/runtime/syntax/smcl.vim (revision cf2d8dee)
1" smcl.vim -- Vim syntax file for smcl files.
2" Language:	SMCL -- Stata Markup and Control Language
3" Maintainer:	Jeff Pitblado <[email protected]>
4" Last Change:	26apr2006
5" Version:	1.1.2
6
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'
11" 26apr2006	changed 'stata_smcl' to 'smcl'
12
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
306let b:current_syntax = "smcl"
307
308" vim: ts=8
309