

#ifndef __DMD_H_INCLUDE__
#define __DMD_H_INCLUDE__

#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <ctype.h>

/* debug mode - comment out to disable */

#define DEBUG


#ifndef DEBUG
#define NDEBUG
#endif
#include <assert.h>

/* standard redefines - may need to be adjusted for different computers */

#define UD	void
#define ANY	void
#define CH	unsigned char
#define U8	unsigned char
#define U16	unsigned short
#define U32	unsigned long
#define S8	signed char
#define S16	signed short
#define S32	signed long
#define I8	signed char
#define I16	signed short int
#define I32	signed long int
#define F32	float
#define F64	double
#define BOOL	signed char
#define BOL	signed char
#define TRUE	-1
#define FALSE	0
#ifndef NULL
#define NULL	((void*)0)
#endif

/* structures */

	/* later */


/* d.c */

UD	printError		( CH*, CH*, U32 )	;
UD	printSystemError	( CH*, CH*, U32 )	;
#ifdef DEBUG
UD	printOops		( CH*, CH* )		;
#endif

CH*	xstrdup			( CH* )			;
UD*	xalloc			( U32 )			;

CH*	newString		( CH* )			;
CH*	newStringNoEsc		( CH* )			;
CH*	newSymbol		( CH* )			;

UD	initialise		( UD )			;
UD	finialise		( UD )			;

/* d.l */

UD	lineInc			( UD )			;
UD	lineUpdate		( UD )			;
U32	getLine			( UD )			;
U32	getLineInc		( UD )			;
UD	setInput		( CH* )			;
int	yylex			( UD )			;

/* d.y */

int	yyparse			( UD )			;
int	yyerror			( char* )		;

#endif /* __DMD_H_INCLUDE__ */

