lexer: New function lex_error_expecting().
[pspp-builds.git] / src / language / utilities / set.q
index 3da12a6153bcbcc12f3ccf201324972268a5ef78..8b892c7fb6bfdb092207a6950ca0fb7a01055c6d 100644 (file)
@@ -23,9 +23,9 @@
 
 #include "data/data-in.h"
 #include "data/data-out.h"
+#include "data/dataset.h"
 #include "data/dictionary.h"
 #include "data/format.h"
-#include "data/procedure.h"
 #include "data/settings.h"
 #include "data/value.h"
 #include "data/variable.h"
@@ -101,6 +101,7 @@ int tgetnum (const char *);
      scompression=scompress:on/off;
      scripttab=string "x==1" "one character long";
      seed=custom;
+     tnumbers=custom;
      tb1=string "x==3 || x==11" "3 or 11 characters long";
      tbfonts=string;
      undefined=undef:warn/nowarn;
@@ -149,6 +150,13 @@ cmd_set (struct lexer *lexer, struct dataset *ds)
     settings_set_include (cmd.inc == STC_ON);
   if (cmd.sbc_mxerrs)
     settings_set_max_messages (MSG_S_ERROR, cmd.n_mxerrs[0]);
+  if (cmd.sbc_mxloops)
+    {
+      if (cmd.n_mxloops[0] >= 1)
+        settings_set_mxloops (cmd.n_mxloops[0]);
+      else
+        msg (SE, _("%s must be at least 1."), "MXLOOPS");
+    }
   if (cmd.sbc_mxwarns)
     settings_set_max_messages (MSG_S_WARNING, cmd.n_mxwarns[0]);
   if (cmd.sbc_rib)
@@ -177,8 +185,12 @@ cmd_set (struct lexer *lexer, struct dataset *ds)
     msg (SW, _("%s is obsolete."), "BLOCK");
   if (cmd.sbc_boxstring)
     msg (SW, _("%s is obsolete."), "BOXSTRING");
+  if (cmd.sbc_cpi)
+    msg (SW, _("%s is obsolete."), "CPI");
   if (cmd.sbc_histogram)
     msg (SW, _("%s is obsolete."), "HISTOGRAM");
+  if (cmd.sbc_lpi)
+    msg (SW, _("%s is obsolete."), "LPI");
   if (cmd.sbc_menus)
     msg (SW, _("%s is obsolete."), "MENUS");
   if (cmd.sbc_xsort)
@@ -298,6 +310,35 @@ stc_custom_blanks (struct lexer *lexer,
   return 1;
 }
 
+static int
+stc_custom_tnumbers (struct lexer *lexer,
+                  struct dataset *ds UNUSED,
+                  struct cmd_set *cmd UNUSED, void *aux UNUSED)
+{
+  lex_match (lexer, T_EQUALS);
+
+  if (lex_match_id (lexer, "VALUES"))
+    {
+      settings_set_value_style (SETTINGS_VAL_STYLE_VALUES);
+    }
+  else if (lex_match_id (lexer, "LABELS"))
+    {
+      settings_set_value_style (SETTINGS_VAL_STYLE_LABELS);
+    }
+  else if (lex_match_id (lexer, "BOTH"))
+    {
+      settings_set_value_style (SETTINGS_VAL_STYLE_BOTH);
+    }
+  else
+    {
+      lex_error_expecting (lexer, "VALUES", "LABELS", "BOTH", NULL_SENTINEL);
+      return 0;
+    }
+
+  return 1;
+}
+
+
 /* Parses the EPOCH subcommand, which controls the epoch used for
    parsing 2-digit years. */
 static int