Move var_set and variable parsing declarations into new header.
authorBen Pfaff <blp@gnu.org>
Tue, 27 Jun 2006 19:09:21 +0000 (19:09 +0000)
committerBen Pfaff <blp@gnu.org>
Tue, 27 Jun 2006 19:09:21 +0000 (19:09 +0000)
34 files changed:
src/data/ChangeLog
src/data/variable.h
src/language/control/repeat.c
src/language/data-io/data-list.c
src/language/data-io/get.c
src/language/data-io/matrix-data.c
src/language/data-io/print.c
src/language/dictionary/formats.c
src/language/dictionary/missing-values.c
src/language/dictionary/modify-variables.c
src/language/dictionary/numeric.c
src/language/dictionary/rename-variables.c
src/language/dictionary/split-file.c
src/language/dictionary/sys-file-info.c
src/language/dictionary/value-labels.c
src/language/dictionary/variable-display.c
src/language/dictionary/variable-label.c
src/language/dictionary/vector.c
src/language/dictionary/weight.c
src/language/expressions/parse.c
src/language/lexer/ChangeLog
src/language/lexer/q2c.c
src/language/lexer/variable-parser.c
src/language/lexer/variable-parser.h [new file with mode: 0644]
src/language/stats/aggregate.c
src/language/stats/autorecode.c
src/language/stats/correlations.q
src/language/stats/crosstabs.q
src/language/stats/descriptives.c
src/language/stats/flip.c
src/language/stats/sort-criteria.c
src/language/xforms/count.c
src/language/xforms/recode.c
src/language/xforms/select-if.c

index f1132b2b49dc0336041639aa3e74bc68078525f8..8683f041c2187d5b53aa7f3931cf9598e8ab9e63 100644 (file)
@@ -1,3 +1,9 @@
+Tue Jun 27 12:06:49 2006  Ben Pfaff  <blp@gnu.org>
+
+       * variable.h: Move var_set and variable parsing declarations to
+       new header, src/language/lexer/variable-parser.h.  Modified lots
+       of files to include the new header.
+
 Sun Jun 25 22:39:32 2006  Ben Pfaff  <blp@gnu.org>
 
        * value-labels.c (value_to_string): When there's no value label,
index 8a4609f0526e77d15a6a392c0fee7289f6180fab..8668119b35f511667ea3661a5317727d49fdf869 100644 (file)
@@ -125,48 +125,6 @@ struct vector
     struct variable **var;     /* Vector of variables. */
     int cnt;                   /* Number of variables. */
   };
