" smcl.vim -- Vim syntax file for smcl files.
" Language: SMCL -- Stata Markup and Control Language
" Maintainer: Jeff Pitblado <jpitblado@stata.com>
" Last Change: 26apr2006
" Version: 1.1.2
" Log:
" 20mar2003 updated the match definition for cmdab
" 14apr2006 'syntax clear' only under version control
" check for 'b:current_syntax', removed 'did_smcl_syntax_inits'
" 26apr2006 changed 'stata_smcl' to 'smcl'
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
syntax case match
syn keyword smclCCLword current_date contained
syn keyword smclCCLword current_time contained
syn keyword smclCCLword rmsg_time contained
syn keyword smclCCLword stata_version contained
syn keyword smclCCLword version contained
syn keyword smclCCLword born_date contained
syn keyword smclCCLword flavor contained
syn keyword smclCCLword SE contained
syn keyword smclCCLword mode contained
syn keyword smclCCLword console contained
syn keyword smclCCLword os contained
syn keyword smclCCLword osdtl contained
syn keyword smclCCLword machine_type contained
syn keyword smclCCLword byteorder contained
syn keyword smclCCLword sysdir_stata contained
syn keyword smclCCLword sysdir_updates contained
syn keyword smclCCLword sysdir_base contained
syn keyword smclCCLword sysdir_site contained
syn keyword smclCCLword sysdir_plus contained
syn keyword smclCCLword sysdir_personal contained
syn keyword smclCCLword sysdir_oldplace contained
syn keyword smclCCLword adopath contained
syn keyword smclCCLword pwd contained
syn keyword smclCCLword dirsep contained
syn keyword smclCCLword max_N_theory contained
syn keyword smclCCLword max_N_current contained
syn keyword smclCCLword max_k_theory contained
syn keyword smclCCLword max_k_current contained
syn keyword smclCCLword max_width_theory contained
syn keyword smclCCLword max_width_current contained
syn keyword smclCCLword max_matsize contained
syn keyword smclCCLword min_matsize contained
syn keyword smclCCLword max_macrolen contained
syn keyword smclCCLword macrolen contained
syn keyword smclCCLword max_cmdlen contained
syn keyword smclCCLword cmdlen contained
syn keyword smclCCLword namelen contained
syn keyword smclCCLword mindouble contained
syn keyword smclCCLword maxdouble contained
syn keyword smclCCLword epsdouble contained
syn keyword smclCCLword minfloat contained
syn keyword smclCCLword maxfloat contained
syn keyword smclCCLword epsfloat contained
syn keyword smclCCLword minlong contained
syn keyword smclCCLword maxlong contained
syn keyword smclCCLword minint contained
syn keyword smclCCLword maxint contained
syn keyword smclCCLword minbyte contained
syn keyword smclCCLword maxbyte contained
syn keyword smclCCLword maxstrvarlen contained
syn keyword smclCCLword memory contained
syn keyword smclCCLword maxvar contained
syn keyword smclCCLword matsize contained
syn keyword smclCCLword N contained
syn keyword smclCCLword k contained
syn keyword smclCCLword width contained
syn keyword smclCCLword changed contained
syn keyword smclCCLword filename contained
syn keyword smclCCLword filedate contained
syn keyword smclCCLword more contained
syn keyword smclCCLword rmsg contained
syn keyword smclCCLword dp contained
syn keyword smclCCLword linesize contained
syn keyword smclCCLword pagesize contained
syn keyword smclCCLword logtype contained
syn keyword smclCCLword linegap contained
syn keyword smclCCLword scrollbufsize contained
syn keyword smclCCLword varlabelpos contained
syn keyword smclCCLword reventries contained
syn keyword smclCCLword graphics contained
syn keyword smclCCLword scheme contained
syn keyword smclCCLword printcolor contained
syn keyword smclCCLword adosize contained
syn keyword smclCCLword maxdb contained
syn keyword smclCCLword virtual contained
syn keyword smclCCLword checksum contained
syn keyword smclCCLword timeout1 contained
syn keyword smclCCLword timeout2 contained
syn keyword smclCCLword httpproxy contained
syn keyword smclCCLword h_current contained
syn keyword smclCCLword max_matsize contained
syn keyword smclCCLword min_matsize contained
syn keyword smclCCLword max_macrolen contained
syn keyword smclCCLword macrolen contained
syn keyword smclCCLword max_cmdlen contained
syn keyword smclCCLword cmdlen contained
syn keyword smclCCLword namelen contained
syn keyword smclCCLword mindouble contained
syn keyword smclCCLword maxdouble contained
syn keyword smclCCLword epsdouble contained
syn keyword smclCCLword minfloat contained
syn keyword smclCCLword maxfloat contained
syn keyword smclCCLword epsfloat contained
syn keyword smclCCLword minlong contained
syn keyword smclCCLword maxlong contained
syn keyword smclCCLword minint contained
syn keyword smclCCLword maxint contained
syn keyword smclCCLword minbyte contained
syn keyword smclCCLword maxbyte contained
syn keyword smclCCLword maxstrvarlen contained
syn keyword smclCCLword memory contained
syn keyword smclCCLword maxvar contained
syn keyword smclCCLword matsize contained
syn keyword smclCCLword N contained
syn keyword smclCCLword k contained
syn keyword smclCCLword width contained
syn keyword smclCCLword changed contained
syn keyword smclCCLword filename contained
syn keyword smclCCLword filedate contained
syn keyword smclCCLword more contained
syn keyword smclCCLword rmsg contained
syn keyword smclCCLword dp contained
syn keyword smclCCLword linesize contained
syn keyword smclCCLword pagesize contained
syn keyword smclCCLword logtype contained
syn keyword smclCCLword linegap contained
syn keyword smclCCLword scrollbufsize contained
syn keyword smclCCLword varlabelpos contained
syn keyword smclCCLword reventries contained
syn keyword smclCCLword graphics contained
syn keyword smclCCLword scheme contained
syn keyword smclCCLword printcolor contained
syn keyword smclCCLword adosize contained
syn keyword smclCCLword maxdb contained
syn keyword smclCCLword virtual contained
syn keyword smclCCLword checksum contained
syn keyword smclCCLword timeout1 contained
syn keyword smclCCLword timeout2 contained
syn keyword smclCCLword httpproxy contained
syn keyword smclCCLword httpproxyhost contained
syn keyword smclCCLword httpproxyport contained
syn keyword smclCCLword httpproxyauth contained
syn keyword smclCCLword httpproxyuser contained
syn keyword smclCCLword httpproxypw contained
syn keyword smclCCLword trace contained
syn keyword smclCCLword tracedepth contained
syn keyword smclCCLword tracesep contained
syn keyword smclCCLword traceindent contained
syn keyword smclCCLword traceexapnd contained
syn keyword smclCCLword tracenumber contained
syn keyword smclCCLword type contained
syn keyword smclCCLword level contained
syn keyword smclCCLword seed contained
syn keyword smclCCLword searchdefault contained
syn keyword smclCCLword pi contained
syn keyword smclCCLword rc contained
" Directive for the contant and current-value class
syn region smclCCL start=/{ccl / end=/}/ oneline contains=smclCCLword
" The order of the following syntax definitions is roughly that of the on-line
" documentation for smcl in Stata, from within Stata see help smcl.
" Format directives for line and paragraph modes
syn match smclFormat /{smcl}/
syn match smclFormat /{sf\(\|:[^}]\+\)}/
syn match smclFormat /{it\(\|:[^}]\+\)}/
syn match smclFormat /{bf\(\|:[^}]\+\)}/
syn match smclFormat /{inp\(\|:[^}]\+\)}/
syn match smclFormat /{input\(\|:[^}]\+\)}/
syn match smclFormat /{err\(\|:[^}]\+\)}/
syn match smclFormat /{error\(\|:[^}]\+\)}/
syn match smclFormat /{res\(\|:[^}]\+\)}/
syn match smclFormat /{result\(\|:[^}]\+\)}/
syn match smclFormat /{txt\(\|:[^}]\+\)}/
syn match smclFormat /{text\(\|:[^}]\+\)}/
syn match smclFormat /{com\(\|:[^}]\+\)}/
syn match smclFormat /{cmd\(\|:[^}]\+\)}/
syn match smclFormat /{cmdab:[^:}]\+:[^:}()]*\(\|:\|:(\|:()\)}/
syn match smclFormat /{hi\(\|:[^}]\+\)}/
syn match smclFormat /{hilite\(\|:[^}]\+\)}/
syn match smclFormat /{ul \(on\|off\)}/
syn match smclFormat /{ul:[^}]\+}/
syn match smclFormat /{hline\(\| \d\+\| -\d\+\|:[^}]\+\)}/
syn match smclFormat /{dup \d\+:[^}]\+}/
syn match smclFormat /{c [^}]\+}/
syn match smclFormat /{char [^}]\+}/
syn match smclFormat /{reset}/
" Formatting directives for line mode
syn match smclFormat /{title:[^}]\+}/
syn match smclFormat /{center:[^}]\+}/
syn match smclFormat /{centre:[^}]\+}/
syn match smclFormat /{center \d\+:[^}]\+}/
syn match smclFormat /{centre \d\+:[^}]\+}/
syn match smclFormat /{right:[^}]\+}/
syn match smclFormat /{lalign \d\+:[^}]\+}/
syn match smclFormat /{ralign \d\+:[^}]\+}/
syn match smclFormat /{\.\.\.}/
syn match smclFormat /{col \d\+}/
syn match smclFormat /{space \d\+}/
syn match smclFormat /{tab}/
" Formatting directives for paragraph mode
syn match smclFormat /{bind:[^}]\+}/
syn match smclFormat /{break}/
syn match smclFormat /{p}/
syn match smclFormat /{p \d\+}/
syn match smclFormat /{p \d\+ \d\+}/
syn match smclFormat /{p \d\+ \d\+ \d\+}/
syn match smclFormat /{pstd}/
syn match smclFormat /{psee}/
syn match smclFormat /{phang\(\|2\|3\)}/
syn match smclFormat /{pmore\(\|2\|3\)}/
syn match smclFormat /{pin\(\|2\|3\)}/
syn match smclFormat /{p_end}/
syn match smclFormat /{opt \w\+\(\|:\w\+\)\(\|([^)}]*)\)}/
syn match smclFormat /{opth \w*\(\|:\w\+\)(\w*)}/
syn match smclFormat /{opth "\w\+\((\w\+:[^)}]\+)\)"}/
syn match smclFormat /{opth \w\+:\w\+(\w\+:[^)}]\+)}/
syn match smclFormat /{dlgtab\s*\(\|\d\+\|\d\+\s\+\d\+\):[^}]\+}/
syn match smclFormat /{p2colset\s\+\d\+\s\+\d\+\s\+\d\+\s\+\d\+}/
syn match smclFormat /{p2col\s\+:[^{}]*}.*{p_end}/
syn match smclFormat /{p2col\s\+:{[^{}]*}}.*{p_end}/
syn match smclFormat /{p2coldent\s*:[^{}]*}.*{p_end}/
syn match smclFormat /{p2coldent\s*:{[^{}]*}}.*{p_end}/
syn match smclFormat /{p2line\s*\(\|\d\+\s\+\d\+\)}/
syn match smclFormat /{p2colreset}/
syn match smclFormat /{synoptset\s\+\d\+\s\+\w\+}/
syn match smclFormat /{synopt\s*:[^{}]*}.*{p_end}/
syn match smclFormat /{synopt\s*:{[^{}]*}}.*{p_end}/
syn match smclFormat /{syntab\s*:[^{}]*}/
syn match smclFormat /{synopthdr}/
syn match smclFormat /{synoptline}/
" Link directive for line and paragraph modes
syn match smclLink /{help [^}]\+}/
syn match smclLink /{helpb [^}]\+}/
syn match smclLink /{help_d:[^}]\+}/
syn match smclLink /{search [^}]\+}/
syn match smclLink /{search_d:[^}]\+}/
syn match smclLink /{browse [^}]\+}/
syn match smclLink /{view [^}]\+}/
syn match smclLink /{view_d:[^}]\+}/
syn match smclLink /{news:[^}]\+}/
syn match smclLink /{net [^}]\+}/
syn match smclLink /{net_d:[^}]\+}/
syn match smclLink /{netfrom_d:[^}]\+}/
syn match smclLink /{ado [^}]\+}/
syn match smclLink /{ado_d:[^}]\+}/
syn match smclLink /{update [^}]\+}/
syn match smclLink /{update_d:[^}]\+}/
syn match smclLink /{dialog [^}]\+}/
syn match smclLink /{back:[^}]\+}/
syn match smclLink /{clearmore:[^}]\+}/
syn match smclLink /{stata [^}]\+}/
syn match smclLink /{newvar\(\|:[^}]\+\)}/
syn match smclLink /{var\(\|:[^}]\+\)}/
syn match smclLink /{varname\(\|:[^}]\+\)}/
syn match smclLink /{vars\(\|:[^}]\+\)}/
syn match smclLink /{varlist\(\|:[^}]\+\)}/
syn match smclLink /{depvar\(\|:[^}]\+\)}/
syn match smclLink /{depvars\(\|:[^}]\+\)}/
syn match smclLink /{depvarlist\(\|:[^}]\+\)}/
syn match smclLink /{indepvars\(\|:[^}]\+\)}/
syn match smclLink /{dtype}/
syn match smclLink /{ifin}/
syn match smclLink /{weight}/
" Comment
syn region smclComment start=/{\*/ end=/}/ oneline
" Strings
syn region smclString matchgroup=Nothing start=/"/ end=/"/ oneline
syn region smclEString matchgroup=Nothing start=/`"/ end=/"'/ oneline contains=smclEString
" assign highlight groups
hi def link smclEString smclString
hi def link smclCCLword Statement
hi def link smclCCL Type
hi def link smclFormat Statement
hi def link smclLink Underlined
hi def link smclComment Comment
hi def link smclString String
let b:current_syntax = "smcl"
" vim: ts=8
|