X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fdata-io%2Fdata-parser.h;h=4ae25b2cea2764abe9294d218271e2203e28cb79;hb=afbfc96669bd1fe36ca1b08b59c9c137938049c1;hp=013e707858e5a9ee60bf6c7692654d95270512ac;hpb=81579d9e9f994fb2908f50af41c3eb033d216e58;p=pspp diff --git a/src/language/data-io/data-parser.h b/src/language/data-io/data-parser.h index 013e707858..4ae25b2cea 100644 --- a/src/language/data-io/data-parser.h +++ b/src/language/data-io/data-parser.h @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 2007, 2011 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 @@ -28,6 +28,7 @@ struct dfm_reader; struct dictionary; struct file_handle; struct fmt_spec; +struct string_array; struct substring; /* Type of data read by a data parser. */ @@ -38,15 +39,13 @@ 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 *); 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 *); @@ -54,6 +53,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); @@ -72,13 +74,21 @@ 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 *); +size_t data_parser_split (const struct data_parser *, struct substring line, + struct string_array *); /* 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 */