1 /*
2  *  gretl -- Gnu Regression, Econometrics and Time-series Library
3  *  Copyright (C) 2001 Allin Cottrell and Riccardo "Jack" Lucchetti
4  *
5  *  This program is free software: you can redistribute it and/or modify
6  *  it under the terms of the GNU General Public License as published by
7  *  the Free Software Foundation, either version 3 of the License, or
8  *  (at your option) any later version.
9  *
10  *  This program is distributed in the hope that it will be useful,
11  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  *  GNU General Public License for more details.
14  *
15  *  You should have received a copy of the GNU General Public License
16  *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
17  *
18  */
19 
20 #ifndef GRETL_STRING_TABLE_H
21 #define GRETL_STRING_TABLE_H
22 
23 gretl_string_table *gretl_string_table_new (const int *list);
24 
25 int gretl_string_table_index (gretl_string_table *gst, const char *s,
26 			      int col, int addcol, PRN *prn);
27 
28 int gretl_string_table_print (gretl_string_table *gst, DATASET *dset,
29 			      const char *fname, PRN *prn);
30 
31 int gretl_string_table_validate (gretl_string_table *gst,
32 				 gretlopt opt);
33 
34 int gretl_string_table_save (gretl_string_table *gst, DATASET *dset);
35 
36 void gretl_string_table_destroy (gretl_string_table *gst);
37 
38 void gretl_string_table_add_extra (gretl_string_table *gst, PRN *prn);
39 
40 int gretl_string_table_reset_column_id (gretl_string_table *gst,
41 					int oldid, int newid);
42 
43 series_table *gretl_string_table_detach_col (gretl_string_table *gst,
44 					     int col);
45 
46 int in_string_table (gretl_string_table *gst, int id);
47 
48 int *string_table_copy_list (gretl_string_table *gst);
49 
50 int string_table_replace_list (gretl_string_table *gst,
51 			       int *newlist);
52 
53 series_table *series_table_new (char **strs, int n_strs, int *err);
54 
55 series_table *series_table_copy (series_table *st);
56 
57 void series_table_destroy (series_table *st);
58 
59 double series_table_get_value (series_table *st, const char *s);
60 
61 const char *series_table_get_string (series_table *st, double val);
62 
63 int series_table_add_string (series_table *st, const char *s);
64 
65 char **series_table_get_strings (series_table *st, int *n_strs);
66 
67 int series_table_get_n_strings (series_table *st);
68 
69 int *series_table_map (series_table *st_from, series_table *st_to);
70 
71 void gretl_insert_builtin_string (const char *name, const char *s);
72 
73 char *get_built_in_string_by_name (const char *name);
74 
75 void builtin_strings_cleanup (void);
76 
77 int process_string_command (const char *line,
78 			    double ***pZ, DATASET *dset,
79 			    PRN *prn);
80 
81 int substitute_named_strings (char *line, int *subst);
82 
83 char *gretl_getenv (const char *key, int *defined, int *err);
84 
85 char *retrieve_date_string (int t, const DATASET *dset, int *err);
86 
87 gretl_array *retrieve_date_strings (const gretl_vector *v,
88 				    const DATASET *dset,
89 				    int *err);
90 
91 char *retrieve_file_content (const char *fname, const char *codset,
92 			     int *err);
93 
94 char *gretl_backtick (const char *arg, int *err);
95 
96 #endif /* GRETL_STRING_TABLE_H */
97