#ifndef __IMPINCLUDES 
#define __IMPINCLUDES
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
#include <assert.h>
#define _IMP_MONITOR_ (0==1)
#define nl 10
#define BADSWITCH(val,line,file) \
  (fprintf(stderr, "* Missing switch label %d\n"), \
   assert(_IMP_MONITOR_))

extern FILE *_ttyin;
extern FILE *_nullin;
extern FILE *_ttyout;
extern FILE *_nullout;

extern FILE *inmap[128];
extern FILE *outmap[128];

extern int instream, outstream;
#define in_file inmap[instream]
#define out_file outmap[outstream]

extern int openinput(int stream, char *filename);
extern int openoutput(int stream, char *filename);
extern void closeinput(void);
extern void closeoutput(void);
extern void setinput(int pos);
extern void setoutput(int pos);

 static int _imptempint;
 static char _imptempstring[256];
 char * imp_concat( char *,char *);
 int imp_resolve(char *, char *, char *,char *);
 char * imp_tostring(int );
 void * imp_strjam(char *,char *,int);
 void imp_stop();
 char * imp_substring(char *,int ,int );
#endif

