/* PSPP - a program for statistical analysis.
- Copyright (C) 2008 Free Software Foundation, Inc.
+ Copyright (C) 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
bool ok;
if (!lex_force_match_id (lexer, "VARIABLES")
- || !lex_force_match (lexer, '=')
+ || !lex_force_match (lexer, T_EQUALS)
|| !parse_variables (lexer, dataset_dict (ds), &vars, &n_vars,
PV_NONE))
return CMD_FAILURE;
if (!ok)
return CMD_FAILURE;
}
- while (lex_match (lexer, '/'));
+ while (lex_match (lexer, T_SLASH));
return lex_end_of_command (lexer);
}
match_subcommand (struct lexer *lexer, const char *keyword)
{
if (lex_token (lexer) == T_ID
- && lex_id_match (ss_cstr (lex_tokid (lexer)), ss_cstr (keyword))
- && lex_look_ahead (lexer) == '=')
+ && lex_id_match (lex_tokss (lexer), ss_cstr (keyword))
+ && lex_look_ahead (lexer) == T_EQUALS)
{
lex_get (lexer); /* Skip keyword. */
lex_get (lexer); /* Skip '='. */
{
if (!lex_force_id (lexer))
return false;
- strcpy (name, lex_tokid (lexer));
+ strcpy (name, lex_tokcstr (lexer));
lex_get (lexer);
- if (lex_match (lexer, '['))
+ if (lex_match (lexer, T_LBRACK))
{
if (!lex_force_int (lexer))
return false;
}
*index = lex_integer (lexer);
lex_get (lexer);
- if (!lex_force_match (lexer, ']'))
+ if (!lex_force_match (lexer, T_RBRACK))
return false;
}
else
add_attribute (struct lexer *lexer, struct attrset **sets, size_t n)
{
char name[VAR_NAME_LEN + 1];
+ const char *value;
size_t index, i;
- char *value;
if (!parse_attribute_name (lexer, name, &index)
- || !lex_force_match (lexer, '(')
+ || !lex_force_match (lexer, T_LPAREN)
|| !lex_force_string (lexer))
return false;
- value = ds_cstr (lex_tokstr (lexer));
+ value = lex_tokcstr (lexer);
for (i = 0; i < n; i++)
{
}
lex_get (lexer);
- return lex_force_match (lexer, ')');
+ return lex_force_match (lexer, T_RPAREN);
}
static bool
: delete_attribute (lexer, sets, n)))
return CMD_FAILURE;
}
- while (lex_token (lexer) != '/' && lex_token (lexer) != '.');
+ while (lex_token (lexer) != T_SLASH && lex_token (lexer) != T_ENDCMD);
return CMD_SUCCESS;
}