-\f
-struct var_set;
-
-struct dictionary;
-struct var_set *var_set_create_from_dict (const struct dictionary *d);
-struct var_set *var_set_create_from_array (struct variable *const *var,
-                                           size_t);
-
-size_t var_set_get_cnt (const struct var_set *vs);
-struct variable *var_set_get_var (const struct var_set *vs, size_t idx);
-struct variable *var_set_lookup_var (const struct var_set *vs,
-                                     const char *name);
-bool var_set_lookup_var_idx (const struct var_set *vs, const char *name,
-                             size_t *idx);
-void var_set_destroy (struct var_set *vs);
-\f
-/* Variable parsers. */
-
-enum
-  {
-    PV_NONE = 0,               /* No options. */
-    PV_SINGLE = 0001,          /* Restrict to a single name or TO use. */
-    PV_DUPLICATE = 0002,       /* Don't merge duplicates. */
-    PV_APPEND = 0004,          /* Append to existing list. */
-    PV_NO_DUPLICATE = 0010,    /* Error on duplicates. */
-    PV_NUMERIC = 0020,         /* Vars must be numeric. */
-    PV_STRING = 0040,          /* Vars must be string. */
-    PV_SAME_TYPE = 00100,      /* All vars must be the same type. */
-    PV_NO_SCRATCH = 00200      /* Disallow scratch variables. */
-  };
-
-struct pool;
-struct variable *parse_variable (void);
-struct variable *parse_dict_variable (const struct dictionary *);
-int parse_variables (const struct dictionary *, struct variable ***, size_t *,
-                     int opts);
-int parse_var_set_vars (const struct var_set *, struct variable ***, size_t *,
-                        int opts);
-int parse_DATA_LIST_vars (char ***names, size_t *cnt, int opts);
-int parse_mixed_vars (char ***names, size_t *cnt, int opts);
-int parse_mixed_vars_pool (struct pool *,
-                           char ***names, size_t *cnt, int opts);
 
 
 /* Return a string representing this variable, in the form most 
index d2d894a9e248ddf337fdf757f3466d76341ddd83..42481dfa29756f92e02790fc3d54ca3bdb4e4fa4 100644 (file)
@@ -30,6 +30,7 @@
 #include <data/settings.h>
 #include <language/command.h>
 #include <language/lexer/lexer.h>
+#include <language/lexer/variable-parser.h>
 #include <language/line-buffer.h>
 #include <libpspp/alloc.h>
 #include <libpspp/message.h>
index 92ad0793b04659ff965278e474e9a3894b41a7b4..6998cc9239307b52b290ab1b7005f1cee5cb4bc5 100644 (file)
@@ -39,6 +39,7 @@
 #include <language/data-io/file-handle.h>
 #include <language/data-io/inpt-pgm.h>
 #include <language/lexer/lexer.h>
+#include <language/lexer/variable-parser.h>
 #include <libpspp/alloc.h>
 #include <libpspp/compiler.h>
 #include <libpspp/message.h>
index 2657b506e29a66ebdaa9b0d6cd27b33af7b9a197..651d222af9745684a337c7c29d7bc242660f6753 100644 (file)
@@ -39,6 +39,7 @@
 #include <language/command.h>
 #include <language/data-io/file-handle.h>
 #include <language/lexer/lexer.h>
+#include <language/lexer/variable-parser.h>
 #include <libpspp/alloc.h>
 #include <libpspp/compiler.h>
 #include <libpspp/hash.h>
index c725ed4accfbb7a5a87c2a8ed5341ab3434f3296..5a66491176b20e5540431d207816643afefcbc72 100644 (file)
@@ -33,6 +33,7 @@
 #include <language/data-io/data-reader.h>
 #include <language/data-io/file-handle.h>
 #include <language/lexer/lexer.h>
+#include <language/lexer/variable-parser.h>
 #include <libpspp/alloc.h>
 #include <libpspp/array.h>
 #include <libpspp/compiler.h>
index 34cca99a4156c2354fbad81a61fa797a15122b88..061aafc628f89fb56dadb55b3d4138badf316063 100644 (file)
@@ -32,6 +32,7 @@
 #include <language/data-io/file-handle.h>
 #include <language/expressions/public.h>
 #include <language/lexer/lexer.h>
+#include <language/lexer/variable-parser.h>
 #include <libpspp/alloc.h>
 #include <libpspp/compiler.h>
 #include <libpspp/message.h>
index 8658634b364e64edf434243a9997fe315389ed3a..7b01b2b889b37385b203e5777ffe43aaa8f3be85 100644 (file)
@@ -27,6 +27,7 @@
 #include <data/variable.h>
 #include <language/command.h>
 #include <language/lexer/lexer.h>
+#include <language/lexer/variable-parser.h>
 #include <libpspp/message.h>
 #include <libpspp/misc.h>
 #include <libpspp/str.h>
index e37fa987deddfb3dd642b777d8582a1fd3070d75..21a5b6394832178005bc9d2c7a12e71970135dc7 100644 (file)
@@ -26,6 +26,7 @@
 #include <data/variable.h>
 #include <language/command.h>
 #include <language/lexer/lexer.h>
+#include <language/lexer/variable-parser.h>
 #include <language/lexer/range-parser.h>
 #include <libpspp/magic.h>
 #include <libpspp/message.h>
index 1b0a27b061016591056d3fead86ee23f28aa3bbf..c17bb5629a3eeea4afd164b9ec0718ab45a7c0ad 100644 (file)
    02110-1301, USA. */
 
 #include <config.h>
+
 #include <stdlib.h>
-#include <libpspp/message.h>
-#include <libpspp/array.h>
+
+#include <data/dictionary.h>
+#include <data/procedure.h>
+#include <data/variable.h>
+#include <language/command.h>
+#include <language/lexer/lexer.h>
+#include <language/lexer/variable-parser.h>
 #include <libpspp/alloc.h>
+#include <libpspp/array.h>
 #include <libpspp/bit-vector.h>
-#include <language/command.h>
 #include <libpspp/compiler.h>
-#include <data/dictionary.h>
-#include <libpspp/message.h>
 #include <libpspp/hash.h>
-#include <language/lexer/lexer.h>
+#include <libpspp/message.h>
+#include <libpspp/message.h>
 #include <libpspp/misc.h>
 #include <libpspp/str.h>
