*! 1.0.1 Jeroen Weesie/ICS (June '97) STB-39 ip19 program define expr version 5.0 capt drop _Expr* if "`*'" == "" { exit } * split cmdline in <:> parse "`*'", p(":") if "`2'" == "" { exit 198 } if "`1'" == ":" { mac shift } else { if "`2'" != "" & "`2'" != ":" { exit 198 } local pref "`1'" mac shift 2 } local ecmd "`*'" * split in parse "`*'", p(" ,") local cmd "`1'" mac shift local elist while "`1'"!="" & "`1'"!="if" & "`1'"!="in" & "`1'"!="using"/* */ & substr("`1'",1,1)!="[" & substr("`1'",1,1)!="," { local elist "`elist' `1'" mac shift } local rest "`*'" * parse pref local options "noDetail" parse "`pref'" * generate expressions _Expr0, _Expr1, etc if "`detail'" == "" { display } local e 0 parse "`elist'", p(" ") while "`1'" != "" { capt unabbrev `1' if !_rc { local vlist "`vlist' $S_1" } else { gen _Expr`e' = `1' /* doesn't obey if/in restriction */ label var _Expr`e' "`1'" local vlist "`vlist' _Expr`e'" if "`detail'" == "" { di in gr "Expression _Expr`e' := " in ye "`1'" } local e = `e'+1 } mac shift } * execute command if "`detail'" == "" { di in bl "-> `cmd' `vlist' `rest'" } capt nois `cmd' `vlist' `rest' if _rc { if _rc==1 { exit 1 } else { di in bl "rc(" _rc ");" exit _rc } } end