#define SAME 0
#define INPUT_LEN  20     /* upper bound on length on each feature */
#define MAX_FEATURES 34
#define NORESULT (-3)
#define FMISSING (-2)

#define maxoutputs 200 /* for simplicity, lets assume at the start that there
			  will be no more than this many different output 
			  values. 
			  This will let us use store them in an
			  easy-to-access way.
			*/

typedef struct {   /* this is a structure for a set of features */
  char name[100];
  char **features;
  int num_features;
} feature_set;
typedef char example_t[INPUT_LEN];

extern feature_set the_feature_set[];
extern int num_feature_sets;
extern char to_predict[100], example_name[100];
extern char correct_ans[INPUT_LEN]; 
extern int skipnumber;
extern FILE *summaryfp;
extern int learning_off;
/* utilities.c */
void read_to_end_of_list(FILE *fp);
char * find_next_desired_event(FILE *fp);
char *read_upto_date(FILE *fp, int month, int day, int year);
int read_next_object(FILE *fp, char str[], int len);
