X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fdictionary%2Fvariable-display.c;h=63bc6d472c6f4c8b01ac221b339ab6e5d518a3e9;hb=cfc68512bf002c16d4a0f2c0acff764f96a2af3e;hp=4b68f902b0535462c2566748ec2e116d7ca02391;hpb=81579d9e9f994fb2908f50af41c3eb033d216e58;p=pspp diff --git a/src/language/dictionary/variable-display.c b/src/language/dictionary/variable-display.c index 4b68f902b0..63bc6d472c 100644 --- a/src/language/dictionary/variable-display.c +++ b/src/language/dictionary/variable-display.c @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 1997-9, 2000, 2010, 2011 Free Software Foundation, Inc. + Copyright (C) 1997-9, 2000, 2010, 2011, 2013 Free Software Foundation, Inc. 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 @@ -19,7 +19,7 @@ #include #include -#include "data/procedure.h" +#include "data/dataset.h" #include "data/variable.h" #include "language/command.h" #include "language/lexer/lexer.h" @@ -183,3 +183,43 @@ cmd_variable_level (struct lexer *lexer, struct dataset *ds) while (lex_token (lexer) != T_ENDCMD); return CMD_SUCCESS; } + +/* Set variables' role */ +int +cmd_variable_role (struct lexer *lexer, struct dataset *ds) +{ + while (lex_match (lexer, T_SLASH)) + { + struct variable **v; + size_t nv; + enum var_role role; + size_t i; + + if ( lex_match_id (lexer, "INPUT")) + role = ROLE_INPUT; + else if ( lex_match_id (lexer, "TARGET")) + role = ROLE_OUTPUT; + else if ( lex_match_id (lexer, "BOTH")) + role = ROLE_BOTH; + else if ( lex_match_id (lexer, "NONE")) + role = ROLE_NONE; + else if ( lex_match_id (lexer, "PARTITION")) + role = ROLE_PARTITION; + else if ( lex_match_id (lexer, "SPLIT")) + role = ROLE_SPLIT; + else + { + lex_error (lexer, NULL); + return CMD_FAILURE; + } + + if (!parse_variables (lexer, dataset_dict (ds), &v, &nv, PV_NONE)) + return CMD_FAILURE; + + for (i = 0; i < nv; i++) + var_set_role (v[i], role); + free (v); + } + + return CMD_SUCCESS; +}