/* PSPP - a program for statistical analysis.
- Copyright (C) 1997-9, 2000, 2008, 2010 Free Software Foundation, Inc.
+ Copyright (C) 1997-9, 2000, 2008, 2010, 2011 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
else if (strchr (t, hyphen_proxy))
{
char *c = unmunge (t);
- sprintf (s, "lex_match_hyphenated_word (lexer, \"%s\")", c);
+ sprintf (s, "lex_match_phrase (lexer, \"%s\")", c);
free (c);
}
else
}
else
{
- dump (1, "if (!lex_match (lexer, T_RPAREN))");
+ dump (1, "if (!lex_match (lexer, T_LPAREN))");
dump (1, "{");
- dump (0, "msg (SE, _(\"`(' expected after %s "
- "specifier of %s subcommand.\"));",
- s->specname, sbc->name);
- dump (0, "goto lossage;");
+ dump (0, "lex_error_expecting (lexer, \"`('\", "
+ "NULL_SENTINEL);");
+ dump (0, "goto lossage;");
dump (-1, "}");
outdent ();
}
if (s->value == VAL_INT)
{
- dump (1, "if (!lex_is_integer (lexer))");
- dump (1, "{");
- dump (0, "msg (SE, _(\"%s specifier of %s subcommand "
- "requires an integer argument.\"));",
- s->specname, sbc->name);
+ dump (1, "if (!lex_force_int (lexer))");
dump (0, "goto lossage;");
- dump (-1, "}");
dump (-1, "p->%s%s = lex_integer (lexer);",
sbc->prefix, st_lower (s->valname));
}
else if (s->value == VAL_DBL)
{
- dump (1, "if (!lex_is_number (lexer))");
- dump (1, "{");
- dump (0, "msg (SE, _(\"Number expected after %s "
- "specifier of %s subcommand.\"));",
- s->specname, sbc->name);
+ dump (1, "if (!lex_force_num (lexer))");
dump (0, "goto lossage;");
- dump (-1, "}");
dump (-1, "p->%s%s = lex_tokval (lexer);", sbc->prefix,
st_lower (s->valname));
}
else if (s->value == VAL_STRING)
{
- dump (1, "if (lex_token (lexer) != T_ID "
- "&& !lex_is_string (lexer))");
- dump (1, "{");
- dump (0, "msg (SE, _(\"%s specifier of %s subcommand "
- "requires a string argument.\"));",
- s->specname, sbc->name);
+ dump (1, "if (!lex_force_string_or_id (lexer))");
dump (0, "goto lossage;");
- dump (-1, "}");
dump (-1, "free (p->%s%s);", sbc->prefix, st_lower (s->valname));
dump (0, "p->%s%s = ss_xstrdup (ss_tokss (lexer));",
sbc->prefix, st_lower (s->valname));
if (s->valtype == VT_PAREN)
{
- dump (1, "if (!lex_match (lexer, T_RPAREN))");
- dump (1, "{");
- dump (0, "msg (SE, _(\"`)' expected after argument for "
- "%s specifier of %s.\"));",
- s->specname, sbc->name);
+ dump (1, "if (!lex_force_match (lexer, T_RPAREN))");
dump (0, "goto lossage;");
- dump (-1, "}");
outdent ();
if (s->optvalue)
{
if (def->type == SBC_VARLIST)
dump (1, "if (lex_token (lexer) == T_ID "
"&& dict_lookup_var (dataset_dict (ds), lex_tokcstr (lexer)) != NULL "
- "&& lex_look_ahead (lexer) != '=')");
+ "&& lex_next_token (lexer, 1) != T_EQUALS)");
else
{
dump (0, "if ((lex_token (lexer) == T_ID "
"&& dict_lookup_var (dataset_dict (ds), lex_tokcstr (lexer)) "
- "&& lex_look_ahead () != '=')");
+ "&& lex_next_token (lexer, 1) != T_EQUALS)");
dump (1, " || token == T_ALL)");
}
dump (1, "{");
{
dump (1, "if (p->sbc_%s > 1)", st_lower (sbc->name));
dump (1, "{");
- dump (0, "msg (SE, _(\"%s subcommand may be given only once.\"));",
- sbc->name);
+ dump (0, "lex_sbc_only_once (\"%s\");", sbc->name);
dump (0, "goto lossage;");
dump (-1, "}");
outdent ();
{
dump (0, "if ( 0 == p->sbc_%s)", st_lower (sbc->name));
dump (1, "{");
- dump (0, "msg (SE, _(\"%s subcommand must be given.\"));",
- sbc->name);
+ dump (0, "lex_sbc_missing (\"%s\");", sbc->name);
dump (0, "goto lossage;");
dump (-1, "}");
dump_blank_line (0);
indent = 0;
dump (0, "#include <stdlib.h>");
- dump (0, "#include <libpspp/assertion.h>");
- dump (0, "#include <libpspp/message.h>");
- dump (0, "#include <language/lexer/lexer.h>");
- dump (0, "#include <language/lexer/variable-parser.h>");
- dump (0, "#include <data/settings.h>");
- dump (0, "#include <libpspp/str.h>");
- dump (0, "#include <language/lexer/subcommand-list.h>");
- dump (0, "#include <data/variable.h>");
+ dump_blank_line (0);
+
+ dump (0, "#include \"data/settings.h\"");
+ dump (0, "#include \"data/variable.h\"");
+ dump (0, "#include \"language/lexer/lexer.h\"");
+ dump (0, "#include \"language/lexer/subcommand-list.h\"");
+ dump (0, "#include \"language/lexer/variable-parser.h\"");
+ dump (0, "#include \"libpspp/assertion.h\"");
+ dump (0, "#include \"libpspp/message.h\"");
+ dump (0, "#include \"libpspp/str.h\"");
dump_blank_line (0);
- dump (0, "#include \"xalloc.h\"");
+ dump (0, "#include \"gl/xalloc.h\"");
dump_blank_line (0);
dump (0, "#include \"gettext.h\"");