/* PSPP - a program for statistical analysis.
- Copyright (C) 1997-9, 2000, 2006, 2007, 2008 Free Software Foundation, Inc.
+ Copyright (C) 1997-9, 2000, 2006, 2007, 2008, 2010 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
int group;
- lex_match (lexer, '=');
- if (lex_token (lexer) != '(')
+ lex_match (lexer, T_EQUALS);
+ if (lex_token (lexer) != T_LPAREN)
{
struct variable *v;
v = parse_variable (lexer, dict);
if (v == NULL)
return 0;
- if (!lex_force_match (lexer, '=')
+ if (!lex_force_match (lexer, T_EQUALS)
|| !lex_force_id (lexer))
return 0;
- if (dict_lookup_var (dict, lex_tokid (lexer)) != NULL)
+ if (dict_lookup_var (dict, lex_tokcstr (lexer)) != NULL)
{
msg (SE, _("Cannot rename %s as %s because there already exists "
"a variable named %s. To rename variables with "
"overlapping names, use a single RENAME subcommand "
- "such as \"/RENAME (A=B)(B=C)(C=A)\", or equivalently, "
- "\"/RENAME (A B C=B C A)\"."),
- var_get_name (v), lex_tokid (lexer), lex_tokid (lexer));
+ "such as `/RENAME (A=B)(B=C)(C=A)', or equivalently, "
+ "`/RENAME (A B C=B C A)'."),
+ var_get_name (v), lex_tokcstr (lexer), lex_tokcstr (lexer));
return 0;
}
- dict_rename_var (dict, v, lex_tokid (lexer));
+ dict_rename_var (dict, v, lex_tokcstr (lexer));
lex_get (lexer);
return 1;
}
v = NULL;
new_names = 0;
group = 1;
- while (lex_match (lexer, '('))
+ while (lex_match (lexer, T_LPAREN))
{
size_t old_nv = nv;
if (!parse_variables (lexer, dict, &v, &nv, PV_NO_DUPLICATE | PV_APPEND))
goto done;
- if (!lex_match (lexer, '='))
+ if (!lex_match (lexer, T_EQUALS))
{
msg (SE, _("`=' expected after variable list."));
goto done;
}
- if (!parse_DATA_LIST_vars (lexer, &new_names, &nn, PV_APPEND | PV_NO_SCRATCH))
+ if (!parse_DATA_LIST_vars (lexer, &new_names, &nn,
+ PV_APPEND | PV_NO_SCRATCH | PV_NO_DUPLICATE))
goto done;
if (nn != nv)
{
nv - old_nv, nn - old_nv, group);
goto done;
}
- if (!lex_force_match (lexer, ')'))
+ if (!lex_force_match (lexer, T_RPAREN))
goto done;
group++;
}
struct variable **v;
size_t nv;
- lex_match (lexer, '=');
+ lex_match (lexer, T_EQUALS);
if (!parse_variables (lexer, dict, &v, &nv, PV_NONE))
return false;
dict_delete_vars (dict, v, nv);
size_t nv;
size_t i;
- lex_match (lexer, '=');
+ lex_match (lexer, T_EQUALS);
if (!parse_variables (lexer, dict, &v, &nv, PV_NONE))
return false;