INSERT: Add testing-only feature for ignoring cascading failures.
[pspp] / src / language / lexer / variable-parser.h
index c2a8506464138d76a5ab626f2c61b60a463dd91b..5815dc458b943fc1235fe52ef8fd0d345e9376a4 100644 (file)
@@ -62,15 +62,15 @@ bool parse_var_set_vars (struct lexer *, const struct var_set *, struct variable
 
 char *parse_DATA_LIST_var (struct lexer *, const struct dictionary *);
 bool parse_DATA_LIST_vars (struct lexer *, const struct dictionary *,
-                           char ***names, size_t *cnt, int opts);
+                           char ***names, size_t *n, int opts);
 bool parse_DATA_LIST_vars_pool (struct lexer *, const struct dictionary *,
                                 struct pool *,
-                                char ***names, size_t *cnt, int opts);
+                                char ***names, size_t *n, int opts);
 bool parse_mixed_vars (struct lexer *, const struct dictionary *dict,
-                      char ***names, size_t *cnt, int opts);
+                      char ***names, size_t *n, int opts);
 bool parse_mixed_vars_pool (struct lexer *, const struct dictionary *dict,
                            struct pool *,
-                           char ***names, size_t *cnt, int opts);
+                           char ***names, size_t *n, int opts);
 \f
 /* This variable parser supports the unusual situation where set of variables
    has to be parsed before the associated dictionary is available.  Thus,
@@ -82,11 +82,20 @@ struct var_syntax
   {
     char *first;                /* Always nonnull. */
     char *last;                 /* Nonnull for var ranges (e.g. "a TO b"). */
+
+    /* For error reporting.
+
+      This only works if var_syntax_parse() and var_syntax_evaluate() are
+      called while we're parsing the same source file.  That matches the
+      current use case in MATRIX; if that changes, then this will need to
+      switch to use struct msg_location instead. */
+    int first_ofs;
+    int last_ofs;
   };
 void var_syntax_destroy (struct var_syntax *, size_t n);
 
 bool var_syntax_parse (struct lexer *, struct var_syntax **, size_t *);
-bool var_syntax_evaluate (const struct var_syntax *, size_t,
+bool var_syntax_evaluate (struct lexer *, const struct var_syntax *, size_t,
                           const struct dictionary *,
                           struct variable ***, size_t *, int opts);