-UNIMPL ("ACF", ERRO, ERRO, ERRO, ERRO, "Autocorrelation function")
-UNIMPL ("ADD FILES", ERRO, ERRO, ERRO, ERRO, "Add files to dictionary")
-DEFCMD ("ADD VALUE LABELS", ERRO, INPU, TRAN, TRAN, cmd_add_value_labels)
-DEFCMD ("AGGREGATE", ERRO, ERRO, PROC, TRAN, cmd_aggregate)
-UNIMPL ("ALSCAL", ERRO, ERRO, ERRO, ERRO, "Multidimensional scaling")
-UNIMPL ("ANOVA", ERRO, ERRO, ERRO, ERRO, "Factorial analysis of variance")
-DEFCMD ("APPLY DICTIONARY", ERRO, ERRO, TRAN, TRAN, cmd_apply_dictionary)
-DEFCMD ("AUTORECODE", ERRO, ERRO, PROC, PROC, cmd_autorecode)
-SPCCMD ("BEGIN DATA", ERRO, ERRO, PROC, PROC, cmd_begin_data)
-DEFCMD ("BREAK", ERRO, INPU, TRAN, TRAN, cmd_break)
-UNIMPL ("CASEPLOT", ERRO, ERRO, ERRO, ERRO, "Plot time series")
-UNIMPL ("CASESTOVARS", ERRO, ERRO, ERRO, ERRO, "Restructure complex data")
-UNIMPL ("CCF", ERRO, ERRO, ERRO, ERRO, "Time series cross correlation")
-DEFCMD ("CLEAR TRANSFORMATIONS", ERRO, INPU, TRAN, TRAN, cmd_clear_transformations)
-DEFCMD ("CLOSE FILE HANDLE", INIT, INPU, TRAN, PROC, cmd_close_file_handle)
-UNIMPL ("CLUSTER", ERRO, ERRO, ERRO, ERRO, "Hierachial clustering")
-DEFCMD ("COMPUTE", ERRO, INPU, TRAN, TRAN, cmd_compute)
-UNIMPL ("CONJOINT", ERRO, ERRO, ERRO, ERRO, "Analyse full concept data")
-DEFCMD ("CORRELATIONS", ERRO, ERRO, PROC, PROC, cmd_correlations)
-DEFCMD ("COUNT", ERRO, INPU, TRAN, TRAN, cmd_count)
-UNIMPL ("COXREG", ERRO, ERRO, ERRO, ERRO, "Cox proportional hazards regression")
-UNIMPL ("CREATE", ERRO, ERRO, ERRO, ERRO, "Create time series data")
-DEFCMD ("CROSSTABS", ERRO, ERRO, PROC, PROC, cmd_crosstabs)
-UNIMPL ("CURVEFIT", ERRO, ERRO, ERRO, ERRO, "Fit curve to line plot")
-DEFCMD ("DATA LIST", TRAN, INPU, TRAN, TRAN, cmd_data_list)
-UNIMPL ("DATE", ERRO, ERRO, ERRO, ERRO, "Create time series data")
-DBGCMD ("DEBUG CASEFILE", INIT, INPU, TRAN, PROC, cmd_debug_casefile)
-DBGCMD ("DEBUG EVALUATE", INIT, INPU, TRAN, PROC, cmd_debug_evaluate)
-DBGCMD ("DEBUG MOMENTS", INIT, INPU, TRAN, PROC, cmd_debug_moments)
-DBGCMD ("DEBUG POOL", INIT, INPU, TRAN, PROC, cmd_debug_pool)
-DEFCMD ("DESCRIPTIVES", ERRO, ERRO, PROC, PROC, cmd_descriptives)
-UNIMPL ("DISCRIMINANT", ERRO, ERRO, ERRO, ERRO, "Linear discriminant analysis")
-DEFCMD ("DISPLAY", ERRO, INPU, TRAN, PROC, cmd_display)
-SPCCMD ("DOCUMENT", ERRO, INPU, TRAN, TRAN, cmd_document)
-DEFCMD ("DO IF", ERRO, INPU, TRAN, TRAN, cmd_do_if)
-DEFCMD ("DO REPEAT", ERRO, INPU, TRAN, TRAN, cmd_do_repeat)
-DEFCMD ("DROP DOCUMENTS", INIT, INPU, TRAN, PROC, cmd_drop_documents)
-DEFCMD ("ECHO", INIT, INPU, TRAN, PROC, cmd_echo)
-UNIMPL ("EDIT", ERRO, ERRO, ERRO, ERRO, "obsolete")
-DEFCMD ("ELSE", ERRO, INPU, TRAN, TRAN, cmd_else)
-DEFCMD ("ELSE IF", ERRO, INPU, TRAN, TRAN, cmd_else_if)
-DEFCMD ("END CASE", ERRO, INPU, ERRO, ERRO, cmd_end_case)
-DEFCMD ("END FILE", ERRO, INPU, ERRO, ERRO, cmd_end_file)
-UNIMPL ("END FILE TYPE", ERRO, TRAN, ERRO, ERRO, "Ends complex data input")
-DEFCMD ("END IF", ERRO, INPU, TRAN, TRAN, cmd_end_if)
-DEFCMD ("END INPUT PROGRAM", ERRO, TRAN, ERRO, ERRO, cmd_end_input_program)
-DEFCMD ("END LOOP", ERRO, INPU, TRAN, TRAN, cmd_end_loop)
-DEFCMD ("END REPEAT", ERRO, INPU, TRAN, TRAN, cmd_end_repeat)
-DEFCMD ("ERASE", INIT, INPU, TRAN, PROC, cmd_erase)
-DEFCMD ("EXAMINE", ERRO, ERRO, PROC, PROC, cmd_examine)
-DEFCMD ("EXECUTE", ERRO, ERRO, PROC, PROC, cmd_execute)
-DEFCMD ("EXIT", INIT, INPU, TRAN, PROC, cmd_finish)
-DEFCMD ("EXPORT", ERRO, ERRO, PROC, PROC, cmd_export)
-UNIMPL ("FACTOR", ERRO, ERRO, ERRO, ERRO, "Factor analysis")
-DEFCMD ("FILE HANDLE", INIT, INPU, TRAN, PROC, cmd_file_handle)
-SPCCMD ("FILE LABEL", INIT, INPU, TRAN, PROC, cmd_file_label)
-UNIMPL ("FILE TYPE", INPU, ERRO, INPU, INPU, "Complex data input")
-DEFCMD ("FILTER", ERRO, ERRO, TRAN, TRAN, cmd_filter)
-DEFCMD ("FINISH", INIT, INPU, TRAN, PROC, cmd_finish)
-UNIMPL ("FIT", ERRO, ERRO, ERRO, ERRO, "Goodness of Fit")
-DEFCMD ("FLIP", ERRO, ERRO, PROC, PROC, cmd_flip)
-DEFCMD ("FORMATS", INIT, INPU, TRAN, PROC, cmd_formats)
-DEFCMD ("FREQUENCIES", ERRO, ERRO, PROC, PROC, cmd_frequencies)
-DEFCMD ("GET", TRAN, ERRO, TRAN, TRAN, cmd_get)
-UNIMPL ("GET TRANSLATE", ERRO, ERRO, ERRO, ERRO, "Read other file formats")
-UNIMPL ("GLM", ERRO, ERRO, ERRO, ERRO, "General Linear Model")
-UNIMPL ("GRAPH", ERRO, ERRO, ERRO, ERRO, "Draw graphs")
-DEFCMD ("HOST", INIT, INPU, TRAN, PROC, cmd_host)
-DEFCMD ("IF", ERRO, INPU, TRAN, TRAN, cmd_if)
-UNIMPL ("IGRAPH", ERRO, ERRO, ERRO, ERRO, "Interactive graphs")
-DEFCMD ("IMPORT", TRAN, ERRO, TRAN, TRAN, cmd_import)
-DEFCMD ("INCLUDE", INIT, INPU, TRAN, PROC, cmd_include)
-UNIMPL ("INFO", ERRO, ERRO, ERRO, ERRO, "Local Documentation")
-DEFCMD ("INPUT PROGRAM", INPU, ERRO, INPU, INPU, cmd_input_program)
-UNIMPL ("KEYED DATA LIST", ERRO, ERRO, ERRO, ERRO, "Read nonsequential data")
-UNIMPL ("KM", ERRO, ERRO, ERRO, ERRO, "Kaplan-Meier")
-DEFCMD ("LEAVE", ERRO, INPU, TRAN, TRAN, cmd_leave)
-DEFCMD ("LIST", ERRO, ERRO, PROC, PROC, cmd_list)
-UNIMPL ("LOGISTIC REGRESSION", ERRO, ERRO, ERRO, ERRO, "Regression Analysis")
-DEFCMD ("LOOP", ERRO, INPU, TRAN, TRAN, cmd_loop)
-DEFCMD ("MATCH FILES", TRAN, ERRO, TRAN, PROC, cmd_match_files)
-DEFCMD ("MATRIX DATA", TRAN, ERRO, TRAN, TRAN, cmd_matrix_data)
-UNIMPL ("MCONVERT", ERRO, ERRO, ERRO, ERRO, "Convert covariance/correlation matrices")
-DEFCMD ("MEANS", ERRO, ERRO, PROC, PROC, cmd_means)
-DEFCMD ("MISSING VALUES", ERRO, INPU, TRAN, TRAN, cmd_missing_values)
-DEFCMD ("MODIFY VARS", ERRO, ERRO, TRAN, PROC, cmd_modify_vars)
-UNIMPL ("MULT RESPONSE", ERRO, ERRO, ERRO, ERRO, "Multiple reponse analysis")
-UNIMPL ("MVA", ERRO, ERRO, ERRO, ERRO, "Missing value analysis")
-DEFCMD ("NEW FILE", INIT, ERRO, INIT, INIT, cmd_new_file)
-DEFCMD ("N", INIT, INPU, TRAN, TRAN, cmd_n_of_cases)
-DEFCMD ("N OF CASES", INIT, INPU, TRAN, TRAN, cmd_n_of_cases)
-UNIMPL ("NLR", ERRO, ERRO, ERRO, ERRO, "Non Linear Regression")
-UNIMPL ("NONPAR CORR", ERRO, ERRO, ERRO, ERRO, "Nonparametric correlation")
-UNIMPL ("NPAR TESTS", ERRO, ERRO, ERRO, ERRO, "Nonparametric tests")
-UNIMPL ("NUMBERED", ERRO, ERRO, ERRO, ERRO, "")
-DEFCMD ("NUMERIC", ERRO, INPU, TRAN, TRAN, cmd_numeric)
-DEFCMD ("ONEWAY", ERRO, ERRO, PROC, PROC, cmd_oneway)
-UNIMPL ("PACF", ERRO, ERRO, ERRO, ERRO, "Partial autocorrelation")
-UNIMPL ("PARTIAL CORR", ERRO, ERRO, ERRO, ERRO, "Partial correlation")
-DEFCMD ("PEARSON CORRELATIONS", ERRO, ERRO, PROC, PROC, cmd_correlations)
-DEFCMD ("PERMISSIONS", INIT, INPU, TRAN, PROC, cmd_permissions)
-UNIMPL ("POINT", ERRO, ERRO, ERRO, ERRO, "Marker in keyed file")
-UNIMPL ("PPLOT", ERRO, ERRO, ERRO, ERRO, "Plot time series variables")
-UNIMPL ("PREDICT", ERRO, ERRO, ERRO, ERRO, "Specify forecast period")
-UNIMPL ("PRESERVE", ERRO, ERRO, ERRO, ERRO, "Push settings")
-DEFCMD ("PRINT EJECT", ERRO, INPU, TRAN, TRAN, cmd_print_eject)
-DEFCMD ("PRINT", ERRO, INPU, TRAN, TRAN, cmd_print)
-DEFCMD ("PRINT FORMATS", ERRO, INPU, TRAN, TRAN, cmd_print_formats)
-DEFCMD ("PRINT SPACE", ERRO, INPU, TRAN, TRAN, cmd_print_space)
-UNIMPL ("PROCEDURE OUTPUT", ERRO, ERRO, ERRO, ERRO, "Specify output file")
-UNIMPL ("PROBIT", ERRO, ERRO, ERRO, ERRO, "Probit analysis")
-DEFCMD ("PROCESS IF", ERRO, ERRO, TRAN, TRAN, cmd_process_if)
-UNIMPL ("PROXIMITIES", ERRO, ERRO, ERRO, ERRO, "Pairwise similarity")
-DEFCMD ("Q", INIT, INPU, TRAN, PROC, cmd_finish)
-UNIMPL ("QUICK CLUSTER", ERRO, ERRO, ERRO, ERRO, "Fast clustering")
-DEFCMD ("QUIT", INIT, INPU, TRAN, PROC, cmd_finish)
-UNIMPL ("RANK", ERRO, ERRO, ERRO, ERRO, "Create rank scores")
-DEFCMD ("RECODE", ERRO, INPU, TRAN, TRAN, cmd_recode)
-DEFCMD ("RECORD TYPE", ERRO, INPU, ERRO, ERRO, cmd_record_type)
-UNIMPL ("REFORMAT", ERRO, ERRO, ERRO, ERRO, "Read obsolete files")
-DEFCMD ("REGRESSION", ERRO, ERRO, PROC, PROC, cmd_regression)
-DEFCMD ("RENAME VARIABLES", ERRO, INPU, TRAN, PROC, cmd_rename_variables)
-UNIMPL ("REPEATING DATA", ERRO, INPU, ERRO, ERRO, "Specify multiple cases per input record")
-UNIMPL ("REPORT", ERRO, ERRO, ERRO, ERRO, "Pretty print working file")
-DEFCMD ("REREAD", ERRO, INPU, ERRO, ERRO, cmd_reread)
-UNIMPL ("RESTORE", ERRO, ERRO, ERRO, ERRO, "Restore settings")
-UNIMPL ("ROC", ERRO, ERRO, ERRO, ERRO, "Receiver operating characteristic")
-UNIMPL ("RMV", ERRO, ERRO, ERRO, ERRO, "Replace missing values")
-DEFCMD ("SAMPLE", ERRO, ERRO, TRAN, TRAN, cmd_sample)
-DEFCMD ("SAVE", ERRO, ERRO, PROC, PROC, cmd_save)
-UNIMPL ("SAVE TRANSLATE", ERRO, ERRO, ERRO, ERRO, "Save to foriegn format")
-UNIMPL ("SCRIPT", ERRO, ERRO, ERRO, ERRO, "Run script file")
-DEFCMD ("SELECT IF", ERRO, ERRO, TRAN, TRAN, cmd_select_if)
-DEFCMD ("SET", INIT, INPU, TRAN, PROC, cmd_set)
-DEFCMD ("SHOW", INIT, INPU, TRAN, PROC, cmd_show)
-DEFCMD ("SORT CASES", ERRO, ERRO, PROC, PROC, cmd_sort_cases)
-DEFCMD ("SORT", ERRO, ERRO, PROC, PROC, cmd_sort_cases)
-UNIMPL ("SPCHART", ERRO, ERRO, ERRO, ERRO, "Plot control charts")
-DEFCMD ("SPLIT FILE", ERRO, INPU, TRAN, TRAN, cmd_split_file)
-DEFCMD ("STRING", ERRO, INPU, TRAN, TRAN, cmd_string)
-SPCCMD ("SUBTITLE", INIT, INPU, TRAN, PROC, cmd_subtitle)
-UNIMPL ("SUMMARIZE", ERRO, ERRO, ERRO, ERRO, "Univariate statistics")
-UNIMPL ("SURVIVAL", ERRO, ERRO, ERRO, ERRO, "Survival analysis")
-DEFCMD ("SYSFILE INFO", INIT, INPU, TRAN, PROC, cmd_sysfile_info)
-DEFCMD ("TEMPORARY", ERRO, ERRO, TRAN, TRAN, cmd_temporary)
-SPCCMD ("TITLE", INIT, INPU, TRAN, PROC, cmd_title)
-UNIMPL ("TSET", ERRO, ERRO, ERRO, ERRO, "Set time sequence variables")
-UNIMPL ("TSHOW", ERRO, ERRO, ERRO, ERRO, "Show time sequence variables")
-UNIMPL ("TSPLOT", ERRO, ERRO, ERRO, ERRO, "Plot time sequence variables")
-DEFCMD ("T-TEST", ERRO, ERRO, PROC, PROC, cmd_t_test)
-UNIMPL ("UNIANOVA", ERRO, ERRO, ERRO, ERRO, "Univariate analysis")
-UNIMPL ("UNNUMBERED", ERRO, ERRO, ERRO, ERRO, "obsolete")
-UNIMPL ("UPDATE", ERRO, ERRO, ERRO, ERRO, "Update working file")
-DEFCMD ("USE", ERRO, ERRO, TRAN, TRAN, cmd_use)
-DEFCMD ("VALUE LABELS", ERRO, INPU, TRAN, TRAN, cmd_value_labels)
-DEFCMD ("VARIABLE LABELS", ERRO, INPU, TRAN, TRAN, cmd_variable_labels)
-DEFCMD ("VARIABLE ALIGNMENT", ERRO, INPU, TRAN, TRAN, cmd_variable_alignment)
-DEFCMD ("VARIABLE LEVEL", ERRO, INPU, TRAN, TRAN, cmd_variable_level)
-DEFCMD ("VARIABLE WIDTH", ERRO, INPU, TRAN, TRAN, cmd_variable_width)
-UNIMPL ("VARSTOCASES", ERRO, ERRO, ERRO, ERRO, "Restructure complex data")
-DEFCMD ("VECTOR", ERRO, INPU, TRAN, TRAN, cmd_vector)
-UNIMPL ("VERIFY", ERRO, ERRO, ERRO, ERRO, "Report time series")
-DEFCMD ("WEIGHT", ERRO, INPU, TRAN, TRAN, cmd_weight)
-DEFCMD ("WRITE", ERRO, INPU, TRAN, TRAN, cmd_write)
-DEFCMD ("WRITE FORMATS", ERRO, INPU, TRAN, TRAN, cmd_write_formats)
-DEFCMD ("XEXPORT", ERRO, INPU, TRAN, TRAN, cmd_xexport)
-DEFCMD ("XSAVE", ERRO, INPU, TRAN, TRAN, cmd_xsave)
+/* Commands that define (or replace) the active file. */
+DEF_CMD (S_INITIAL | S_DATA, 0, "ADD FILES", cmd_add_files)
+DEF_CMD (S_INITIAL | S_DATA | S_INPUT_PROGRAM | S_FILE_TYPE, 0, "DATA LIST", cmd_data_list)
+DEF_CMD (S_INITIAL | S_DATA, 0, "GET", cmd_get)
+DEF_CMD (S_INITIAL | S_DATA, 0, "GET DATA", cmd_get_data)
+DEF_CMD (S_INITIAL | S_DATA, 0, "IMPORT", cmd_import)
+DEF_CMD (S_INITIAL | S_DATA, 0, "INPUT PROGRAM", cmd_input_program)
+DEF_CMD (S_INITIAL | S_DATA, 0, "MATCH FILES", cmd_match_files)
+DEF_CMD (S_INITIAL | S_DATA, 0, "UPDATE", cmd_update)
+
+/* Transformations and utilities that may appear after active
+ file definition or within INPUT PROGRAM. */
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "ADD VALUE LABELS", cmd_add_value_labels)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "ADD DOCUMENT", cmd_add_documents)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "APPLY DICTIONARY", cmd_apply_dictionary)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "BREAK", cmd_break)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "COMPUTE", cmd_compute)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "DATAFILE ATTRIBUTE", cmd_datafile_attribute)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "DISPLAY", cmd_display)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, F_KEEP_FINAL_TOKEN, "DOCUMENT", cmd_document)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "DO IF", cmd_do_if)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "DO REPEAT", cmd_do_repeat)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "END REPEAT", cmd_end_repeat)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "DROP DOCUMENTS", cmd_drop_documents)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "ELSE IF", cmd_else_if)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "ELSE", cmd_else)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "END IF", cmd_end_if)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "END LOOP", cmd_end_loop)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "FORMATS", cmd_formats)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "IF", cmd_if)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "LEAVE", cmd_leave)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "LOOP", cmd_loop)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "MISSING VALUES", cmd_missing_values)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "NUMERIC", cmd_numeric)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "PRINT EJECT", cmd_print_eject)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "PRINT FORMATS", cmd_print_formats)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "PRINT SPACE", cmd_print_space)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "PRINT", cmd_print)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "RECODE", cmd_recode)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "SELECT IF", cmd_select_if)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "SPLIT FILE", cmd_split_file)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "STRING", cmd_string)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "VALUE LABELS", cmd_value_labels)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "VARIABLE ALIGNMENT", cmd_variable_alignment)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "VARIABLE ATTRIBUTE", cmd_variable_attribute)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "VARIABLE LABELS", cmd_variable_labels)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "VARIABLE LEVEL", cmd_variable_level)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "VARIABLE WIDTH", cmd_variable_width)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "VECTOR", cmd_vector)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "WEIGHT", cmd_weight)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "WRITE FORMATS", cmd_write_formats)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "WRITE", cmd_write)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, F_ENHANCED, "XEXPORT", cmd_xexport)
+DEF_CMD (S_DATA | S_INPUT_PROGRAM, 0, "XSAVE", cmd_xsave)
+
+/* Commands that may appear after active file definition. */
+DEF_CMD (S_DATA, 0, "AGGREGATE", cmd_aggregate)
+DEF_CMD (S_DATA, 0, "AUTORECODE", cmd_autorecode)
+DEF_CMD (S_DATA, F_KEEP_FINAL_TOKEN, "BEGIN DATA", cmd_begin_data)
+DEF_CMD (S_DATA, 0, "COUNT", cmd_count)
+DEF_CMD (S_DATA, 0, "CROSSTABS", cmd_crosstabs)
+DEF_CMD (S_DATA, 0, "DELETE VARIABLES", cmd_delete_variables)
+DEF_CMD (S_DATA, 0, "DESCRIPTIVES", cmd_descriptives)
+DEF_CMD (S_DATA, 0, "EXAMINE", cmd_examine)
+DEF_CMD (S_DATA, 0, "EXECUTE", cmd_execute)
+DEF_CMD (S_DATA, 0, "EXPORT", cmd_export)
+DEF_CMD (S_DATA, 0, "FILTER", cmd_filter)
+DEF_CMD (S_DATA, 0, "FLIP", cmd_flip)
+DEF_CMD (S_DATA, 0, "FREQUENCIES", cmd_frequencies)
+DEF_CMD (S_DATA, 0, "LIST", cmd_list)
+DEF_CMD (S_DATA, 0, "MEANS", cmd_means)
+DEF_CMD (S_DATA, 0, "MODIFY VARS", cmd_modify_vars)
+DEF_CMD (S_DATA, 0, "NPAR TESTS", cmd_npar_tests)
+DEF_CMD (S_DATA, 0, "ONEWAY", cmd_oneway)
+DEF_CMD (S_DATA, 0, "RANK", cmd_rank)
+DEF_CMD (S_DATA, 0, "REGRESSION", cmd_regression)
+DEF_CMD (S_DATA, 0, "RELIABILITY", cmd_reliability)
+DEF_CMD (S_DATA, 0, "RENAME VARIABLES", cmd_rename_variables)
+DEF_CMD (S_DATA, 0, "ROC", cmd_roc)
+DEF_CMD (S_DATA, 0, "SAMPLE", cmd_sample)
+DEF_CMD (S_DATA, 0, "SAVE", cmd_save)
+DEF_CMD (S_DATA, 0, "SORT CASES", cmd_sort_cases)
+DEF_CMD (S_DATA, F_ABBREV, "SORT", cmd_sort_cases)
+DEF_CMD (S_DATA, 0, "T-TEST", cmd_t_test)
+DEF_CMD (S_DATA, 0, "TEMPORARY", cmd_temporary)
+DEF_CMD (S_DATA, 0, "USE", cmd_use)
+
+/* Commands valid only with INPUT PROGRAM. */
+DEF_CMD (S_INPUT_PROGRAM, 0, "END CASE", cmd_end_case)
+DEF_CMD (S_INPUT_PROGRAM, 0, "END FILE", cmd_end_file)
+DEF_CMD (S_INPUT_PROGRAM, 0, "END INPUT PROGRAM", cmd_end_input_program)
+DEF_CMD (S_INPUT_PROGRAM, 0, "REREAD", cmd_reread)
+
+/* Commands for testing PSPP. */
+DEF_CMD (S_ANY, F_TESTING, "DEBUG EVALUATE", cmd_debug_evaluate)
+DEF_CMD (S_ANY, F_TESTING, "DEBUG FORMAT GUESSER", cmd_debug_format_guesser)
+DEF_CMD (S_ANY, F_TESTING, "DEBUG MOMENTS", cmd_debug_moments)
+DEF_CMD (S_ANY, F_TESTING, "DEBUG PAPER SIZE", cmd_debug_paper_size)
+DEF_CMD (S_ANY, F_TESTING, "DEBUG POOL", cmd_debug_pool)
+DEF_CMD (S_ANY, F_TESTING, "DEBUG FLOAT FORMAT", cmd_debug_float_format)
+DEF_CMD (S_ANY, F_TESTING, "DEBUG XFORM FAIL", cmd_debug_xform_fail)
+
+/* Unimplemented commands. */
+UNIMPL_CMD ("2SLS", "Two stage least squares regression")
+UNIMPL_CMD ("ACF", "Autocorrelation function")
+UNIMPL_CMD ("ALSCAL", "Multidimensional scaling")
+UNIMPL_CMD ("ANACOR", "Correspondence analysis")
+UNIMPL_CMD ("ANOVA", "Factorial analysis of variance")
+UNIMPL_CMD ("CASEPLOT", "Plot time series")
+UNIMPL_CMD ("CASESTOVARS", "Restructure complex data")
+UNIMPL_CMD ("CATPCA", "Categorical principle components analysis")
+UNIMPL_CMD ("CATREG", "Categorical regression")
+UNIMPL_CMD ("CCF", "Time series cross correlation")
+UNIMPL_CMD ("CLEAR TRANSFORMATIONS", "Clears transformations from active file")
+UNIMPL_CMD ("CLUSTER", "Hierachial clustering")
+UNIMPL_CMD ("CONJOINT", "Analyse full concept data")
+UNIMPL_CMD ("CORRELATIONS", "Correlation coefficients")
+UNIMPL_CMD ("CORRESPONDENCE", "Show correspondence")
+UNIMPL_CMD ("COXREG", "Cox proportional hazards regression")
+UNIMPL_CMD ("CREATE", "Create time series data")
+UNIMPL_CMD ("CSDESCRIPTIVES", "Complex samples descriptives")
+UNIMPL_CMD ("CSGLM", "Complex samples GLM")
+UNIMPL_CMD ("CSLOGISTIC", "Complex samples logistic regression")
+UNIMPL_CMD ("CSPLAN", "Complex samples design")
+UNIMPL_CMD ("CSSELECT", "Select complex samples")
+UNIMPL_CMD ("CSTABULATE", "Tabulate complex samples")
+UNIMPL_CMD ("CTABLES", "Display complex samples")
+UNIMPL_CMD ("CURVEFIT", "Fit curve to line plot")
+UNIMPL_CMD ("DATASET", "Alternate data set")
+UNIMPL_CMD ("DATE", "Create time series data")
+UNIMPL_CMD ("DEFINE", "Syntax macros")
+UNIMPL_CMD ("DETECTANOMALY", "Find unusual cases")
+UNIMPL_CMD ("DISCRIMINANT", "Linear discriminant analysis")
+UNIMPL_CMD ("EDIT", "obsolete")
+UNIMPL_CMD ("END FILE TYPE", "Ends complex data input")
+UNIMPL_CMD ("FACTOR", "Factor analysis")
+UNIMPL_CMD ("FILE TYPE", "Complex data input")
+UNIMPL_CMD ("FIT", "Goodness of Fit")
+UNIMPL_CMD ("GENLOG", "Categorical model fitting")
+UNIMPL_CMD ("GET TRANSLATE", "Read other file formats")
+UNIMPL_CMD ("GGRAPH", "Custom defined graphs")
+UNIMPL_CMD ("GLM", "General Linear Model")
+UNIMPL_CMD ("GRAPH", "Draw graphs")
+UNIMPL_CMD ("HILOGLINEAR", "Hierarchial loglinear models")
+UNIMPL_CMD ("HOMALS", "Homogeneity analysis")
+UNIMPL_CMD ("IGRAPH", "Interactive graphs")
+UNIMPL_CMD ("INFO", "Local Documentation")
+UNIMPL_CMD ("INSERT", "Insert file")
+UNIMPL_CMD ("KEYED DATA LIST", "Read nonsequential data")
+UNIMPL_CMD ("KM", "Kaplan-Meier")
+UNIMPL_CMD ("LOGISTIC REGRESSION", "Regression Analysis")
+UNIMPL_CMD ("LOGLINEAR", "General model fitting")
+UNIMPL_CMD ("MANOVA", "Multivariate analysis of variance")
+UNIMPL_CMD ("MAPS", "Geographical display")
+UNIMPL_CMD ("MATRIX", "Matrix processing")
+UNIMPL_CMD ("MATRIX DATA", "Matrix data input")
+UNIMPL_CMD ("MCONVERT", "Convert covariance/correlation matrices")
+UNIMPL_CMD ("MIXED", "Mixed linear models")
+UNIMPL_CMD ("MODEL CLOSE ", "Close server connection")
+UNIMPL_CMD ("MODEL HANDLE", "Define server connection")
+UNIMPL_CMD ("MODEL LIST ", "Show existing models")
+UNIMPL_CMD ("MODEL NAME ", "Specify model label")
+UNIMPL_CMD ("MRSETS", "Multiple response sets")
+UNIMPL_CMD ("MULTIPLE CORRESPONDENCE", "Multiple correspondence analysis")
+UNIMPL_CMD ("MULT RESPONSE", "Multiple reponse analysis")
+UNIMPL_CMD ("MVA", "Missing value analysis")
+UNIMPL_CMD ("NAIVEBAYES", "Small sample bayesian prediction")
+UNIMPL_CMD ("NLR", "Non Linear Regression")
+UNIMPL_CMD ("NOMREG", "Multinomial logistic regression")
+UNIMPL_CMD ("NONPAR CORR", "Nonparametric correlation")
+UNIMPL_CMD ("NUMBERED", "")
+UNIMPL_CMD ("OLAP CUBES", "On-line analytical processing")
+UNIMPL_CMD ("OMS", "Output management")
+UNIMPL_CMD ("ORTHOPLAN", "Orthogonal effects design")
+UNIMPL_CMD ("OVERALS", "Nonlinear canonical correlation")
+UNIMPL_CMD ("PACF", "Partial autocorrelation")
+UNIMPL_CMD ("PARTIAL CORR", "Partial correlation")
+UNIMPL_CMD ("PEARSON CORRELATIONS", "Correlation coefficients")
+UNIMPL_CMD ("PLANCARDS", "Conjoint analysis planning")
+UNIMPL_CMD ("PLUM", "Estimate ordinal regression models")
+UNIMPL_CMD ("POINT", "Marker in keyed file")
+UNIMPL_CMD ("PPLOT", "Plot time series variables")
+UNIMPL_CMD ("PREDICT", "Specify forecast period")
+UNIMPL_CMD ("PREFSCAL", "Multidimensional unfolding")
+UNIMPL_CMD ("PRESERVE", "Push settings")
+UNIMPL_CMD ("PRINCALS", "PCA by alternating least squares")
+UNIMPL_CMD ("PROBIT", "Probit analysis")
+UNIMPL_CMD ("PROCEDURE OUTPUT", "Specify output file")
+UNIMPL_CMD ("PROXIMITIES", "Pairwise similarity")
+UNIMPL_CMD ("PROXSCAL", "Multidimensional scaling of proximity data")
+UNIMPL_CMD ("QUICK CLUSTER", "Fast clustering")
+UNIMPL_CMD ("RATIO STATISTICS", "Descriptives of ratios")
+UNIMPL_CMD ("READ MODEL", "Read new model")
+UNIMPL_CMD ("RECORD TYPE", "Defines a type of record within FILE TYPE")
+UNIMPL_CMD ("REFORMAT", "Read obsolete files")
+UNIMPL_CMD ("REPEATING DATA", "Specify multiple cases per input record")
+UNIMPL_CMD ("REPORT", "Pretty print working file")
+UNIMPL_CMD ("RESTORE", "Restore settings")
+UNIMPL_CMD ("RMV", "Replace missing values")
+UNIMPL_CMD ("SAVE TRANSLATE", "Save to foriegn format")
+UNIMPL_CMD ("SCRIPT", "Run script file")
+UNIMPL_CMD ("SEASON", "Estimate seasonal factors")
+UNIMPL_CMD ("SELECTPRED", "Select predictor variables")
+UNIMPL_CMD ("SPCHART", "Plot control charts")
+UNIMPL_CMD ("SPECTRA", "Plot spectral density")
+UNIMPL_CMD ("SUMMARIZE", "Univariate statistics")
+UNIMPL_CMD ("SURVIVAL", "Survival analysis")
+UNIMPL_CMD ("TDISPLAY", "Display active models")
+UNIMPL_CMD ("TREE", "Create classification tree")
+UNIMPL_CMD ("TSAPPLY", "Apply time series model")
+UNIMPL_CMD ("TSET", "Set time sequence variables")
+UNIMPL_CMD ("TSHOW", "Show time sequence variables")
+UNIMPL_CMD ("TSMODEL", "Estimate time series model")
+UNIMPL_CMD ("TSPLOT", "Plot time sequence variables")
+UNIMPL_CMD ("TWOSTEP CLUSTER", "Cluster observations")
+UNIMPL_CMD ("UNIANOVA", "Univariate analysis")
+UNIMPL_CMD ("UNNUMBERED", "obsolete")
+UNIMPL_CMD ("VALIDATEDATA", "Identify suspicious cases")
+UNIMPL_CMD ("VARCOMP", "Estimate variance")
+UNIMPL_CMD ("VARSTOCASES", "Restructure complex data")
+UNIMPL_CMD ("VERIFY", "Report time series")
+UNIMPL_CMD ("WLS", "Weighted least squares regression")
+UNIMPL_CMD ("XGRAPH", "High resolution charts")