fix tricky regression noticed by Vyacheslav Tokarev on Google Reader.
[kdelibs.git] / kate / tests / highlight.do
blob0b90b16b6a37e9947debbdd0a48fca8c5ed09103
1 /* Test file for kate's stata syntax highlighting
2 */
3 *! version 1.2.0 2mar2003 E. Leuven
4 program define spellsplit
5         version 7
6         syntax [anything], spell(varlist min=2 max=2) [ by(varlist)]
7         tokenize `spell'
8         local date0 `1'
9         local date1 `2'
10         local f0 : format `date0'
11         local f1 : format `date1'
13         /* set default statistic */
14         local current "mean"
16         gettoken left anything : anything, match(prns)
17         while "`left'"!="" {
18                 if "`prns'"!="" {
19                         if !inlist("`left'","mean","sum") {
20                                 di as error "Statistic `left' not supported"
21                                 exit 198
22                         }
23                         local current "`left'"
24                 }
25                 else {
26                         local `current'vars  ``current'vars' `left'
27                 }
28                 gettoken left anything : anything, match(prns)
29         }
30         if ("`meanvars'"!="") {
31                 confirm var `meanvars'
32                 unab meanvars : `meanvars'
33         }
34         if ("`sumvars'"!="") {
35                 confirm var `sumvars'
36                 unab sumvars : `sumvars'
37         }
39         quietly {
40                 g _count = 1
41                 local xvars `meanvars' `sumvars' _count
43                 /* create dummy by-var if no by option is specified */
44                 if "`by'"=="" {
45                         tempvar by
46                         g byte `by' = 1
47                 }
48                 tempvar `xvars' `by'
50                 /* create negative for subtraction when spell ends */
51                 cap foreach v of varlist `xvars' {
52                         g double ``v'' = -`v'
53                         local txvars `txvars' ``v''
54                 }
55                 cap foreach v of varlist `by' {
56                         g double ``v'' = `v'
57                         local txvars `txvars' ``v''
58                 }
60                 stack `date0' `xvars' `by' `date1' `txvars', into(`date0' `xvars' `by') clear
62                 /* calculate totals per date */
63                 cap foreach v of varlist `xvars' {
64                         egen double ``v'' = sum(`v'), by(`by' `date0')
65                 }
67                 /* unique dates only */
68                 by `by' `date0', sort: keep if _n==1
70                 /* calculate totals (+ when spell starts - when ends) */
71                 sort `by'
72                 cap foreach v of varlist `xvars' {
73                         by `by': replace `v' = sum(``v'')
74                 }
75                 by `by': g `date1' = `date0'[_n + 1]
77                 drop if `date0'>`date1'
78                 drop _stack
79                 drop if _count==0
80                 order `by' `date0' `date1' `xvars'
81                 format `date0' `f0'
82                 format `date1' `f1'
84                 cap for var `meanvars': replace X = X/_count
86                 compress
87         }
89 end