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=b250e91bb53d2d7cf7b628fd6f41cb8113f7f30b;hpb=8af88c0b7ea2fe75df7e45497988ed0371006a86;p=pspp diff --git a/src/language/data-io/data-parser.h b/src/language/data-io/data-parser.h index b250e91bb5..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 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,14 +20,15 @@ /* Abstraction of a DATA LIST or GET DATA TYPE=TXT data parser. */ #include -#include -#include +#include "data/case.h" +#include "libpspp/str.h" struct dataset; struct dfm_reader; struct dictionary; struct file_handle; struct fmt_spec; +struct string_array; struct substring; /* Type of data read by a data parser. */ @@ -45,8 +46,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 *); @@ -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 */