-#include <data/procedure.h>
-#include <data/variable.h>
 
 #include "gettext.h"
 #define _(msgid) gettext (msgid)
index 379348835462343d0bce897170e31bb106039506..a914b06ac2502012ade383d2c5b5b84fb844f44a 100644 (file)
@@ -26,6 +26,7 @@
 #include <data/variable.h>
 #include <language/command.h>
 #include <language/lexer/lexer.h>
+#include <language/lexer/variable-parser.h>
 #include <libpspp/message.h>
 #include <libpspp/message.h>
 #include <libpspp/str.h>
index 6165787fbb155431fb86b30f4a72feed3c92211b..b2bd3d76899cf0dda8ed8f200ced8be14da4a170 100644 (file)
@@ -26,6 +26,7 @@
 #include <data/variable.h>
 #include <language/command.h>
 #include <language/lexer/lexer.h>
+#include <language/lexer/variable-parser.h>
 #include <libpspp/alloc.h>
 #include <libpspp/hash.h>
 #include <libpspp/message.h>
index 201a999e509668701be57864df5c08ed7f44b5ef..5e327984a5cb3597a57fbf8b922952c09b6925b2 100644 (file)
@@ -30,6 +30,7 @@
 #include <language/command.h>
 #include <language/dictionary/split-file.h>
 #include <language/lexer/lexer.h>
+#include <language/lexer/variable-parser.h>
 #include <libpspp/alloc.h>
 #include <libpspp/message.h>
 #include <libpspp/str.h>
index 5c3985be68c06c5fe8aca0377ba6e3863fb80aad..3f77b1de880f02471a0fd25bdb4b63d569e42c5a 100644 (file)
@@ -31,6 +31,7 @@
 #include <language/command.h>
 #include <language/data-io/file-handle.h>
 #include <language/lexer/lexer.h>
+#include <language/lexer/variable-parser.h>
 #include <libpspp/alloc.h>
 #include <libpspp/array.h>
 #include <libpspp/hash.h>
index dec757c356de18ade4bbad808abd7d2e38ed1db8..a1310227f4b655328e5ba79d427be2e507330fb7 100644 (file)
@@ -27,6 +27,7 @@
 #include <data/variable.h>
 #include <language/command.h>
 #include <language/lexer/lexer.h>
+#include <language/lexer/variable-parser.h>
 #include <libpspp/alloc.h>
 #include <libpspp/hash.h>
 #include <libpspp/message.h>
index 2348b721157b2bc6868ba81ed8f9e667eafabb69..4d13514e93fc1ece9c6d32ad9a2ee0482ba45aaf 100644 (file)
@@ -26,6 +26,7 @@
 #include <data/variable.h>
 #include <language/command.h>
 #include <language/lexer/lexer.h>
+#include <language/lexer/variable-parser.h>
 #include <libpspp/alloc.h>
 #include <libpspp/message.h>
 #include <libpspp/str.h>
index dcd607fe05f3fb71eacea8ecc4c02538ede1ab99..17f881125aa157e2e917c55e6eb4e34d22e724d4 100644 (file)
@@ -26,6 +26,7 @@
 #include <data/variable.h>
 #include <language/command.h>
 #include <language/lexer/lexer.h>
+#include <language/lexer/variable-parser.h>
 #include <libpspp/alloc.h>
 #include <libpspp/message.h>
 #include <libpspp/str.h>
index 82870d9d447f8e881a80e202e47c26f8413d0b8d..b4a212d26641dc6d87452735469a5af337e3e165 100644 (file)
@@ -26,6 +26,7 @@
 #include <data/variable.h>
 #include <language/command.h>
 #include <language/lexer/lexer.h>
+#include <language/lexer/variable-parser.h>
 #include <libpspp/alloc.h>
 #include <libpspp/message.h>
 #include <libpspp/misc.h>
index 5d492c4f50ceefcad2e807f85391e0629a3dfe86..58ed524d22a20b7e78068f943696c5016d19f4f1 100644 (file)
@@ -26,6 +26,7 @@
 #include <data/variable.h>
 #include <language/command.h>
 #include <language/lexer/lexer.h>
+#include <language/lexer/variable-parser.h>
 #include <libpspp/message.h>
 #include <libpspp/str.h>
 
index f220509aaabb039cb0eaa847e6895bf69f08f902..72604ed95236b0101341e020c18114b7cb2bbe93 100644 (file)
@@ -30,6 +30,7 @@
 #include <libpspp/message.h>
 #include "helpers.h"
 #include <language/lexer/lexer.h>
