data-parser: Make data parser not require a dictionary.
[pspp] / src / language / data-io / data-parser.h
index 560eed30a22ec4e384e6f244199f80d3e01f8f41..caef721d1070a3f80cafa576725ef476a7caea06 100644 (file)
@@ -38,7 +38,7 @@ enum data_parser_type
   };
 
 /* Creating and configuring any parser. */
-struct data_parser *data_parser_create (const struct dictionary *dict);
+struct data_parser *data_parser_create (void);
 void data_parser_destroy (struct data_parser *);
 
 enum data_parser_type data_parser_get_type (const struct data_parser *);
@@ -52,6 +52,9 @@ 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);
@@ -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 */