data-parser: Make data parser not require a dictionary.
[pspp] / src / language / data-io / data-parser.h
index 3ee1be8c9b4b079560e3c5e871344a996cd748cf..caef721d1070a3f80cafa576725ef476a7caea06 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPP - a program for statistical analysis.
-   Copyright (C) 2007 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2011, 2016 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
@@ -20,7 +20,8 @@
 /* Abstraction of a DATA LIST or GET DATA TYPE=TXT data parser. */
 
 #include <stdbool.h>
-#include <data/case.h>
+#include "data/case.h"
+#include "libpspp/str.h"
 
 struct dataset;
 struct dfm_reader;
@@ -44,8 +45,6 @@ enum data_parser_type data_parser_get_type (const struct data_parser *);
 void data_parser_set_type (struct data_parser *, enum data_parser_type);
 
 void data_parser_set_skip (struct data_parser *, int initial_records_to_skip);
-void data_parser_set_case_limit (struct data_parser *, casenumber max_cases);
-void data_parser_set_case_percent (struct data_parser *, int case_percent);
 
 /* For configuring delimited parsers only. */
 bool data_parser_get_span (const struct data_parser *);
@@ -53,7 +52,11 @@ void data_parser_set_span (struct data_parser *, bool may_cases_span_records);
 
 void data_parser_set_empty_line_has_field (struct data_parser *,
                                            bool empty_line_has_field);
+void data_parser_set_warn_missing_fields (struct data_parser *parser,
+                                         bool warn_missing_fields);
+
 void data_parser_set_quotes (struct data_parser *, struct substring);
+void data_parser_set_quote_escape (struct data_parser *, bool escape);
 void data_parser_set_soft_delimiters (struct data_parser *, struct substring);
 void data_parser_set_hard_delimiters (struct data_parser *, struct substring);
 
@@ -70,13 +73,20 @@ void data_parser_add_fixed_field (struct data_parser *,
                                   const char *name,
                                   int record, int first_column);
 bool data_parser_any_fields (const struct data_parser *);
-bool data_parser_parse (struct data_parser *,
-                        struct dfm_reader *, struct ccase *);
+bool data_parser_parse (struct data_parser *, struct dfm_reader *,
+                        struct dictionary *, struct ccase *);
+
 
 /* Uses for a configured parser. */
 void data_parser_output_description (struct data_parser *,
                                      const struct file_handle *);
+struct casereader;
 void data_parser_make_active_file (struct data_parser *, struct dataset *,
-                                   struct dfm_reader *, struct dictionary *);
+                                   struct dfm_reader *, struct dictionary *,
+                                  struct casereader* (*func)(struct casereader *,
+                                                             const struct dictionary *,
+                                                             void *),
+                                  void *ud);
+
 
 #endif /* language/data-io/data-parser.h */