/* Label.h
 *
 * Stores user-defined labels for backwards and forwards referencing with
 * the \ref and \pageref commands.
 *
 * Copyright 1992 Jonathan Monsarrat. Permission given to freely distribute,
 * edit and use as long as this copyright statement remains intact.
 *
 */

const MAXLABELS = 100;

class Label {
  public:
     char *_name;
     int _chapter;
     int _section;
     int _referenced;
     
     Label(char *,int,int);
     ~Label();
     match(char *);
};

class Labels {
     enum LabelContents {
	  Chapter,
	  Section
     };
     int numlabels;
     Label *label[MAXLABELS];
     int unknown_references;

public:
     Labels();
     ~Labels();
     void add_label(char *);
     void print_ref(char *);
     void shutdown();
};