*! version 0.2.5 31May2017 *! Copyright (C) World Bank 2016-17 - Minh Cong Nguyen & Paul Andres Corral Rodas *! Minh Cong Nguyen - mnguyen3@worldbank.org *! Paul Andres Corral Rodas - pcorralrodas@worldbank.org * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with this program. If not, see . cap program drop sae program sae, rclass version 11.0 local version : di "version " string(_caller()) ":" set prefix sae gettoken subcmd 0 : 0, parse(" :,=[]()+-") local l = strlen("`subcmd'") if ("`subcmd'"=="data") { //data relelated tasks gettoken subcmd1 0 : 0, parse(" :,=[]()+-") if ("`subcmd1'"=="import") { //import dta to mata file sae_data_import `0' } else if ("`subcmd1'"=="export") { //export matafile ydump to dta sae_data_export `0' } else { if ("`subcmd1'"=="") { di as smcl as err "syntax error" di as smcl as err "{p 4 4 2}" di as smcl as err "{bf:sae data} must be followed by a subcommand." di as smcl as err "You might type {bf:sae data import}, or {bf:sae data export}, etc." di as smcl as err "{p_end}" exit 198 } capture which sae_data_`subcmd1' if (_rc) { if (_rc==1) exit 1 di as smcl as err "unrecognized subcommand: {bf:sae data `subcmd1'}" exit 199 /*NOTREACHED*/ } `version' sae_data_`subcmd1' `0' } } else if ("`subcmd'"=="model") { //model and estimate parameters needed for simulations gettoken subcmd1 0 : 0, parse(" :,=[]()+-") if ("`subcmd1'"=="povmap") | ("`subcmd1'"=="lmm") { local 0 = subinstr("`0'", "stage(second)", "stage(first)",.) local etapa stage(first) local ch: list 0 & etapa if ("`ch'"=="") local 0 `0' stage(first) povmap `0' } else if ("`subcmd1'"=="basic") { sae_model_basic `0' } else { if ("`subcmd1'"=="") { di as smcl as err "syntax error" di as smcl as err "{p 4 4 2}" di as smcl as err "{bf:sae model} must be followed by a subcommand." di as smcl as err "You might type {bf:sae model povmap},etc." di as smcl as err "{p_end}" exit 198 } capture which sae_model_`subcmd1' if (_rc) { if (_rc==1) exit 1 di as smcl as err "unrecognized subcommand: {bf:sae model `subcmd1'}" exit 199 /*NOTREACHED*/ } `version' sae_model_`subcmd1' `0' } } else if ("`subcmd'"=="simulate") | ("`subcmd'"=="sim") { gettoken subcmd1 0 : 0, parse(" :,=[]()+-") if ("`subcmd1'"=="povmap") | ("`subcmd1'"=="lmm") { local 0 = subinstr("`0'", "stage(first)", "stage(second)",.) local etapa stage(second) local ch: list 0 & etapa if ("`ch'"=="") local 0 `0' stage(second) povmap `0' } else { if ("`subcmd1'"=="") { di as smcl as err "syntax error" di as smcl as err "{p 4 4 2}" di as smcl as err "{bf:sae sim} must be followed by a subcommand." di as smcl as err "You might type {bf:sae sim povmap},etc." di as smcl as err "{p_end}" exit 198 } capture which sae_sim_`subcmd1' if (_rc) { if (_rc==1) exit 1 di as smcl as err "unrecognized subcommand: {bf:sae sim `subcmd1'}" exit 199 /*NOTREACHED*/ } `version' sae_sim_`subcmd1' `0' } } else if ("`subcmd'"=="process") | ("`subcmd'"=="proc") { //processing ydump database gettoken subcmd1 0 : 0, parse(" :,=[]()+-") if ("`subcmd1'"=="indicator") | ("`subcmd1'"=="ind") { sae_proc_inds `0' } else if ("`subcmd1'"=="stats") { sae_proc_stats `0' } else { if ("`subcmd1'"=="") { di as smcl as err "syntax error" di as smcl as err "{p 4 4 2}" di as smcl as err "{bf:sae proc} must be followed by a subcommand." di as smcl as err "You might type {bf:sae proc ind}, or {bf:sae proc stats}, etc." di as smcl as err "{p_end}" exit 198 } capture which sae_proc_`subcmd1' if (_rc) { if (_rc==1) exit 1 di as smcl as err "unrecognized subcommand: {bf:sae proc `subcmd1'}" exit 199 /*NOTREACHED*/ } `version' sae_proc_`subcmd1' `0' } } else if ("`subcmd'"=="varselect") | ("`subcmd'"=="varsel") { //variable selection or modelling //sae_varsel_stats `0' } else if ("`subcmd'"=="varcompare") | ("`subcmd'"=="varcomp") { //variable comparisons //sae_varcomp_model `0' } else if ("`subcmd'"=="exp") { //experiential targeting //sae_exp_jde `0' } else { //none of the above if ("`subcmd'"=="") { di as smcl as err "syntax error" di as smcl as err "{p 4 4 2}" di as smcl as err "{bf:sae} must be followed by a subcommand." di as smcl as err "You might type {bf:sae data}, or {bf:sae model}, or {bf:sae sim}, etc." di as smcl as err "{p_end}" exit 198 } capture which sae_cmd_`subcmd' if (_rc) { if (_rc==1) exit 1 di as smcl as err "unrecognized subcommand: {bf:sae `subcmd'}" exit 199 /*NOTREACHED*/ } `version' sae_cmd_`subcmd' `0' } return add end