Warning, /frameworks/syntax-highlighting/autotests/input/highlight.do is written in an unsupported language. File is not indexed.
0001 /* Test file for kate's stata syntax highlighting 0002 */ 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 /* set default statistic */ 0014 local current "mean" 0015 0016 gettoken left anything : anything, match(prns) 0017 while "`left'"!="" { 0018 if "`prns'"!="" { 0019 if !inlist("`left'","mean","sum") { 0020 di as error "Statistic `left' not supported" 0021 exit 198 0022 } 0023 local current "`left'" 0024 } 0025 else { 0026 local `current'vars ``current'vars' `left' 0027 } 0028 gettoken left anything : anything, match(prns) 0029 } 0030 if ("`meanvars'"!="") { 0031 confirm var `meanvars' 0032 unab meanvars : `meanvars' 0033 } 0034 if ("`sumvars'"!="") { 0035 confirm var `sumvars' 0036 unab sumvars : `sumvars' 0037 } 0038 0039 quietly { 0040 g _count = 1 0041 local xvars `meanvars' `sumvars' _count 0042 0043 /* create dummy by-var if no by option is specified */ 0044 if "`by'"=="" { 0045 tempvar by 0046 g byte `by' = 1 0047 } 0048 tempvar `xvars' `by' 0049 0050 /* create negative for subtraction when spell ends */ 0051 cap foreach v of varlist `xvars' { 0052 g double ``v'' = -`v' 0053 local txvars `txvars' ``v'' 0054 } 0055 cap foreach v of varlist `by' { 0056 g double ``v'' = `v' 0057 local txvars `txvars' ``v'' 0058 } 0059 0060 stack `date0' `xvars' `by' `date1' `txvars', into(`date0' `xvars' `by') clear 0061 0062 /* calculate totals per date */ 0063 cap foreach v of varlist `xvars' { 0064 egen double ``v'' = sum(`v'), by(`by' `date0') 0065 } 0066 0067 /* unique dates only */ 0068 by `by' `date0', sort: keep if _n==1 0069 0070 /* calculate totals (+ when spell starts - when ends) */ 0071 sort `by' 0072 cap foreach v of varlist `xvars' { 0073 by `by': replace `v' = sum(``v'') 0074 } 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 } 0088 0089 end