CCF Keyword Handling

As part of its keywords handling, of course, this module has to keep track of a stack of open if statements. And, since the routines that do the "commenting out" business are somewhere else, it's got to publish its internal representation of an if.

So, the header file contains:

#ifndef	IMW_KEYWORDS_H
#define	IMW_KEYWORDS_H

typedef struct if_element
{
  long	seen_active;
  int	commenting_out;
  int	seen_else;
  long	opened_at;
  int	really_case;
  long	case_value;
  long	prev_when;
  char	*spaces;
  struct if_element *prev;
} if_element;

extern char		*lc_lead_in;
extern if_element	 now;
extern int		 need_when_next;
extern int		 output_enabled;
extern int		 comment_override;
extern int		 add_tail;
extern int		 ccf_did_it;

#define	ALL_COMMENTS	 1
#define	NO_COMMENTS	 2


void	process_keyword	(void);
void	check_balance	(void);

#endif