Warning, /frameworks/syntax-highlighting/autotests/folding/highlight.do.fold is written in an unsupported language. File is not indexed.
0001 <beginfold id='1'>/*</beginfold id='1'> Test file for kate's stata syntax highlighting 0002 <endfold id='1'>*/</endfold id='1'> 0003 *! version 1.2.0 2mar2003 E. Leuven 0004 program define spellsplit 0005 version 7 0006 syntax [anything], spell(varlist min=2 max=2) [ by(varlist)] 0007 tokenize `spell' 0008 local date0 `1' 0009 local date1 `2' 0010 local f0 : format `date0' 0011 local f1 : format `date1' 0012 0013 <beginfold id='1'>/*</beginfold id='1'> set default statistic <endfold id='1'>*/</endfold id='1'> 0014 local current "mean" 0015 0016 gettoken left anything : anything, match(prns) 0017 while "`left'"!="" <beginfold id='2'>{</beginfold id='2'> 0018 if "`prns'"!="" <beginfold id='2'>{</beginfold id='2'> 0019 if !inlist("`left'","mean","sum") <beginfold id='2'>{</beginfold id='2'> 0020 di as error "Statistic `left' not supported" 0021 exit 198 0022 <endfold id='2'>}</endfold id='2'> 0023 local current "`left'" 0024 <endfold id='2'>}</endfold id='2'> 0025 else <beginfold id='2'>{</beginfold id='2'> 0026 local `current'vars ``current'vars' `left' 0027 <endfold id='2'>}</endfold id='2'> 0028 gettoken left anything : anything, match(prns) 0029 <endfold id='2'>}</endfold id='2'> 0030 if ("`meanvars'"!="") <beginfold id='2'>{</beginfold id='2'> 0031 confirm var `meanvars' 0032 unab meanvars : `meanvars' 0033 <endfold id='2'>}</endfold id='2'> 0034 if ("`sumvars'"!="") <beginfold id='2'>{</beginfold id='2'> 0035 confirm var `sumvars' 0036 unab sumvars : `sumvars' 0037 <endfold id='2'>}</endfold id='2'> 0038 0039 quietly <beginfold id='2'>{</beginfold id='2'> 0040 g _count = 1 0041 local xvars `meanvars' `sumvars' _count 0042 0043 <beginfold id='1'>/*</beginfold id='1'> create dummy by-var if no by option is specified <endfold id='1'>*/</endfold id='1'> 0044 if "`by'"=="" <beginfold id='2'>{</beginfold id='2'> 0045 tempvar by 0046 g byte `by' = 1 0047 <endfold id='2'>}</endfold id='2'> 0048 tempvar `xvars' `by' 0049 0050 <beginfold id='1'>/*</beginfold id='1'> create negative for subtraction when spell ends <endfold id='1'>*/</endfold id='1'> 0051 cap foreach v of varlist `xvars' <beginfold id='2'>{</beginfold id='2'> 0052 g double ``v'' = -`v' 0053 local txvars `txvars' ``v'' 0054 <endfold id='2'>}</endfold id='2'> 0055 cap foreach v of varlist `by' <beginfold id='2'>{</beginfold id='2'> 0056 g double ``v'' = `v' 0057 local txvars `txvars' ``v'' 0058 <endfold id='2'>}</endfold id='2'> 0059 0060 stack `date0' `xvars' `by' `date1' `txvars', into(`date0' `xvars' `by') clear 0061 0062 <beginfold id='1'>/*</beginfold id='1'> calculate totals per date <endfold id='1'>*/</endfold id='1'> 0063 cap foreach v of varlist `xvars' <beginfold id='2'>{</beginfold id='2'> 0064 egen double ``v'' = sum(`v'), by(`by' `date0') 0065 <endfold id='2'>}</endfold id='2'> 0066 0067 <beginfold id='1'>/*</beginfold id='1'> unique dates only <endfold id='1'>*/</endfold id='1'> 0068 by `by' `date0', sort: keep if _n==1 0069 0070 <beginfold id='1'>/*</beginfold id='1'> calculate totals (+ when spell starts - when ends) <endfold id='1'>*/</endfold id='1'> 0071 sort `by' 0072 cap foreach v of varlist `xvars' <beginfold id='2'>{</beginfold id='2'> 0073 by `by': replace `v' = sum(``v'') 0074 <endfold id='2'>}</endfold id='2'> 0075 by `by': g `date1' = `date0'[_n + 1] 0076 0077 drop if `date0'>`date1' 0078 drop _stack 0079 drop if _count==0 0080 order `by' `date0' `date1' `xvars' 0081 format `date0' `f0' 0082 format `date1' `f1' 0083 0084 cap for var `meanvars': replace X = X/_count 0085 0086 compress 0087 <endfold id='2'>}</endfold id='2'> 0088 0089 end