+#include <language/lexer/variable-parser.h>
 #include <libpspp/misc.h>
 #include <libpspp/pool.h>
 #include <data/settings.h>
index c1b5f984d9523ac87caee8f8f54f6d5945a031b1..99b6e3e4cfa95b3b31ed50ec030d31805709993a 100644 (file)
@@ -1,3 +1,10 @@
+Tue Jun 27 12:07:34 2006  Ben Pfaff  <blp@gnu.org>
+
+       * variable-parser.h: New header.  Moved the var_set and variable
+       parsing declarations here.
+
+       * q2c.c (main): Emit include for new variable-parser.h header.
+
 Sun Jun 25 22:41:00 2006  Ben Pfaff  <blp@gnu.org>
 
        * q2c.c (dump_free): For SBC_DBL_LIST, enclose the output code in
index 50a0856a0012ab8f7bce137997891d8ed3466f5d..d66dcc01ca00e602331565926e94d83fbf56315e 100644 (file)
@@ -2032,6 +2032,7 @@ main (int argc, char *argv[])
          dump (0, "#include <libpspp/alloc.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>");
index 64792aaaec56ced30eadc35077efd292c7bf41a7..7f25d8eb685f0be26818df389bb2fef07182db38 100644 (file)
@@ -19,6 +19,8 @@
 
 #include <config.h>
 
+#include <language/lexer/variable-parser.h>
+
 #include <ctype.h>
 #include <stdbool.h>
 #include <stdlib.h>
diff --git a/src/language/lexer/variable-parser.h b/src/language/lexer/variable-parser.h
new file mode 100644 (file)
index 0000000..f752028
--- /dev/null
@@ -0,0 +1,69 @@
+/* PSPP - computes sample statistics.
+   Copyright (C) 1997-9, 2000, 2006 Free Software Foundation, Inc.
+   Written by Ben Pfaff <blp@gnu.org>.
+
+   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 the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+   02110-1301, USA. */
+
+#ifndef VARIABLE_PARSER_H
+#define VARIABLE_PARSER_H 1
+
+#include <stdbool.h>
+#include <stddef.h>
+
+struct pool;
+struct dictionary;
+struct var_set;
+struct variable;
+
+struct var_set *var_set_create_from_dict (const struct dictionary *d);
+struct var_set *var_set_create_from_array (struct variable *const *var,
+                                           size_t);
+
+size_t var_set_get_cnt (const struct var_set *vs);
+struct variable *var_set_get_var (const struct var_set *vs, size_t idx);
+struct variable *var_set_lookup_var (const struct var_set *vs,
+                                     const char *name);
+bool var_set_lookup_var_idx (const struct var_set *vs, const char *name,
+                             size_t *idx);
+void var_set_destroy (struct var_set *vs);
+\f
+/* Variable parsers. */
+
+enum
+  {
+    PV_NONE = 0,               /* No options. */
+    PV_SINGLE = 0001,          /* Restrict to a single name or TO use. */
+    PV_DUPLICATE = 0002,       /* Don't merge duplicates. */
+    PV_APPEND = 0004,          /* Append to existing list. */
+    PV_NO_DUPLICATE = 0010,    /* Error on duplicates. */
+    PV_NUMERIC = 0020,         /* Vars must be numeric. */
+    PV_STRING = 0040,          /* Vars must be string. */
+    PV_SAME_TYPE = 00100,      /* All vars must be the same type. */
+    PV_NO_SCRATCH = 00200      /* Disallow scratch variables. */
+  };
+
+struct variable *parse_variable (void);
+struct variable *parse_dict_variable (const struct dictionary *);
+int parse_variables (const struct dictionary *, struct variable ***, size_t *,
+                     int opts);
+int parse_var_set_vars (const struct var_set *, struct variable ***, size_t *,
+                        int opts);
+int parse_DATA_LIST_vars (char ***names, size_t *cnt, int opts);
+int parse_mixed_vars (char ***names, size_t *cnt, int opts);
+int parse_mixed_vars_pool (struct pool *,
+                           char ***names, size_t *cnt, int opts);
+
+#endif /* variable-parser.h */
index aef4bbbfa9555cf8ebd3a393773e383115f6126e..78c29c4fa74c125d19611b352733d683d95b4ed6 100644 (file)
@@ -35,6 +35,7 @@
 #include <language/command.h>
 #include <language/data-io/file-handle.h>
 #include <language/lexer/lexer.h>
