#ifndef _OBSERVEUTILS_H
#define _OBSERVEUTILS_H
#include "art.h"
#include "finitemap.h"
extern Bool hat_interrupted;
void ctrlC (int);
/* Some finite maps (i.e. lookup tables). */
extern FiniteMap mapAtom2Info, mapExp2Atom, mapContext2Atom;
/* mapAtom2Info :: FileNode -> Info */
typedef struct {
FileOffset node;
unsigned char arity;
char* var;
} Info;
/* mapExp2Atom, mapContext2Atom :: FileNode -> Atom */
typedef struct {
FileOffset atom;
unsigned char arity;
} Atom;
/* Insert into finite maps */
void insert_mapAtom2Info (FileOffset atom, char* var
,unsigned char arity);
void insert_map2 (FiniteMap map2, FileOffset exp
,FileOffset atom, unsigned char arity);
/* Routines visible from Haskell world */
void setObserveContext (Bool hascontext, Bool rec, int arity
,char* caller);
FileOffset lookForFirstApp (char* callee);
FileOffset lookForFirstSrc (int line, int col, char* module);
FileOffset nextObservation (FileOffset seen);
/* Internal routines */
FileOffset varSearch (void);
FileOffset srcSearch (void);
void searchCAFResult (FileOffset caf, FileOffset result
,unsigned char arity
,FileOffset mostRecentHidden);
#endif
syntax highlighted by Code2HTML, v. 0.9.1