File indexing completed on 2024-05-12 04:02:06

0001 <!DOCTYPE html>
0002 <html><head>
0003 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
0004 <title>highlight.do</title>
0005 <meta name="generator" content="KF5::SyntaxHighlighting - Definition (Stata) - Theme (Breeze Light)"/>
0006 </head><body style="background-color:#ffffff;color:#1f1c1b"><pre>
0007 <span style="color:#898887">/* Test file for kate's stata syntax highlighting</span>
0008 <span style="color:#898887">*/</span>
0009 *! <span style="font-weight:bold">version</span> 1.2.0 2mar2003 E. Leuven
0010 <span style="font-weight:bold">program</span> <span style="font-weight:bold">define</span> spellsplit
0011         <span style="font-weight:bold">version</span> 7
0012         <span style="font-weight:bold">syntax</span> [anything], spell(<span style="font-weight:bold">varlist</span> <span style="color:#644a9b">min</span>=2 <span style="color:#644a9b">max</span>=2) [ <span style="font-weight:bold">by</span>(<span style="font-weight:bold">varlist</span>)]
0013         <span style="font-weight:bold">tokenize</span> <span style="color:#006e28">`spell'</span>
0014         <span style="font-weight:bold">local</span> date0 <span style="color:#006e28">`1'</span>
0015         <span style="font-weight:bold">local</span> date1 <span style="color:#006e28">`2'</span>
0016         <span style="font-weight:bold">local</span> f0 : <span style="font-weight:bold">format</span> <span style="color:#006e28">`date0'</span>
0017         <span style="font-weight:bold">local</span> f1 : <span style="font-weight:bold">format</span> <span style="color:#006e28">`date1'</span>
0018 
0019         <span style="color:#898887">/* set default statistic */</span>
0020         <span style="font-weight:bold">local</span> current <span style="color:#bf0303">"mean"</span>
0021 
0022         gettoken left anything : anything, <span style="color:#644a9b">match</span>(prns)
0023         <span style="font-weight:bold">while</span> <span style="color:#bf0303">"`left'"</span>!=<span style="color:#bf0303">""</span> {
0024                 <span style="font-weight:bold">if</span> <span style="color:#bf0303">"`prns'"</span>!=<span style="color:#bf0303">""</span> {
0025                         <span style="font-weight:bold">if</span> !<span style="color:#644a9b">inlist</span>(<span style="color:#bf0303">"`left'"</span>,<span style="color:#bf0303">"mean"</span>,<span style="color:#bf0303">"sum"</span>) {
0026                                 <span style="font-weight:bold">di</span> <span style="font-weight:bold">as</span> <span style="font-weight:bold">error</span> <span style="color:#bf0303">"Statistic `left' not supported"</span>
0027                                 <span style="font-weight:bold">exit</span> 198
0028                         }
0029                         <span style="font-weight:bold">local</span> current <span style="color:#bf0303">"`left'"</span>
0030                 }
0031                 <span style="font-weight:bold">else</span> {
0032                         <span style="font-weight:bold">local</span> <span style="color:#006e28">`current'</span>vars  <span style="color:#006e28">``current'</span>vars' <span style="color:#006e28">`left'</span>
0033                 }
0034                 gettoken left anything : anything, <span style="color:#644a9b">match</span>(prns)
0035         }
0036         <span style="font-weight:bold">if</span> (<span style="color:#bf0303">"`meanvars'"</span>!=<span style="color:#bf0303">""</span>) {
0037                 <span style="font-weight:bold">confirm</span> <span style="font-weight:bold">var</span> <span style="color:#006e28">`meanvars'</span>
0038                 <span style="font-weight:bold">unab</span> meanvars : <span style="color:#006e28">`meanvars'</span>
0039         }
0040         <span style="font-weight:bold">if</span> (<span style="color:#bf0303">"`sumvars'"</span>!=<span style="color:#bf0303">""</span>) {
0041                 <span style="font-weight:bold">confirm</span> <span style="font-weight:bold">var</span> <span style="color:#006e28">`sumvars'</span>
0042                 <span style="font-weight:bold">unab</span> sumvars : <span style="color:#006e28">`sumvars'</span>
0043         }
0044 
0045         <span style="font-weight:bold">quietly</span> {
0046                 g _count = 1
0047                 <span style="font-weight:bold">local</span> xvars <span style="color:#006e28">`meanvars'</span> <span style="color:#006e28">`sumvars'</span> _count
0048 
0049                 <span style="color:#898887">/* create dummy by-var if no by option is specified */</span>
0050                 <span style="font-weight:bold">if</span> <span style="color:#bf0303">"`by'"</span>==<span style="color:#bf0303">""</span> {
0051                         <span style="font-weight:bold">tempvar</span> <span style="font-weight:bold">by</span>
0052                         g <span style="font-weight:bold">byte</span> <span style="color:#006e28">`by'</span> = 1
0053                 }
0054                 <span style="font-weight:bold">tempvar</span> <span style="color:#006e28">`xvars'</span> <span style="color:#006e28">`by'</span>
0055 
0056                 <span style="color:#898887">/* create negative for subtraction when spell ends */</span>
0057                 cap <span style="font-weight:bold">foreach</span> v <span style="font-weight:bold">of</span> <span style="font-weight:bold">varlist</span> <span style="color:#006e28">`xvars'</span> {
0058                         g <span style="font-weight:bold">double</span> <span style="color:#006e28">``v'</span>' = -<span style="color:#006e28">`v'</span>
0059                         <span style="font-weight:bold">local</span> txvars <span style="color:#006e28">`txvars'</span> <span style="color:#006e28">``v'</span>'
0060                 }
0061                 cap <span style="font-weight:bold">foreach</span> v <span style="font-weight:bold">of</span> <span style="font-weight:bold">varlist</span> <span style="color:#006e28">`by'</span> {
0062                         g <span style="font-weight:bold">double</span> <span style="color:#006e28">``v'</span>' = <span style="color:#006e28">`v'</span>
0063                         <span style="font-weight:bold">local</span> txvars <span style="color:#006e28">`txvars'</span> <span style="color:#006e28">``v'</span>'
0064                 }
0065 
0066                 <span style="font-weight:bold">stack</span> <span style="color:#006e28">`date0'</span> <span style="color:#006e28">`xvars'</span> <span style="color:#006e28">`by'</span> <span style="color:#006e28">`date1'</span> <span style="color:#006e28">`txvars'</span>, into(<span style="color:#006e28">`date0'</span> <span style="color:#006e28">`xvars'</span> <span style="color:#006e28">`by'</span>) <span style="font-weight:bold">clear</span>
0067 
0068                 <span style="color:#898887">/* calculate totals per date */</span>
0069                 cap <span style="font-weight:bold">foreach</span> v <span style="font-weight:bold">of</span> <span style="font-weight:bold">varlist</span> <span style="color:#006e28">`xvars'</span> {
0070                         <span style="font-weight:bold">egen</span> <span style="font-weight:bold">double</span> <span style="color:#006e28">``v'</span>' = <span style="font-weight:bold">sum</span>(<span style="color:#006e28">`v'</span>), <span style="font-weight:bold">by</span>(<span style="color:#006e28">`by'</span> <span style="color:#006e28">`date0'</span>)
0071                 }
0072 
0073                 <span style="color:#898887">/* unique dates only */</span>
0074                 <span style="font-weight:bold">by</span> <span style="color:#006e28">`by'</span> <span style="color:#006e28">`date0'</span>, <span style="font-weight:bold">sort</span>: <span style="font-weight:bold">keep</span> <span style="font-weight:bold">if</span> <span style="color:#0057ae">_n</span>==1
0075 
0076                 <span style="color:#898887">/* calculate totals (+ when spell starts - when ends) */</span>
0077                 <span style="font-weight:bold">sort</span> <span style="color:#006e28">`by'</span>
0078                 cap <span style="font-weight:bold">foreach</span> v <span style="font-weight:bold">of</span> <span style="font-weight:bold">varlist</span> <span style="color:#006e28">`xvars'</span> {
0079                         <span style="font-weight:bold">by</span> <span style="color:#006e28">`by'</span>: <span style="font-weight:bold">replace</span> <span style="color:#006e28">`v'</span> = <span style="font-weight:bold">sum</span>(<span style="color:#006e28">``v'</span>')
0080                 }
0081                 <span style="font-weight:bold">by</span> <span style="color:#006e28">`by'</span>: g <span style="color:#006e28">`date1'</span> = <span style="color:#006e28">`date0'</span>[<span style="color:#0057ae">_n</span> + 1]
0082 
0083                 <span style="font-weight:bold">drop</span> <span style="font-weight:bold">if</span> <span style="color:#006e28">`date0'</span>><span style="color:#006e28">`date1'</span>
0084                 <span style="font-weight:bold">drop</span> _stack
0085                 <span style="font-weight:bold">drop</span> <span style="font-weight:bold">if</span> _count==0
0086                 <span style="font-weight:bold">order</span> <span style="color:#006e28">`by'</span> <span style="color:#006e28">`date0'</span> <span style="color:#006e28">`date1'</span> <span style="color:#006e28">`xvars'</span>
0087                 <span style="font-weight:bold">format</span> <span style="color:#006e28">`date0'</span> <span style="color:#006e28">`f0'</span>
0088                 <span style="font-weight:bold">format</span> <span style="color:#006e28">`date1'</span> <span style="color:#006e28">`f1'</span>
0089 
0090                 cap <span style="font-weight:bold">for</span> <span style="font-weight:bold">var</span> <span style="color:#006e28">`meanvars'</span>: <span style="font-weight:bold">replace</span> X = X/_count
0091 
0092                 <span style="font-weight:bold">compress</span>
0093         }
0094 
0095 <span style="font-weight:bold">end</span>
0096 </pre></body></html>