+#include <language/lexer/variable-parser.h>
 #include <language/stats/sort-criteria.h>
 #include <libpspp/alloc.h>
 #include <libpspp/message.h>
index 560f9f99ddd15bbbd908cd9fd90a0959eee84ff6..4d3513eea4925e09f0c506b2bd57514ce1ef2a53 100644 (file)
@@ -27,6 +27,7 @@
 #include <data/variable.h>
 #include <language/command.h>
 #include <language/lexer/lexer.h>
+#include <language/lexer/variable-parser.h>
 #include <libpspp/alloc.h>
 #include <libpspp/compiler.h>
 #include <libpspp/hash.h>
index 594a53875c0286a6e50e4f03e0439c7650caf100..f998e1df1a16a1feb1694b2d3f156ec4d0a6979f 100644 (file)
@@ -28,6 +28,7 @@
 #include <language/command.h>
 #include <language/data-io/file-handle.h>
 #include <language/lexer/lexer.h>
+#include <language/lexer/variable-parser.h>
 #include <libpspp/alloc.h>
 #include <libpspp/compiler.h>
 
index ee7299200fb21d3656aaa7adfbb2cfaecd64f357..c821ce0ad6484e477b162979e628f346059e1ac1 100644 (file)
@@ -44,6 +44,7 @@
 #include <language/command.h>
 #include <language/dictionary/split-file.h>
 #include <language/lexer/lexer.h>
+#include <language/lexer/variable-parser.h>
 #include <libpspp/alloc.h>
 #include <libpspp/array.h>
 #include <libpspp/compiler.h>
index 90f8b8f297d31e8388c13faca8d8c3185f2cbbca..958c00d89ea90beaba3013834137ff4a96702f3d 100644 (file)
@@ -34,6 +34,7 @@
 #include <language/command.h>
 #include <language/dictionary/split-file.h>
 #include <language/lexer/lexer.h>
+#include <language/lexer/variable-parser.h>
 #include <libpspp/alloc.h>
 #include <libpspp/array.h>
 #include <libpspp/compiler.h>
index 59f0c090a09a07ebe5310db34a5049f6c4149988..0e9b56c5c87ecf7962db9cacd7083d9c29c8f2b8 100644 (file)
@@ -38,6 +38,7 @@
 #include <data/variable.h>
 #include <language/command.h>
 #include <language/lexer/lexer.h>
+#include <language/lexer/variable-parser.h>
 #include <libpspp/alloc.h>
 #include <libpspp/array.h>
 #include <libpspp/message.h>
index fd90af22ff85958b2a00ef0523606d70846fe48b..b09dee3943f347cbc2622d845078257877f97d24 100644 (file)
@@ -26,6 +26,7 @@
 #include <language/command.h>
 #include <libpspp/message.h>
 #include <language/lexer/lexer.h>
+#include <language/lexer/variable-parser.h>
 #include <data/settings.h>
 #include <data/variable.h>
 #include "sort-criteria.h"
index 284cdeebb5556e87b30305b9271ef99d6ee9269d..38e3e955775513d340b9b01f8bfc3db95f8e7429 100644 (file)
@@ -29,6 +29,7 @@
 #include <language/command.h>
 #include <language/lexer/lexer.h>
 #include <language/lexer/range-parser.h>
+#include <language/lexer/variable-parser.h>
 #include <libpspp/alloc.h>
 #include <libpspp/compiler.h>
 #include <libpspp/message.h>
index 86bd8b88292a6a46163bf0d07f1b464eb6aa0bda..5aaeb55923c192aa60720ab508df96a890468bef 100644 (file)
@@ -31,6 +31,7 @@
 #include <data/variable.h>
 #include <language/command.h>
 #include <language/lexer/lexer.h>
+#include <language/lexer/variable-parser.h>
 #include <language/lexer/range-parser.h>
 #include <libpspp/alloc.h>
 #include <libpspp/compiler.h>
index ddeb4a05f4e9187afc058217d044fd9f8becd3e2..e6dc9b4bb0b291c4c21a2f4b5a4a035b3b7e2f30 100644 (file)
@@ -28,6 +28,7 @@
 #include <language/command.h>
 #include <language/expressions/public.h>
 #include <language/lexer/lexer.h>
+#include <language/lexer/variable-parser.h>
 #include <libpspp/alloc.h>
 #include <libpspp/message.h>
 #include <libpspp/str.h>